¿Determinar qué códigos postales de EE. UU. Se asignan a más de un estado o más de una ciudad?

23

Estoy usando una lista de códigos postales, y tengo curiosidad por saber cuántos (o cuáles) códigos postales se asignan a más de un estado o ciudad de EE. UU.

Por ejemplo, sé que el Código Postal se 42223resuelve en el Ejército de EE. UU., Fort Campbell, que se extiende a ambos lados de la línea estatal KY-TN. Curiosamente, la API de Google solo regresa TNpara ese estado correspondiente a ese zip.

Pidiendo uno
fuente
¿Cómo define "ciudad" y "código postal"?
Evan Carroll

Respuestas:

22

Hay 13 áreas de tabulación de código postal (ZCTA) del Censo de Estados Unidos: 02861, 42223, 59221, 63673, 71749, 73949, 81137, 84536, 86044, 86515, 88063, 89439 y 97635.

Como otros han mencionado, hay algunas formas diferentes de averiguar el área cubierta por un código postal, pero los ZCTA son la única versión oficial más fácil y única que conozco.

Entonces, su ejemplo de 42223 abarca una frontera estatal, pero parece que en realidad es entre Maryland y Virginia. eso entre Kentucky y Tennessee.

Aquí está la lista completa con los estados:

 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

Así es como lo generé (con 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)

Editar : Parece que el Censo tiene dos codificaciones diferentes de dos dígitos para los estados. Ambos son números asignados según el orden alfabético del estado, pero uno parece aplicar los números directamente del 1 al 51 (50 estados + DC), mientras que el otro omite algunos números . Estaba usando el primero, mientras que debería haber estado usando el segundo, por lo que los nombres de estado que enumeré estaban equivocados. He actualizado el código y los resultados con la lista correcta.

Editar : nueva asignación de estado confirmada por la API de OpenCongress: https://gist.github.com/gabrielgrant/89f883d093e2abf129ad

Gabriel Grant
fuente
2
Muchas gracias por atrapar a este @JesseCrocker. Parece que el Censo (confusamente) tiene dos codificaciones diferentes de dos dígitos para los estados. Ambos son números asignados según el orden alfabético del estado, pero uno parece aplicar los números directamente del 1 al 51 (50 estados + DC), mientras que el otro omite algunos números . Estaba usando el primero, pero debería haber usado el segundo, por lo que los nombres de estado que enumeré estaban equivocados (aunque los ZCTA eran buenos). He arreglado el código y los resultados con la lista correcta.
Gabriel Grant
2
Con respecto a las lagunas en los códigos FIPS, los números omitidos se reservaron en la década de 1970 para los territorios periféricos (Samoa Americana, Zona del Canal, Guam, Puerto Rico e Islas Vírgenes), pero luego no se utilizaron para ellos. en.wikipedia.org/wiki/…
neuhausr
3
No olvide el código postal 57717 que abarca tres estados, seis, condados y varias ciudades: 57717 Aurora, SD 57717 Butte, SD 57717 Carter, MT 57717 Crook, WY 57717 Harding, SD 57717 Lawrence, SD
Jeffrey
1
Este listado no está casi completo. Mira mi respuesta para una aproximación mucho mejor. gis.stackexchange.com/a/223445/6052
Evan Carroll
@Jeffrey interesante, me pregunto por qué eso no figura en la lista de lugares de ZCTA.
Gabriel Grant
11

Realmente no hay una manera de decir esto; ya que no hay una forma de límite ZipCode definida por el USPS. Los códigos postales se definen por un cuadro delimitador de calles entregado por transportistas desde un centro de distribución particular.

Por lo tanto, necesitaría tomar los datos de USPS AIS y extraer mediante códigos postales las calles que son entregadas por una oficina de correos determinada, luego unirse a estos en una cuadrícula de calles. Esto es lo que hacen todos los vendedores comerciales (Nokia / TomTom) para crear la forma Psuedo que usan para mostrar los límites postales.

Este proceso inexacto es la razón por la cual el USPS no proporciona datos espaciales.

DEWright
fuente
2
¿Hay algo exacto? ¿Que es la verdad? Se han creado muchas capas de límites zip, que pueden o no cumplir el propósito de este análisis en particular dados sus requisitos desconocidos. Esri free zip limits - arcgis.com/home/item.html?id=8d2012a2016e484dafaac0451f9aea24 Consulte también gis.stackexchange.com/questions/2682/…
awesomo
2
Dado, pero también debe comprender lo que está haciendo las implicaciones de los datos que utiliza.
DEWright
7

La Oficina del Censo de los EE. UU. Obtiene límites aproximados para los códigos postales en función de las direcciones que contienen, denominadas Zonas de tabulación de códigos postales (ZCTA).

Se publican archivos de relaciones que describen cómo sus ZCTAs se asignan a varias otras geografías. Si examina el archivo de relación ZCTA to Place , puede ver cómo se asignan a ciudades y pueblos. Puede inferir cómo se asignan a los estados desde el archivo de relación ZCTA a los condados .

