어느 미국 우편 번호가 하나 이상의 주 또는 여러 도시에 매핑되는지 확인합니까?


23

우편 번호 목록을 사용하고 있는데 하나 이상의 미국 주 또는 미국 도시에 우편 번호가 몇 개 (또는 어떤)로 매핑되어 있는지 궁금합니다.

예를 들어, 우편 번호 42223는 KY-TN 주 경계선을 가로 지르는 Fort Campbell의 미군으로 확인됩니다. 이상하게도 Google API는 TN해당 zip에 해당하는 상태 만 반환 합니다.


"도시"및 "우편 번호"는 어떻게 정의합니까?
Evan Carroll

답변:


22

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


2
이 @JesseCrocker를 잡아 주셔서 감사합니다. Census는 (혼돈스럽게도) 상태에 대해 두 개의 다른 두 자리 코딩이있는 것 같습니다. 둘 다 상태의 알파벳 순서에 따라 할당 된 숫자이지만 하나는 1-51 (50 개 상태 + DC) 에서 직접 숫자를 적용하는 반면 다른 하나는 일부 숫자를 건너 뜁니다 . 나는 첫 번째를 사용했지만 두 번째를 사용해야 했으므로 나열된 주 이름이 잘못되었습니다 (ZCTA는 양호했지만). 코드와 결과를 올바른 목록으로 수정했습니다.
가브리엘 그랜트

2
FIPS 코드의 간격과 관련하여 건너 뛴 숫자는 1970 년대에 미국령 사모아, 운하 지대, 괌, 푸에르토 리코 및 버진 아일랜드와 같은 외부 영토를 위해 예약되었지만 결국에는 사용되지 않았습니다. en.wikipedia.org/wiki/…
neuhausr

3
, SD 57717 버트, SD 57717 카터, MT 57717 사기꾼, WY 57717 하딩, SD 57717 로렌스, SD 57717 오로라 : 우편 번호 세 가지 상태 여섯, 카운티, 여러 도시에 걸쳐 57,717 잊지 마세요
제프리

1
이 목록은 거의 완성되지 않았습니다. 훨씬 더 나은 근사치에 대한 내 대답을 확인하십시오 . gis.stackexchange.com/a/223445/6052
Evan Carroll

@Jeffrey가 흥미 롭습니다. 왜 ZCTA 장소 목록에 없는지 궁금합니다.
Gabriel Grant

11

실제로 이것을 말할 방법이 없습니다. USPS에 의해 정의 된 ZipCode 경계 모양 이 없기 때문 입니다 . 우편 번호는 특정 물류 센터에서 운송 업체가 배송하는 거리의 경계 상자로 정의됩니다.

따라서 USPS AIS 데이터를 가져 와서 우편 번호로 특정 우체국이 배달 한 거리를 추출한 다음이 거리 격자에 가입해야합니다. 이것이 모든 상용 공급 업체 (Nokia / TomTom)가 우편 경계를 표시하는 데 사용하는 Psuedo 셰이프를 만드는 것입니다.

이 부정확 한 프로세스는 USPS가 공간 데이터를 제공하지 않는 이유입니다.


2
정확한 것이 있습니까? 진실은 무엇입니까? zip 경계 레이어가 많이 생성되었으며,이 레이어는 알 수없는 요구 사항이 주어지면이 특정 분석의 목적에 부합하거나 제공되지 않을 수 있습니다. Esri 무료 우편 경계 -arcgis.com/home/item.html?id=8d2012a2016e484dafaac0451f9aea24 참조 gis.stackexchange.com/questions/2682/…
awesomo

2
그러나 데이터 사용에 미치는 영향을 이해해야합니다.
DEWright

7

미국 인구 조사국은 우편 번호 표에 포함 된 주소를 기반으로 우편 번호의 대략적인 경계를 도출합니다 (ZCTA).

