Определите, какие почтовые индексы США соответствуют нескольким штатам или нескольким городам?


23

Я использую список почтовых индексов, и мне любопытно узнать, сколько (или какие) почтовых индексов соответствуют нескольким штатам США или США?

Например, я знаю, что почтовый индекс 42223разрешен к армии США, Форт Кэмпбелл, которая пересекает государственную линию KY-TN. Как ни странно, API Google возвращает только TNдля этого состояния, соответствующего этому почтовому индексу.


Как вы определяете "город" и "почтовый индекс"?
Эван Кэрролл

Ответы:


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 в Python):

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), в то время как другой пропускает некоторые числа . Я использовал первое, в то время как я должен был использовать второе, поэтому названия состояний, которые я перечислил, были неправильными. Я обновил код и результаты с правильным списком.

Изменить : новое сопоставление состояний подтверждено API OpenCongress: https://gist.github.com/gabrielgrant/89f883d093e2abf129ad


2
Большое спасибо за то, что поймали этот @JesseCrocker. Кажется, в переписи (смущающе) есть две разные двузначные кодировки для состояний. Оба являются номерами, назначенными на основе алфавитного порядка штата, но один, кажется, применяет числа непосредственно от 1-51 (50 штатов + DC), в то время как другой пропускает некоторые числа . Я использовал первое, но я должен был использовать второе, поэтому названия штатов, которые я перечислил, были неправильными (хотя ZCTA были хорошими). Я исправил код и результаты с правильным списком.
Габриэль Грант

2
Что касается пробелов в кодах FIPS, пропущенные номера были зарезервированы в 1970-х годах для отдаленных территорий (Американское Самоа, Зона канала, Гуам, Пуэрто-Рико и Виргинские острова), но затем не использовались для них. en.wikipedia.org/wiki/...
neuhausr

3
Не забудьте почтовый индекс 57717, который охватывает три штата: шесть, округа и несколько городов: 57717 Аврора, SD 57717 Бьютт, SD 57717 Картер, MT 57717 Крук, WY 57717 Harding, SD 57717 Лоуренс, SD
Джеффри

1
Этот список еще не завершен. Проверьте мой ответ для гораздо лучшего приближения. gis.stackexchange.com/a/223445/6052
Эван Кэрролл

@ Джеффри, интересно, интересно, почему его нет в списке мест ZCTA?
Габриэль Грант

11

Там действительно нет способа сказать это; так как нет формы границы ZipCode, которая определена USPS. Почтовые индексы определяются ограничительной рамкой улиц, доставляемых перевозчиками из определенного распределительного центра.

Таким образом, вам нужно будет взять данные USIS AIS и извлечь ZipCodes улицы, которые доставляются данным почтовым отделением, а затем присоединиться к этим сеткам улиц. Это то, что делают все коммерческие поставщики (Nokia / TomTom), чтобы создать фигуру Psuedo, которую они используют для отображения почтовых границ.

Этот неточный процесс является причиной, по которой USPS не предоставляет пространственные данные.


2
Что-нибудь точное? Что такое правда? Было создано множество слоев границ почтовых индексов, которые могут или не могут служить цели данного конкретного анализа, учитывая его неизвестные требования. Esri free zip границы - arcgis.com/home/item.html?id=8d2012a2016e484dafaac0451f9aea24 См. Также gis.stackexchange.com/questions/2682/…
awesomo

2
Учитывая, но вы также должны понимать, что вы делаете, последствия использования данных.
DEWright

7

Бюро переписей США устанавливает приблизительные границы для почтовых индексов на основе содержащихся в них адресов, называемых областями табуляции почтовых индексов (ZCTA).

Они публикуют файлы отношений, которые описывают, как их ZCTA сопоставляются с различными другими регионами. Если вы изучите файл отношений ZCTA to Place, вы увидите, как они сопоставляются с городами и поселками. Вы можете сделать вывод, как они соотносятся с состояниями, из файла отношений ZCTA с округами .

В файлах отношений используются географические идентификаторы Census, поэтому вам понадобится файл gazetteer, чтобы помочь вам преобразовать числовые идентификаторы в названия мест или районов, которые вы ожидаете.

Как указывалось в других ответах, любое сопоставление почтовых индексов местам может быть приблизительным, но мне повезло с файлами данных переписи.


