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

19

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

Por ejemplo, sé que el Código postal 42223 se resuelve 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 devuelve TN para ese estado correspondiente a ese zip.

    
pregunta Asking One 08.03.2013 - 21:22

8 respuestas

18

Hay 13 Áreas de tabulación de códigos postales (ZCTA) del Censo de EE. UU. de varios estados: 02861, 42223, 59221, 63673, 71749, 73949, 81137, 84536, 86044, 86515, 88063, 89439 y amp; 97635.

Como han mencionado otros, hay algunas formas diferentes de averiguar el área cubierta por un código postal, pero las ZCTA son las más fáciles y las únicas versiones oficiales que conozco.

Entonces, su ejemplo de 42223 abarca un límite estatal, pero parece que en realidad se encuentra entre Maryland y Virginia. que 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 de dos dígitos diferentes 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-51 (50 estados + DC), mientras que el otro salta algunos números . Estaba usando el primero, mientras que debería haber usado el segundo, por lo que los nombres de los estados que mencioné eran incorrectos. He actualizado el código y los resultados con la lista correcta.

Editar : nueva asignación de estado confirmada por la API de OpenCongress: enlace

    
respondido por el Gabriel Grant 21.10.2015 - 22:24
11

Realmente no hay una manera de decir esto; ya que no es una forma de límite de Código Postal que esté definida por USPS. Los códigos postales se definen mediante un cuadro delimitador de Calles entregados por los transportistas desde un centro de distribución en particular.

Entonces, tendría que tomar los datos AIS de USPS y extraer mediante ZipCodes las calles que se entregan en una oficina de correos determinada, luego unirse a estos una cuadrícula de calles. Esto es lo que hacen todos los proveedores comerciales (Nokia / TomTom) para crear la forma Psuedo que utilizan para mostrar los límites postales. Este proceso inexacto es la razón por la que USPS no proporciona datos espaciales.

    
respondido por el D.E.Wright 08.03.2013 - 22:37
6

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

archivos de relaciones que describen cómo sus ZCTA se asignan a otras geografías. Si examina el ZCTA to Place archivo de relaciones se puede ver cómo se asignan a las ciudades y pueblos. Puede inferir cómo se asignan a los estados desde Archivo de relaciones de ZCTA a condados .

Los archivos de relaciones utilizan las ID geográficas del Censo, por lo que querrá capturar un archivo de diccionario geográfico para ayudarlo a convertir las ID numéricas en los nombres de lugares o condados que está esperando.

Como han indicado 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.

    
respondido por el bpanulla 09.03.2013 - 03:27
3

Datos TIGER 2016 con PostGIS

Como advertencia especial, los datos ZCTA no son códigos postales de USPS. Es una aproximación de ello. Los códigos postales de USPS son realmente horribles y no son útiles, excepto para aproximarse. Todos, incluso 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 a la última ZCTA y proporcionarían polígonos GIS autorizados.

Entonces ... Aquí se consultan las intersecciones entre los conjuntos de datos TIGER State y TIGER ZCTA. Tenga en cuenta que calificamos los estados en un 1% del área total de ZCTA. Si el 1% del área de ZCTA no está en el estado, asumimos que se trata de un error de redondeo, o que alguien gordo está identificando algo en el Censo. Echa un vistazo a 56168 o incluso a 83832 para obtener el código postal que estamos eliminando 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ías poder verlos todos en Google Maps. Sin embargo, Google Maps también es no autoritario.

    
respondido por el Evan Carroll 05.01.2017 - 20:06
1

Superposiciones de estados mencionadas en el documento del censo de 1994

En junio de 1994, de acuerdo a lo siguiente U.S. En el sitio de la Oficina del Censo hay 153 códigos postales que cruzan los límites estatales.

  

Como se mencionó anteriormente, hay algunos códigos postales que se entregan a lo largo de las líneas estatales, y hay unos pocos ZIP / 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, y Virginia, Michigan y Ohio tenían una dosis especialmente mayor. Los sectores de rutas rurales, 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 los apartados de correos) y en el Sector 99 (reservado para el administrador de correos y la devolución por correo comercial). Debe haber alguna asignación de código de condado que no sea estándar para estos casos seleccionados. Tendremos que seguir investigando estos en una fecha posterior.

    
respondido por el bsloan 01.07.2016 - 15:11
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 intersecan con más de un polígono de estado. En la clase de entidad de salida, habrá un campo Join_Count que indicará varios estados. Podrías hacer algo similar con las cremalleras y las ciudades. Es probable que existan falsos positivos cuando las cremalleras se superpongan involuntariamente más de una debido a imprecisiones / falta de resolución o al borde. Posiblemente podría hacer un búfer negativo de -100m de las cremalleras antes de la unión espacial y ver qué hace eso.

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")

enlace
"Dos nuevos campos, Join_Count y TARGET_FID, siempre se agregan a la clase de entidad de salida. Join_Count indica cuántas entidades de unión 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 ".

    
respondido por el awesomo 08.03.2013 - 22:06
0

Puede hacer una intersección espacial en PostGIS y obtener una lista de todos los estados o ciudades y los códigos postales en los que se intersecan, lo que devolvería múltiples códigos postales donde se intersecan múltiples estados, y para cada ciudad que intersecciona la misma postal, Verías ese resultado también.

    
respondido por el DPSSpatial 07.01.2016 - 15:18
-2

En Pennsylvania, los límites de la oficina postal no se alinean con los límites municipales. Algunos municipios pueden tener varias oficinas de correos entregando a ellos. Cuando hacíamos el direccionamiento al 911, algunos municipios le pidieron al PO que cambiara su nombre al nombre del municipio, el PO les permitió hacer esto con la condición de que siguieran usando el código postal de la antigua oficina postal. Muchos hicieron esto. Puedes ver en estos enlaces que se está utilizando el mismo código postal para varias ciudades. enlace enlace Básicamente, usar "Anytown" con el código postal correcto funcionará porque sus computadoras de clasificación leen el código postal primero .

También puede encontrarse con un PO que solo tenga apartados de correos y no haga envíos locales, por lo que no hay polígono para su mapa. Estos PO suelen ser pequeños.

    
respondido por el Bill Chappell 04.04.2018 - 14:52

Lea otras preguntas en las etiquetas