우편 번호 목록을 사용하고 있는데, 하나 이상의 미국 주 또는 미국에 매핑되는 우편 번호의 수 (또는 어떤)를 알고 싶습니다. 도시?
예를 들어 우편 번호 42223
가 KY-TN 주 경계선을 가로 지르는 미군 포트 캠벨로 확인된다는 것을 알고 있습니다. 이상하게도 Google API 만 해당 zip에 해당하는 주에 대해 TN
를 반환합니다.
댓글
답변
13 개의 다주 미국 인구 조사 “우편 번호 표 영역 (ZCTA)이 있습니다. 02861, 42223, 59221, 63673, 71749, 73949, 81137, 84536, 86044, 86515, 88063, 89439 & 97635.
다른 사람들이 언급했듯이 우편 번호가 적용되는 지역을 알아내는 몇 가지 다른 방법이 있지만 ZCTA가 가장 쉽고 내가 아는 nly 공식 버전.
42223의 예는 주 경계에 걸쳐 있지만 실제로 메릴랜드와 버지니아 사이에있는 것처럼 보입니다. Kentucky와 Tennessee 사이에 있습니다.
상태가 포함 된 전체 목록은 다음과 같습니다.
02861 Massachusetts 02861 Rhode Island 42223 Kentucky 42223 Tennessee 59221 Montana 59221 North Dakota 63673 Illinois 63673 Missouri 71749 Arkansas 71749 Louisiana 73949 Oklahoma 73949 Texas 81137 Colorado 81137 New Mexico 84536 Arizona 84536 Utah 86044 Arizona 86044 Utah 86515 Arizona 86515 New Mexico 88063 New Mexico 88063 Texas 89439 California 89439 Nevada 97635 California 97635 Oregon
Python에서 Pandas를 사용하여 생성 한 방법은 다음과 같습니다.
import pandas as pd zcta_to_place_url = "http://www2.census.gov/geo/docs/maps-data/data/rel/zcta_place_rel_10.txt" # load relevant data df = pd.read_csv( zcta_to_place_url, dtype={"ZCTA5": str}, usecols=["ZCTA5", "STATE"]) # the data often repeats the same (ZCTA, state) pair. Remove these df = df.drop_duplicates() # get number of times each ZCTA appears (most are only 1) counts = df["ZCTA5"].value_counts() # get those listed more than once multi_state_zips = df[df.ZCTA5.isin(counts[counts > 1].index)] # the census uses numeric state codes # replace these with state names census_codes_to_names_url = "http://www2.census.gov/geo/docs/reference/state.txt" states = pd.read_csv(census_codes_to_names_url, sep="|") merged = pd.merge( multi_state_zips, states, on="STATE" )[["ZCTA5", "STATE_NAME"]] print merged.sort(["ZCTA5", "STATE_NAME"]).to_string(index=False)
편집 : 인구 조사에는 주에 대해 두 개의 서로 다른 두 자리 코딩이있는 것 같습니다. 둘 다 국가의 알파벳 순서에 따라 할당 된 번호이지만 하나는 1-51 (50 개 주 + DC)에서 직접 번호를 적용하는 것처럼 보이지만 다른 하나는 일부 숫자를 건너 뜁니다 . 첫 번째를 사용하고 있었지만 두 번째를 사용해야했기 때문에 나열된 주 이름이 잘못되었습니다. 코드 및 결과가 올바른 목록입니다.
편집 : OpenCongress API에 의해 확인 된 새로운 상태 매핑 : https://gist.github.com/gabrielgrant/89f883d093e2abf129ad
댓글
- @JesseCrocker를 잡아 주셔서 감사합니다.-인구 조사 인 것 같습니다. 주에 대해 두 개의 서로 다른 두 자리 코딩이 있습니다. 둘 다 상태 ‘의 알파벳 순서에 따라 할당 된 숫자이지만 하나는 1-51에서 직접 숫자를 적용하는 것 같습니다
a> (50 개 주 + DC), 다른 하나는 일부 숫자를 건너 뜁니다 . 나는 첫 번째를 사용하고 있었지만 두 번째를 사용해야 했으므로 내가 나열한 주 이름이 잘못되었습니다 (ZCTA는 좋았지 만). ‘ 코드와 결과를 올바른 목록으로 수정했습니다.
02861
가 말 그대로 MA와 RI 경계의 일부를 형성하고 있으며 전체 우편 번호는 RI google.com/에 단단히 표시되어 있습니다. maps / place / Pawtucket, + RI + 02861 / … Answer
이 사실을 알 수있는 방법은 없습니다. USPS에서 정의한 우편 번호 경계 모양이 없기 때문에 우편 번호는 전달 된 거리의 경계 상자로 정의됩니다.
따라서 USPS AIS 데이터를 가져 와서 지정된 우체국에서 배달하는 거리를 ZipCodes로 추출한 다음이를 거리 그리드에 가입해야합니다. 모든 상업 공급 업체 (Nokia / TomTom)는 우편 경계를 표시하는 데 사용하는 Psuedo 모양을 만듭니다.
이 부정확 한 프로세스는 USPS가 공간 데이터를 제공하지 않는 이유입니다.
댓글
- 정확한 것이 있습니까? 진실은 무엇입니까? zip 경계 레이어가 생성되어 알려지지 않은 요구 사항을 고려할 때이 특정 분석의 목적에 부합 할 수도 있고 그렇지 않을 수도 있습니다. Esri 무료 우편 번호 경계- arcgis.com/home/item.html?id=8d2012a2016e484dafaac0451f9aea24 gis 참조 .stackexchange.com / questions / 2682 / …
- 그렇지만 사용하는 데이터의 의미를 이해하는 것도 필요합니다.
답변
미국 인구 조사국은 ZIP이라고하는 그 안에 포함 된 주소를 기반으로 우편 번호에 대한 대략적인 경계를 도출합니다. ZCTA (코드 표 영역).
ZCTA가 다양한 다른 지역에 매핑되는 방식을 설명하는 관계 파일을 게시 합니다. ZCTA to Place 관계 파일을 살펴보면 이들이 도시와 마을에 어떻게 매핑되는지 확인할 수 있습니다. ZCTA-카운티 관계 파일에서 주에 매핑되는 방법을 추론 할 수 있습니다.
관계 파일은 인구 조사 지역 ID를 사용하므로 사용자는 ” Gazetteer 파일을 가져와 숫자 ID를 예상 한 장소 또는 카운티 이름으로 변환 할 수 있습니다.
기타 답변에 따르면 장소에 대한 우편 번호 매핑은 근사치 일 수 있지만 인구 조사 데이터 파일에서 행운을 빕니다.
답변
PostGIS를 사용한 2016 TIGER 데이터
특별한주의 사항으로 ZCTA 데이터는 USPS 우편 번호가 아닙니다. 그것은 그것의 근사치입니다. USPS 우편 번호는 근사치를 제외하고는 정말 끔찍하고 유용하지 않습니다. USPS를 제외한 모든 정부 기관과 (ZCTA를 만들기위한 인구 조사)를 포함한 모든 사람은 그것들을 완전히 무시합니다. USPS가 성장하고 싶다면 조금만 “최신 ZCTA로 변환하고 신뢰할 수있는 GIS 다각형을 제공합니다.
- 2016 TIGER ZCTA 877MB 테이블 데이터.
- 33,144 ZCTA
- 총 52,669,641 점,
- 2016 TIGER 상태 15MB 테이블 데이터.
- 56 개의 “주”
- 총 912,464 점
그런 다음 … 여기서는 TIGER State 및 TIGER ZCTA 데이터 세트. 총 ZCTA 면적의 1 %로 주 자격을 부여합니다. ZCTA 영역의 1 %가 “주에 있지 않은 경우”반올림 오류 또는 인구 조사에서 누군가가 뚱뚱하다고 가정합니다. 56168
또는 83832
에서 추가 된 선택성으로 잘라낼 우편 번호를 확인하세요.
SELECT zcta5ce10, array_agg(state.name ORDER BY state.name) AS states FROM census.state AS state JOIN census.zcta AS zcta ON ( ST_Intersects(state.geog::geometry, zcta.geog::geometry) AND NOT ST_Touches(state.geog::geometry, zcta.geog::geometry) AND ST_Area(ST_Intersection(state.geog, zcta.geog)) > (ST_Area(zcta.geog)*0.01) ) GROUP BY zcta.zcta5ce10 HAVING count(*) > 1 ORDER BY zcta5ce10;
결과는 다음과 같습니다.
zcta5ce10 | states -----------+--------------------------------- 03579 | {Maine,"New Hampshire"} 20135 | {Virginia,"West Virginia"} 24604 | {Virginia,"West Virginia"} 31905 | {Alabama,Georgia} 38079 | {Kentucky,Tennessee} 38769 | {Arkansas,Mississippi} 38852 | {Alabama,Mississippi} 42223 | {Kentucky,Tennessee} 51001 | {Iowa,"South Dakota"} 51023 | {Iowa,"South Dakota"} 51360 | {Iowa,Minnesota} 51557 | {Iowa,Nebraska} 51640 | {Iowa,Missouri} 52542 | {Iowa,Missouri} 52573 | {Iowa,Missouri} 52626 | {Iowa,Missouri} 54554 | {Michigan,Wisconsin} 56027 | {Iowa,Minnesota} 56144 | {Minnesota,"South Dakota"} 56164 | {Minnesota,"South Dakota"} 56219 | {Minnesota,"South Dakota"} 56744 | {Minnesota,"North Dakota"} 57026 | {Minnesota,"South Dakota"} 57030 | {Minnesota,"South Dakota"} 57068 | {Minnesota,"South Dakota"} 57078 | {Nebraska,"South Dakota"} 57638 | {"North Dakota","South Dakota"} 57641 | {"North Dakota","South Dakota"} 57642 | {"North Dakota","South Dakota"} 57645 | {"North Dakota","South Dakota"} 57648 | {"North Dakota","South Dakota"} 57660 | {"North Dakota","South Dakota"} 57717 | {"South Dakota",Wyoming} 57724 | {Montana,"South Dakota"} 58225 | {Minnesota,"North Dakota"} 58439 | {"North Dakota","South Dakota"} 58623 | {"North Dakota","South Dakota"} 58649 | {"North Dakota","South Dakota"} 58653 | {"North Dakota","South Dakota"} 59221 | {Montana,"North Dakota"} 59270 | {Montana,"North Dakota"} 59275 | {Montana,"North Dakota"} 59847 | {Idaho,Montana} 63673 | {Illinois,Missouri} 65729 | {Arkansas,Missouri} 65733 | {Arkansas,Missouri} 65761 | {Arkansas,Missouri} 66541 | {Kansas,Nebraska} 67950 | {Kansas,Oklahoma} 68325 | {Kansas,Nebraska} 68719 | {Nebraska,"South Dakota"} 68978 | {Kansas,Nebraska} 69201 | {Nebraska,"South Dakota"} 69212 | {Nebraska,"South Dakota"} 69216 | {Nebraska,"South Dakota"} 71749 | {Arkansas,Louisiana} 72338 | {Arkansas,Tennessee} 72644 | {Arkansas,Missouri} 73949 | {Oklahoma,Texas} 75556 | {Arkansas,Texas} 79837 | {"New Mexico",Texas} 80758 | {Colorado,Nebraska} 81137 | {Colorado,"New Mexico"} 81324 | {Colorado,Utah} 82063 | {Colorado,Wyoming} 82082 | {Nebraska,Wyoming} 82701 | {"South Dakota",Wyoming} 82801 | {Montana,Wyoming} 82930 | {Utah,Wyoming} 83111 | {Idaho,Wyoming} 83120 | {Idaho,Wyoming} 83312 | {Idaho,Utah} 83342 | {Idaho,Utah} 84034 | {Nevada,Utah} 84531 | {Arizona,Utah} 84536 | {Arizona,Utah} 86044 | {Arizona,Utah} 86504 | {Arizona,"New Mexico"} 86514 | {Arizona,Utah} 86515 | {Arizona,"New Mexico"} 87328 | {Arizona,"New Mexico"} 88220 | {"New Mexico",Texas} 88430 | {"New Mexico",Texas} 89010 | {California,Nevada} 89019 | {California,Nevada} 89060 | {California,Nevada} 89421 | {Nevada,Oregon} 89439 | {California,Nevada} 89832 | {Idaho,Nevada} 97635 | {California,Oregon} 97910 | {Idaho,Oregon} 99128 | {Idaho,Washington} 99362 | {Oregon,Washington} (93 rows)
Google지도에서이 모든 항목을 확인할 수 있습니다. 그러나 또한 Google지도는 권위가 아닙니다 .
답변
1994 년 인구 조사 문서에 언급 된 국가 중복 h1>
1994 년 6 월에 다음 미국 인구 조사국 사이트에 따르면 주 경계를 가로 지르는 153 개의 우편 번호가 있습니다.
앞서 언급했듯이 주 경계선을 통해 배송되는 우편 번호가 몇 개 있고 카운티 경계선을 통과하는 우편 번호가 몇 개 있습니다. 두 개 이상의 주에 153 개의 우편 번호가 있습니다. 두 개 이상의 카운티에 9,000 개의 우편 번호가 있습니다. 총 857,400 개 중 11,331 개의 우편 번호가 있습니다. 그것은 spl이었다 카운티별로. 모든 주에는 버지니아, 미시간 및 오하이오가 특히 더 많은 용량을 갖는 일부 분할 섹터가 있습니다. 예상대로 농촌 노선 구간은 분할 구간의 가장 큰 비중을 차지했습니다. 다른 대부분의 경우는 하위 구간 범위 (우체국 박스 용으로 예약 됨)와 섹터 99 (우체국 장 및 비즈니스 용으로 예약 됨)에 있습니다. 우편 반환). 이러한 선택된 사례에 대해 몇 가지 비표준 카운티 코드 할당이 발생해야합니다. 나중에 추가 조사해야합니다.
답변
ArcGIS에서는 공간 조인 도구 (또는 스크립트)를 사용하여 둘 이상의 주 다각형과 교차하는 우편 번호 다각형을 찾을 수 있습니다. 출력 피쳐 클래스에는 여러 주를 나타내는 Join_Count 필드가 있습니다. 우편 번호와 도시에 대해 유사한 작업을 수행 할 수 있습니다. 경계 부정확성 / 부족 또는 부족으로 인해 우편 번호가 실수로 둘 이상 겹치는 경우 오 탐지가 발생할 수 있습니다. 공간 결합 이전에 zip의 음의 -100m 버퍼를 수행 할 수 있습니다. 그게 뭔지보세요.
import arcpy target_features = "C:/data/usa.gdb/states" join_features = "C:/data/usa.gdb/zips" out_feature_class = "C:/data/usa.gdb/states_zips" arcpy.SpatialJoin_analysis(target_features, join_features, out_feature_class, "JOIN_ONE_TO_MANY")
http://help.arcgis.com/en/arcgisdesktop/10.0/help/index.html#/Spatial_Join/00080000000q000000/
“두 개의 새 필드 Join_Count 및 TARGET_FID가 항상 출력 피쳐 클래스에 추가됩니다. Join_Count는 각 대상 기능 (TARGET_FID)과 일치하는 결합 기능 수를 나타냅니다. 조인 작업 매개 변수에 JOIN_ONE_TO_MANY가 지정되면 또 다른 새 필드 인 JOIN_FID가 출력에 추가됩니다.”
Answer
PostGIS에서 공간 교차를 수행하고 모든 주 또는 도시 및 우편 번호 목록을 가져올 수 있습니다. 서로 교차하면 여러 주가 교차하는 여러 우편 번호를 반환하며 동일한 우편 번호를 교차하는 각 도시에 대해서도 해당 결과를 볼 수 있습니다.
댓글
답변
펜실베이니아에서는 우체국 경계가시 경계와 일치하지 않습니다. 일부 타운십에는 여러 우체국이 배달 될 수 있습니다. 911 주소 지정을 할 때 일부 타운십은 PO에 자신의 이름을 변경하도록 요청했습니다. PO는 이전 우체국 우편 번호를 계속 사용하는 조건으로이 작업을 수행하도록 허용했습니다. 많은 사람들이이 작업을 수행했습니다.이 링크에서 여러 도시에서 동일한 우편 번호가 사용되고 있음을 알 수 있습니다. https://suburbanstats.org/zip-codes/pennsylvania/thornhurst https://suburbanstats.org/zip-codes/pennsylvania/scott-twp 기본적으로 올바른 우편 번호와 함께 “Anytown”을 사용하면 컴퓨터가 우편 번호를 읽는 정렬 방식으로 작동합니다. 코드를 먼저 입력하세요.
PO 상자 만 있고 지역 배송을하지 않는 PO가있어서지도에 다각형이 없을 수도 있습니다. 이 PO는 일반적으로 작습니다.
도시 ” 및 ” 우편 번호 “?