그들은 관계 파일을 게시 자신의 ZCTAs 여러 다른 지역에 매핑하는 방법에 대해 설명합니다. ZCTA와 장소 간 관계 파일 을 검사하면 이들이 도시와 도시에 어떻게 맵핑되는지 확인할 수 있습니다. ZCTA에서 카운티 관계 파일 로 상태에 맵핑되는 방법을 유추 할 수 있습니다 .

관계 파일은 인구 조사 지리 ID를 사용하므로 가제트 파일가져 와서 숫자 ID를 원하는 장소 나 카운티 이름으로 변환 할 수 있습니다.

다른 답변에서 언급했듯이 우편 번호를 장소에 매핑하는 것은 대략적인 것으로 보이지만 인구 조사 데이터 파일에 행운을 빕니다.


4

PostGIS를 사용한 2016 TIGER 데이터

특별한주의 사항으로 ZCTA 데이터는 USPS 우편 번호가 아닙니다. 근사치입니다. USPS 우편 번호는 정말 끔찍하며 대략적인 것 외에는 유용하지 않습니다. USPS 이외의 모든 정부 기관을 포함하여 모든 사람 (ZCTA 작성을위한 인구 조사)은이를 완전히 무시합니다. USPS가 조금 자라기를 원한다면 최신 ZCTA로 변환하고 권위있는 GIS 다각형을 제공합니다.

  • 2016 TIGER ZCTA 877 MB 테이블 데이터.
    • ZCTA 33,144 개
    • 총 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;

여기는 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지도도 신뢰할 수 없습니다 .


1

1994 년 인구 조사 문서에 언급 된 주 오버랩

1994 년 6 월, 다음 미국 인구 조사국 사이트에 따르면 주 경계를 넘나 드는 153 개의 우편 번호가 있습니다.

앞에서 언급 한 바와 같이, 주 노선을 가로 질러 전달되는 우편 번호가 몇 개 있으며, 카운티 노선을 지나는 우편 번호가 몇 개 있습니다. 하나 이상의 주에 153 개의 우편 번호가 있습니다.하나 이상의 카운티에 9,000 개의 우편 번호가 있습니다. 카운티별로 분할 된 11,331 개 (총 857,400 개)의 ZIP / 섹터가있었습니다. 버지니아 주, 미시간 주 및 오하이오 주가 특히 더 큰 복용량을 가진 모든 주에는 일부 분할 부문이 있습니다. 예상대로, 농촌 노선 구간에는 (상대적으로) 분할 구간의 사자 비중이 포함되어 있습니다. 다른 경우의 대부분은 낮은 우체국 범위 (우체국 용으로 예약 됨)와 섹터 99 (우체국 및 비즈니스 메일 반환 용으로 예약 됨)에 있습니다. 이러한 선택된 사례에 대해 일부 비표준 카운티 코드 할당이 발생해야합니다. 나중에 더 자세히 조사해야 할 것입니다.


0

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가 출력에 추가됩니다. "



-2

펜실베이니아의 우체국 경계는 도시 경계와 일치하지 않습니다. 일부 도시에는 여러 우체국이 배달되어있을 수 있습니다. 우리가 911 주소 지정을 할 때 일부 타운 쉽은 PO에게 자신의 이름을 타운 명으로 변경하도록 요청했으며 PO는 이전 우체국 우편 번호를 계속 사용하는 조건으로이를 수행 할 수있었습니다. 많은 사람들이 이것을했습니다. 이 링크에서 여러 도시에서 동일한 우편 번호가 사용되고 있음을 알 수 있습니다. https://suburbanstats.org/zip-codes/pennsylvania/thornhurst https://suburbanstats.org/zip-codes/pennsylvania/scott-twp 기본적으로 올바른 우편 번호와 함께 "Anytown"을 사용하면 정렬 컴퓨터 읽기 때문에 작동합니다 우편 번호를 먼저 입력하십시오.

PO 상자 만 있고 로컬 배달을 수행하지 않는 PO를 사용하여지도에 다각형을 사용할 수 없습니다. 이러한 PO는 일반적으로 작습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.