Los archivos de relación usan identificaciones de geografía del censo, por lo que querrá obtener un archivo de diccionario geográfico para ayudarlo a convertir las identificaciones numéricas en los nombres de lugares o condados que espera.

Como han dicho otras respuestas, es probable que cualquier asignación de códigos postales a lugares sea aproximada, pero he tenido buena suerte con los archivos de datos del Censo.

bpanulla
fuente
4

Datos TIGER 2016 con PostGIS

Como advertencia especial, los datos de ZCTA no son códigos postales de USPS. Es una aproximación de eso. Los códigos postales de USPS son realmente horribles y no son útiles, excepto para aproximarse. Todos, incluidas todas las entidades gubernamentales que no sean USPS, y (el Censo para hacer ZCTA) las ignoran por completo. Si USPS quisiera crecer un poco, simplemente se convertirían al último ZCTA y proporcionarían polígonos SIG autorizados.

Entonces ... Aquí consultamos las intersecciones entre el estado TIGER y los conjuntos de datos TIGER ZCTA. Tenga en cuenta que calificamos a los estados en un 1% del área total de ZCTA. Si el 1% del área de ZCTA no se encuentra en el estado, asumimos que es un error de redondeo, o que alguien está haciendo algo gordo en el Censo. Echa un vistazo 56168o incluso 83832para obtener un código postal que estamos podando con esta selectividad adicional.

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;

Aquí está el resultado

 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)

Debería poder comprobar todo esto en Google Maps. Sin embargo, Google Maps tampoco tiene autoridad.

Evan Carroll
fuente
1

Superposiciones estatales mencionadas en el documento del censo de 1994

En junio de 1994, según el siguiente sitio de la Oficina del Censo de los EE. UU., Hay 153 códigos postales que cruzan los límites estatales.

Como se mencionó anteriormente, hay algunos códigos postales que se entregan a través de las líneas estatales, y hay algunos códigos postales / sectores que cruzan las líneas del condado. Hay 153 códigos postales en más de un estado.Hay 9,000 códigos postales en más de un condado. Hubo 11,331 (del total de 857,400) ZIP / sectores que se dividieron por condado. Todos los estados tenían algunos sectores divididos, con Virginia, Michigan y Ohio con una dosis especialmente mayor. Los sectores de la ruta rural, como se esperaba, contenían (relativamente) la mayor parte de los sectores divididos. La mayoría de los otros casos se encuentran en el rango inferior del sector (reservado para apartados postales) y en el Sector 99 (reservado para el administrador de correos y la devolución del correo comercial). Debe haber alguna asignación de código de condado no estándar para estos casos seleccionados. Tendremos que investigar más a fondo en una fecha posterior.

bsloan
fuente
0

Con ArcGIS, puede usar la herramienta de unión espacial (o en un script) para encontrar qué polígonos de código postal se cruzan con más de un polígono de estado. En la clase de entidad de salida, habrá un campo Join_Count que indicará múltiples estados. Podrías hacer algo similar con las cremalleras y las ciudades. Es probable que haya falsos positivos donde las cremalleras se superpongan involuntariamente más de una debido a imprecisiones / falta de bordes o resolución. Posiblemente podría hacer un búfer negativo de -100m de las cremalleras antes de la unión espacial y ver qué hace.

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/
"Dos nuevos campos, Join_Count y TARGET_FID, siempre se agregan a la clase de entidad de salida. Join_Count indica cuántos se unen las características coinciden con cada característica de destino (TARGET_FID). Otro campo nuevo, JOIN_FID, se agrega a la salida cuando se especifica JOIN_ONE_TO_MANY en el parámetro Operación de unión ".

awesomo
fuente
0

Puede hacer una intersección espacial en PostGIS y obtener una lista de cada estado o ciudad y los códigos postales que intersectan, lo que devolvería múltiples códigos postales donde se intersectan varios estados, y para cada ciudad que intersecó la misma postal, verá ese resultado también.

DPSSpacial
fuente
-2

En Pennsylvania, los límites de la oficina de correos no se alinean con los límites municipales. Algunos municipios pueden tener varias oficinas de correos entregándoles. Cuando nos dirigíamos al 911, algunos municipios le pidieron a la OP que cambiara su nombre por el nombre del municipio, la PO les permitió hacerlo con la condición de que continuaran usando el antiguo código postal de la oficina de correos. Muchos hicieron esto. Puede ver en estos enlaces que se usa el mismo código postal para varias ciudades. https://suburbanstats.org/zip-codes/pennsylvania/thornhurst https://suburbanstats.org/zip-codes/pennsylvania/scott-twp Básicamente, usar "Anytown" con el código postal correcto funcionará debido a la lectura de sus computadoras de clasificación código postal primero.

También puede encontrar PO que solo tiene apartados postales y no realiza entregas locales, por lo que no hay polígono para su mapa. Estos PO generalmente son pequeños.

Bill Chappell
fuente