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

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 de EE. UU. o EE. UU. ciudad?

Por ejemplo, sé que el código postal 42223 se resuelve en el ejército de los EE. UU., Fort Campbell, que se extiende a ambos lados de la línea estatal KY-TN. Curiosamente, solo la API de Google devuelve TN para ese estado correspondiente a ese zip.

Comentarios

  • ¿Cómo estás definiendo » ciudad » y » código postal «?

Respuesta

Hay 13 áreas de tabulación de código postal (ZCTA) del censo de EE. UU. de varios estados: 02861, 42223, 59221, 63673, 71749, 73949, 81137, 84536, 86044, 86515, 88063, 89439 & 97635.

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

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

Aquí está la lista completa con 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 la 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, así que los nombres de estado que enumeré eran incorrectos. He actualizado el código y resultados con la lista correcta.

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

Comentarios

  • Muchas gracias por captar 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 ‘ s, 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 estado usando el segundo, por lo que los nombres de estado que enumeré eran incorrectos (aunque las ZCTA eran buenas). ‘ he corregido el código y los resultados con la lista correcta.
  • Con respecto a las brechas en los códigos FIPS, los números omitidos se reservaron en la década de 1970 para territorios periféricos (Samoa Americana, Zona del Canal, Guam, Puerto Rico e Islas Vírgenes), pero luego no ‘ t terminaron siendo utilizados para ellos. en.wikipedia.org/wiki/…
  • Don ‘ t 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
  • Esta lista no está ‘ t casi completa. Mira mi respuesta para una aproximación mucho mejor. gis.stackexchange.com/a/223445/6052
  • Eso es ‘ impar. Google Maps muestra 02861 como literalmente parte de la frontera entre MA y RI, y todo el código postal firmemente en RI google.com/ maps / place / Pawtucket, + RI + 02861 / …

Respuesta

Realmente no hay «manera de decir esto; ya que no hay una forma de límite de ZipCode que esté definida por USPS. Los códigos postales se definen mediante un cuadro delimitador de calles entregadas a por los transportistas de un centro de distribución en particular.

Por lo tanto, necesitaría tomar los datos AIS de USPS y extraer por códigos postales las calles entregadas por una oficina de correos determinada, luego unirse a estas en una cuadrícula de calles. Esto es lo que todos los proveedores comerciales lo hacen (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.

Comentarios

Respuesta

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

Ellos publican archivos de relaciones que describen cómo se asignan sus ZCTA a otras geografías. Si examina el archivo de relación ZCTA a lugar , podrá ver cómo se asignan a ciudades y pueblos. Puede inferir cómo se asignan a los estados a partir del archivo de relación ZCTA a condados .

Los archivos de relación utilizan ID de geografía del censo, por lo que » querremos tomar un archivo de nomenclátor para ayudarlo a convertir las identificaciones numéricas en los nombres de lugares o condados que espera.

Como otros Según las respuestas, es probable que cualquier asignación de códigos postales a lugares sea aproximado, pero he tenido buena suerte con los archivos de datos del censo.

Respuesta

Datos TIGER de 2016 con PostGIS

Como advertencia especial, los datos ZCTA no son códigos postales de USPS. Es una aproximación. 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) los 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í consultamos las intersecciones entre Conjuntos de datos TIGER State y TIGER ZCTA. Tenga en cuenta que calificamos a los estados por el 1% del área total de ZCTA. Si el 1% del área de ZCTA no está en el estado, asumimos que es un error de redondeo, o alguien gordo tocando algo en el Censo. Consulte 56168 o incluso 83832 para ver un código postal que «podaremos 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 verificar todos estos elementos en Google Maps. Sin embargo, Google Maps también no tiene autoridad.

Respuesta

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 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 fronteras estatales, y hay algunos sectores / zonas postales que cruzan las fronteras 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. Había 11,331 (de un total de 857,400) ZIP / sectores que fueron spl 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 del sector inferior (reservado para apartados de correos) y en el Sector 99 (reservado para el administrador de correos y las devolución por correo). Debe haber alguna asignación de código de condado no estándar para estos casos seleccionados. Tendremos que investigarlos más a fondo en una fecha posterior.

Respuesta

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 estado. En la clase de entidad de salida, habrá un campo Join_Count que indicará varios estados. Podría hacer algo similar con cremalleras y ciudades. Es probable que haya falsos positivos en los que las cremalleras se superpongan involuntariamente a más de una debido a inexactitudes en el borde, falta o resolución. Puede hacer un búfer negativo de -100 m de las cremalleras antes de la unión espacial y mira lo que 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/
«Siempre se agregan dos campos nuevos, Join_Count y TARGET_FID, a la clase de entidad de salida. Join_Count indica cuántas funciones de unión coinciden con cada función 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 Join Operation.»

Respuesta

Puede hacer una intersección espacial en PostGIS y obtener una lista de cada estado o ciudad y los códigos postales que se cruzan, lo que devolvería varios códigos postales donde se cruzan varios estados, y para cada ciudad que se cruza con el mismo código postal, también verá ese resultado.

Comentarios

Respuesta

En Pensilvania, los límites de la oficina de correos no se alinean con los límites municipales. Es posible que algunos municipios tengan varias Oficinas de Correos entregando. Cuando estábamos haciendo el direccionamiento al 911, algunos municipios le pidieron al PO que cambiara su nae. al nombre del municipio, el PO les permitió hacer esto con la condición de que siguieran usando el código postal anterior de la oficina de correos. Muchos lo hicieron. Puede ver en estos enlaces que el mismo código postal está en uso para varias ciudades. https://suburbanstats.org/zip-codes/pennsylvania/thornhurst https://suburbanstats.org/zip-codes/pennsylvania/scott-twp Básicamente, el uso de «Anytown» con el código postal correcto funcionará debido a que sus computadoras de clasificación leen zip código primero.

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *