Déterminer quels codes postaux américains correspondent à plusieurs États ou plusieurs villes?


23

J'utilise une liste de codes postaux et je suis curieux de savoir combien (ou quels) codes postaux correspondent à plusieurs États américains ou villes américaines.

Par exemple, je sais que le code postal est 42223résolu par l'armée américaine, Fort Campbell, à cheval sur la ligne d'état KY-TN. Curieusement, l'API Google ne renvoie TNque pour cet état correspondant à ce zip.


Comment définissez-vous «ville» et «code postal»?
Evan Carroll

Réponses:


22

Il existe 13 zones de tabulation de codes postaux (ZCTA) pour le recensement américain multi-états: 02861, 42223, 59221, 63673, 71749, 73949, 81137, 84536, 86044, 86515, 88063, 89439 et 97635.

Comme d'autres l'ont mentionné, il existe plusieurs façons de déterminer la zone couverte par un code postal, mais les ZCTA sont les plus faciles et la seule version officielle que je connaisse.

Donc, votre exemple de 42223 s'étend sur une frontière d'État, mais il semble que ce soit en fait entre le Maryland et la Virginie. celle entre le Kentucky et le Tennessee.

Voici la liste complète des états:

 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

Voici comment je l'ai généré (avec Pandas en 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)

Edit : Il semble que le recensement comporte deux codages à deux chiffres différents pour les États. Les deux sont des numéros attribués en fonction de l'ordre alphabétique de l'État, mais l' un semble appliquer les numéros directement de 1-51 (50 États + DC), tandis que l'autre ignore certains chiffres . J'utilisais le premier, alors que j'aurais dû utiliser le second, donc les noms d'état que j'ai énumérés étaient faux. J'ai mis à jour le code et les résultats avec la bonne liste.

Edit : nouveau mappage d'état confirmé par l'API OpenCongress: https://gist.github.com/gabrielgrant/89f883d093e2abf129ad


2
Merci beaucoup d'avoir attrapé ce @JesseCrocker - Il semble que le recensement (confusément) ait deux codages différents à deux chiffres pour les États. Les deux sont des numéros attribués en fonction de l'ordre alphabétique de l'État, mais l' un semble appliquer les numéros directement de 1-51 (50 États + DC), tandis que l'autre ignore certains chiffres . J'utilisais le premier, mais j'aurais dû utiliser le second, donc les noms d'état que j'ai énumérés étaient faux (bien que les ZCTA soient bons). J'ai corrigé le code et les résultats avec la liste correcte.
Gabriel Grant du

2
En ce qui concerne les lacunes dans les codes FIPS, les numéros sautés étaient réservés dans les années 1970 pour les territoires périphériques (Samoa américaines, Zone des canaux, Guam, Porto Rico et Iles Vierges), mais n'ont finalement pas été utilisés pour eux. en.wikipedia.org/wiki/…
neuhausr

3
N'oubliez pas le code postal 57717 qui s'étend sur trois États six, comtés et plusieurs villes: 57717 Aurora, SD 57717 Butte, SD 57717 Carter, MT 57717 Crook, WY 57717 Harding, SD 57717 Lawrence, SD
Jeffrey

1
Cette liste n'est pas presque terminée. Consultez ma réponse pour une bien meilleure approximation. gis.stackexchange.com/a/223445/6052
Evan Carroll

@Jeffrey intéressant, je me demande pourquoi ce n'est pas répertorié dans la liste des lieux ZCTA?
Gabriel Grant

11

Il n'y a vraiment aucun moyen de le dire; car il n'y a pas de forme de limite ZipCode définie par l'USPS. Les ZipCodes sont définis par une boîte englobante de rues livrées par des transporteurs à partir d'un centre de distribution particulier.

Il vous faudrait donc prendre les données USPS AIS et extraire par ZipCodes les rues qui sont livrées par un bureau de poste donné, puis rejoindre celles-ci une grille de rue. C'est ce que font tous les fournisseurs commerciaux (Nokia / TomTom) pour créer la forme Psuedo qu'ils utilisent pour afficher les limites postales.

Ce processus inexact est la raison pour laquelle l'USPS ne fournit pas de données spatiales.


2
Quelque chose de précis? Qu'est-ce que la vérité? De nombreuses couches de limites de zip ont été créées, ce qui peut ou non servir l'objectif de cette analyse particulière compte tenu de ses besoins inconnus. Limites de zip gratuites Esri - arcgis.com/home/item.html?id=8d2012a2016e484dafaac0451f9aea24 Voir aussi gis.stackexchange.com/questions/2682/…
awesomo

2
Étant donné, mais vous devez également comprendre quoi que vous fassiez les implications des données que vous utilisez.
DEWright

7

Le US Census Bureau dérive les limites approximatives des codes postaux en fonction des adresses qu'ils contiennent, appelées zones de tabulation des codes postaux (ZCTA).

Ils publient des fichiers de relations qui décrivent comment leurs ZCTA correspondent à diverses autres géographies. Si vous examinez le fichier de relation ZCTA to Place , vous pouvez voir comment ils sont mappés aux villes et villages. Vous pouvez déduire la façon dont ils sont mappés aux états à partir du fichier de relations ZCTA vers les comtés .