4

Данные 2016 TIGER с PostGIS

В качестве особого предостережения, данные ZCTA не являются почтовыми индексами USPS. Это приближение к этому. Почтовые индексы USPS действительно ужасны и бесполезны, кроме приблизительных. Все, включая каждое государственное образование, кроме USPS, и (перепись для создания ZCTA) полностью их игнорируют. Если бы USPS хотели немного подрасти, они бы просто перешли на последнюю версию ZCTA и предоставили бы авторитетные полигоны ГИС.

  • 2016 TIGER ZCTA 877 МБ таблица данных.
    • 33 144 ZCTA
    • 52,669,641 баллов всего,
  • 2016 TIGER States 15 МБ табличных данных.
    • 56 "Государство"
    • 912,464 баллов всего

Тогда ... Здесь мы запрашиваем пересечения между наборами данных TIGER State и TIGER ZCTA. Обратите внимание, что мы квалифицируем штаты на 1% от общей площади ZCTA. Если 1% территории ZCTA не находится в штате, мы предполагаем, что это ошибка округления или кто-то что-то перебирает во время переписи. Проверьте 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 Maps также не является авторитетным.


1

Государственные совпадения, упомянутые в переписном документе 1994 года

В июне 1994 года, согласно следующему сайту Бюро переписи населения США, существует 153 почтовых индекса, которые пересекают государственные границы.

Как упоминалось ранее, есть несколько почтовых индексов, которые доставляются через строки состояния, и есть несколько почтовых индексов / секторов, которые пересекают линии округа. В более чем одном штате 153 почтовых индекса.В более чем одном округе насчитывается 9 000 почтовых индексов. Было 11,331 (из общего числа 857,400) ZIP / секторов, которые были разбиты по округам. Во всех штатах было несколько разделенных секторов, причем Вирджиния, Мичиган и Огайо имели особенно большую дозировку. Секторы сельских маршрутов, как и ожидалось, содержали (относительно) львиную долю разделенных секторов. Большинство других дел находятся в нижнем секторе (зарезервированы для почтовых ящиков) и в секторе 99 (зарезервированы для почтмейстера и возврата деловой почты). Для этих выбранных случаев должно быть какое-то нестандартное присвоение кодов округов. Нам придется дополнительно расследовать это позже.


0

С ArcGIS вы можете использовать инструмент пространственного соединения (или в скрипте), чтобы найти, какие полигоны почтового индекса пересекаются с несколькими полигонами состояний. В выходном классе объектов будет поле Join_Count, которое будет указывать несколько состояний. Вы можете сделать то же самое с почтовыми индексами и городами. Вероятно, будут ложные срабатывания, когда почтовые индексы непреднамеренно перекрывают более одного из-за неточностей / отсутствия или разрешения границ. Вы могли бы сделать отрицательный -100m буфер zips перед пространственным соединением и посмотреть, что это делает.

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_FID, добавляется к выходным данным, когда JOIN_ONE_TO_MANY указан в параметре Операция соединения. "


0

Вы можете выполнить пространственное пересечение в PostGIS и получить список всех штатов или городов и почтовых индексов, которые они пересекают, что даст несколько почтовых индексов, где пересекаются несколько штатов, и для каждого города, который пересекает один и тот же почтовый индекс, вы увидите этот результат также.



-2

В Пенсильвании границы почтового отделения не совпадают с муниципальными границами. В некоторых поселках может быть несколько почтовых отделений. Когда мы делали адресацию 911, некоторые поселки попросили, чтобы ПО изменило свое название на название населенного пункта, ПО разрешило им сделать это с условием, что они продолжат использовать старый почтовый индекс почтового отделения. Многие это сделали. Из этих ссылок видно, что один и тот же почтовый индекс используется для нескольких городов. https://suburbanstats.org/zip-codes/pennsylvania/thornhurst https://suburbanstats.org/zip-codes/pennsylvania/scott-twp В основном использование Anytown с правильным почтовым индексом будет работать из-за чтения их сортировочных компьютеров почтовый индекс первым.

Вы также можете столкнуться с PO, в котором есть только ящики PO и которые не осуществляют локальную доставку, поэтому полигона для вашей карты нет. Эти ПО обычно маленькие.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.