답변:
13 개 다주 미국 인구 조사의 우편 번호 테이블 영역 (ZCTA)이 있습니다 : 02861, 42223, 59221, 63673, 71749, 73949, 81137, 84536, 86044, 86515, 88063, 89439 및 97635.
다른 사람들이 언급했듯이 우편 번호가 적용되는 지역을 알아내는 몇 가지 방법이 있지만 ZCTA는 가장 쉽고 공식적인 버전입니다.
따라서 42223의 예는 주 경계에 걸쳐 있지만 실제로 메릴랜드와 버지니아 사이에있는 것처럼 보입니다. 켄터키와 테네시 사이.
상태가 포함 된 전체 목록은 다음과 같습니다.
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
다음은 파이썬에서 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
실제로 이것을 말할 방법이 없습니다. USPS에 의해 정의 된 ZipCode 경계 모양 이 없기 때문 입니다 . 우편 번호는 특정 물류 센터에서 운송 업체가 배송하는 거리의 경계 상자로 정의됩니다.
따라서 USPS AIS 데이터를 가져 와서 우편 번호로 특정 우체국이 배달 한 거리를 추출한 다음이 거리 격자에 가입해야합니다. 이것이 모든 상용 공급 업체 (Nokia / TomTom)가 우편 경계를 표시하는 데 사용하는 Psuedo 셰이프를 만드는 것입니다.
이 부정확 한 프로세스는 USPS가 공간 데이터를 제공하지 않는 이유입니다.
미국 인구 조사국은 우편 번호 표에 포함 된 주소를 기반으로 우편 번호의 대략적인 경계를 도출합니다 (ZCTA).
그들은 관계 파일을 게시 자신의 ZCTAs 여러 다른 지역에 매핑하는 방법에 대해 설명합니다. ZCTA와 장소 간 관계 파일 을 검사하면 이들이 도시와 도시에 어떻게 맵핑되는지 확인할 수 있습니다. ZCTA에서 카운티 관계 파일 로 상태에 맵핑되는 방법을 유추 할 수 있습니다 .
관계 파일은 인구 조사 지리 ID를 사용하므로 가제트 파일 을 가져 와서 숫자 ID를 원하는 장소 나 카운티 이름으로 변환 할 수 있습니다.
다른 답변에서 언급했듯이 우편 번호를 장소에 매핑하는 것은 대략적인 것으로 보이지만 인구 조사 데이터 파일에 행운을 빕니다.
특별한주의 사항으로 ZCTA 데이터는 USPS 우편 번호가 아닙니다. 근사치입니다. USPS 우편 번호는 정말 끔찍하며 대략적인 것 외에는 유용하지 않습니다. USPS 이외의 모든 정부 기관을 포함하여 모든 사람 (ZCTA 작성을위한 인구 조사)은이를 완전히 무시합니다. USPS가 조금 자라기를 원한다면 최신 ZCTA로 변환하고 권위있는 GIS 다각형을 제공합니다.
그런 다음 여기에서 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;
여기는 resulset입니다
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 년 6 월, 다음 미국 인구 조사국 사이트에 따르면 주 경계를 넘나 드는 153 개의 우편 번호가 있습니다.
앞에서 언급 한 바와 같이, 주 노선을 가로 질러 전달되는 우편 번호가 몇 개 있으며, 카운티 노선을 지나는 우편 번호가 몇 개 있습니다. 하나 이상의 주에 153 개의 우편 번호가 있습니다.하나 이상의 카운티에 9,000 개의 우편 번호가 있습니다. 카운티별로 분할 된 11,331 개 (총 857,400 개)의 ZIP / 섹터가있었습니다. 버지니아 주, 미시간 주 및 오하이오 주가 특히 더 큰 복용량을 가진 모든 주에는 일부 분할 부문이 있습니다. 예상대로, 농촌 노선 구간에는 (상대적으로) 분할 구간의 사자 비중이 포함되어 있습니다. 다른 경우의 대부분은 낮은 우체국 범위 (우체국 용으로 예약 됨)와 섹터 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/
"2 개의 새로운 필드 Join_Count 및 TARGET_FID는 항상 출력 기능 클래스에 추가됩니다. Join_Count는 결합 수를 나타냅니다. 기능은 각 대상 기능 (TARGET_FID)과 일치합니다. JOIN_ONE_TO_MANY가 결합 조작 매개 변수에 지정되면 또 다른 새 필드 인 JOIN_FID가 출력에 추가됩니다. "
PostGIS에서 공간 교차를 수행하고 교차하는 모든 주 또는 도시 및 우편 번호의 목록을 다시 가져올 수 있습니다. 그러면 여러 주가 교차하는 여러 우편 번호를 반환하고 동일한 우편 번호를 교차 한 각 도시에 대해 그 결과도 마찬가지입니다.
펜실베이니아의 우체국 경계는 도시 경계와 일치하지 않습니다. 일부 도시에는 여러 우체국이 배달되어있을 수 있습니다. 우리가 911 주소 지정을 할 때 일부 타운 쉽은 PO에게 자신의 이름을 타운 명으로 변경하도록 요청했으며 PO는 이전 우체국 우편 번호를 계속 사용하는 조건으로이를 수행 할 수있었습니다. 많은 사람들이 이것을했습니다. 이 링크에서 여러 도시에서 동일한 우편 번호가 사용되고 있음을 알 수 있습니다. https://suburbanstats.org/zip-codes/pennsylvania/thornhurst https://suburbanstats.org/zip-codes/pennsylvania/scott-twp 기본적으로 올바른 우편 번호와 함께 "Anytown"을 사용하면 정렬 컴퓨터 읽기 때문에 작동합니다 우편 번호를 먼저 입력하십시오.
PO 상자 만 있고 로컬 배달을 수행하지 않는 PO를 사용하여지도에 다각형을 사용할 수 없습니다. 이러한 PO는 일반적으로 작습니다.