Les fichiers de relations utilisent les identifiants géographiques du recensement, vous voudrez donc saisir un fichier de répertoire géographique pour vous aider à convertir les identifiants numériques en noms de lieu ou de comté que vous attendez.

Comme d'autres réponses l'ont indiqué, tout mappage de codes postaux à des endroits est probablement approximatif, mais j'ai eu de la chance avec les fichiers de données du recensement.


4

Données TIGER 2016 avec PostGIS

Comme mise en garde spéciale, les données ZCTA ne sont pas des codes postaux USPS. C'est une approximation. Les codes postaux USPS sont vraiment horribles et ne sont utiles que pour l'approximation. Tout le monde, y compris toutes les entités gouvernementales autres que l'USPS, et (le recensement pour la fabrication de ZCTA) les ignore complètement. Si l'USPS voulait grandir un peu, ils se contenteraient de se convertir au dernier ZCTA et fourniraient des polygones SIG faisant autorité.

Ensuite ... Ici, nous recherchons les intersections entre les jeux de données TIGER State et TIGER ZCTA. Notez que nous qualifions les États de 1% de la superficie totale de ZCTA. Si 1% de la zone ZCTA n'est pas en l'état, nous supposons qu'il s'agit d'une erreur d'arrondi ou que quelqu'un touche quelque chose de gros au recensement. Découvrez 56168ou même 83832un code postal que nous élaguons avec cette sélectivité supplémentaire.

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;

Voici le 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)

Vous devriez pouvoir vérifier tous ces éléments sur Google Maps. Cependant, Google Maps ne fait également pas autorité.


1

Chevauchements d'états mentionnés dans le document du recensement de 1994

En juin 1994, selon le site du US Census Bureau suivant, 153 codes postaux traversent les frontières des États.

Comme mentionné précédemment, il y a quelques codes postaux qui livrent à travers les lignes d'état, et il y a quelques codes postaux / secteurs qui traversent les lignes de comté. Il y a 153 codes postaux dans plus d'un état.Il y a 9 000 codes postaux dans plus d'un comté. Il y avait 11 331 (sur un total de 857 400) ZIP / secteurs qui étaient divisés par comté. Tous les États avaient des secteurs séparés, la Virginie, le Michigan et l'Ohio ayant un dosage particulièrement plus important. Comme prévu, les secteurs des routes rurales contenaient (relativement) la part du lion des secteurs fractionnés. La plupart des autres cas se situent dans la tranche inférieure du secteur (réservée aux boîtes postales) et dans le secteur 99 (réservé au postmaster et au courrier postal professionnel). Il doit y avoir une attribution de code de comté non standard pour ces cas sélectionnés. Nous devrons approfondir ces recherches à une date ultérieure.


0

Avec ArcGIS, vous pouvez utiliser l'outil de jointure spatiale (ou dans un script) pour trouver les polygones de code postal qui se croisent avec plusieurs polygones d'état. Dans la classe d'entités en sortie, il y aura un champ Join_Count qui indiquera plusieurs états. Vous pourriez faire la même chose avec les zips et les villes. Il y aura probablement de faux positifs lorsque les fermetures à glissière se superposent involontairement à plus d'un en raison d'inexactitudes / manque ou résolution de la frontière. Vous pouvez éventuellement faire un tampon négatif de -100m des zips avant la jointure spatiale et voir ce que cela fait.

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/
"Deux nouveaux champs, Join_Count et TARGET_FID, sont toujours ajoutés à la classe d'entités en sortie. Join_Count indique le nombre de jointures les fonctionnalités correspondent à chaque fonctionnalité cible (TARGET_FID). Un autre nouveau champ, JOIN_FID, est ajouté à la sortie lorsque JOIN_ONE_TO_MANY est spécifié dans le paramètre Join Operation. "


0

Vous pouvez faire une intersection spatiale dans PostGIS et obtenir une liste de chaque État ou ville et les codes postaux qu'ils croisent, ce qui retournerait plusieurs codes postaux où plusieurs États se croisent, et pour chaque ville qui a intersecté le même zip, vous verriez ce résultat aussi.



-2

En Pennsylvanie, les limites des bureaux de poste ne correspondent pas aux limites municipales. Certains cantons peuvent recevoir plusieurs bureaux de poste. Lorsque nous adressions le 911, certains cantons ont demandé au PO de changer leur nae en nom de canton, le PO leur a permis de le faire avec la condition qu'ils continuaient à utiliser l'ancien code postal du bureau de poste. Beaucoup l'ont fait. Vous pouvez voir à partir de ces liens que le même code postal est utilisé pour plusieurs villes. https://suburbanstats.org/zip-codes/pennsylvania/thornhurst https://suburbanstats.org/zip-codes/pennsylvania/scott-twp Fondamentalement, utiliser "Anytown" avec le bon code postal fonctionnera en raison de la lecture de leurs ordinateurs de tri code postal en premier.

Vous pouvez également rencontrer des PO qui n'ont que des boîtes postales et ne font pas de livraison locale, donc pas de polygone pour votre carte. Ces PO sont généralement de petite taille.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.