Determinando quais códigos postais dos EUA são mapeados para mais de um estado ou mais de uma cidade?

23

Estou usando uma listagem de códigos postais e estou curioso para saber quantos (ou quais) códigos postais são mapeados para mais de um estado ou cidade dos EUA.

Por exemplo, eu sei que o código postal 42223segue para o Exército dos EUA, Fort Campbell, que fica na fronteira com o estado KY-TN. Estranhamente, a API do Google retorna apenas TNpara o estado correspondente a esse zip.

Pedindo um
fonte
Como você está definindo "cidade" e "código postal"?
Evan Carroll

Respostas:

22

Existem 13 áreas de tabulação de códigos postais (ZCTAs) do Censo dos EUA de vários estados: 02861, 42223, 59221, 63673, 71749, 73949, 81137, 84536, 86044, 86515, 88063, 89439 e 97635.

Como outros já mencionaram, existem algumas maneiras diferentes de descobrir a área coberta por um CEP, mas os ZCTAs são os mais fáceis e a única versão oficial que eu conheço.

Portanto, seu exemplo de 42223 abrange uma fronteira estadual, mas parece que está realmente entre Maryland e Virgínia. isso entre Kentucky e Tennessee.

Aqui está a lista completa com os 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

Aqui está como eu o gerei (com Pandas em 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 : Parece que o Censo tem duas codificações de dois dígitos diferentes para os estados. Ambos são números atribuídos com base na ordem alfabética do estado, mas um parece aplicar os números diretamente de 1 a 51 (50 estados + DC), enquanto o outro pula alguns números . Eu estava usando o primeiro, enquanto deveria estar usando o segundo, então os nomes dos estados que listei estavam errados. Atualizei o código e os resultados com a lista correta.

Edit : novo mapeamento de estado confirmado pela API do OpenCongress: https://gist.github.com/gabrielgrant/89f883d093e2abf129ad

Gabriel Grant
fonte
2
Muito obrigado por capturar este @JesseCrocker - Parece que o Censo (confuso) tem duas codificações de dois dígitos diferentes para os estados. Ambos são números atribuídos com base na ordem alfabética do estado, mas um parece aplicar os números diretamente de 1 a 51 (50 estados + DC), enquanto o outro pula alguns números . Eu estava usando o primeiro, mas deveria estar usando o segundo, então os nomes dos estados que listei estavam errados (embora os ZCTAs fossem bons). Corrigi o código e os resultados com a lista correta.
Gabriel Grant
2
Em relação às lacunas nos códigos FIPS, os números ignorados foram reservados na década de 1970 para territórios periféricos (Samoa Americana, Zona do Canal, Guam, Porto Rico e Ilhas Virgens), mas depois não acabaram sendo usados ​​para eles. en.wikipedia.org/wiki/…
neuhausr 07/01
3
Não se esqueça CEP 57717 que abrange três estados seis, condados e várias cidades: 57717 Aurora, SD 57717 Butte, SD 57717 Carter, MT 57717 Crook, WY 57717 Harding, SD 57717 Lawrence, SD
Jeffrey
1
Esta listagem não está quase completa. Confira minha resposta para uma aproximação muito melhor. gis.stackexchange.com/a/223445/6052
Evan Carroll
@ Jeffrey interessante, gostaria de saber por que isso não está listado na lista de locais da ZCTA?
Gabriel Grant
11

Realmente não há uma maneira de dizer isso; pois não há uma forma de limite ZipCode definida pelo USPS. Os CEPs são definidos por uma caixa delimitadora de Ruas entregue pelas transportadoras de um centro de distribuição específico.

Portanto, você precisaria pegar os dados do USPS AIS e extrair por CEP as ruas que são entregues por uma agência postal e, em seguida, Associar-se a uma grade de ruas. É isso que todos os fornecedores comerciais fazem (Nokia / TomTom) para criar a forma Psuedo que eles usam para mostrar limites postais.

Esse processo inexato é a razão pela qual o USPS não fornece dados espaciais.

DEWright
fonte
2
Alguma coisa precisa? O que é verdade? Muitas camadas de limites zip foram criadas, o que pode ou não servir ao objetivo dessa análise específica, considerando seus requisitos desconhecidos. Limites de zip gratuitos da Esri - arcgis.com/home/item.html?id=8d2012a2016e484dafaac0451f9aea24 Veja também gis.stackexchange.com/questions/2682/…
awesomo
2
Dado, mas você também precisa entender o que estiver fazendo, as implicações dos dados que você usa.
23413 DEWright
7

O US Census Bureau deriva limites aproximados para CEPs com base nos endereços contidos neles, chamados ZCTAs (ZCTAs).

Eles publicam arquivos de relacionamento que descrevem como seus ZCTAs são mapeados para várias outras geografias. Se você examinar o arquivo de relacionamento ZCTA para local, poderá ver como eles são mapeados para cidades e vilas. Você pode inferir como eles são mapeados para estados do arquivo de relacionamento do ZCTA para os condados .

Os arquivos de relacionamento usam IDs de geografia do Censo, portanto, você deseja obter um arquivo de diário para ajudá-lo a converter os IDs numéricos nos nomes de locais ou municípios que você espera.

Como outras respostas declararam, qualquer mapeamento de códigos postais para lugares provavelmente será aproximado, mas tive sorte com os arquivos de dados do Censo.

bpanulla
fonte
4

Dados TIGER 2016 com PostGIS

Como uma ressalva especial, os dados do ZCTA não são códigos USPS. É uma aproximação disso. Os códigos postais do USPS são realmente horríveis e não são úteis, exceto para se aproximar. Todos, incluindo todas as entidades governamentais que não sejam o USPS, e (o Censo para criar o ZCTA) os ignoram completamente. Se o USPS quisesse crescer um pouco, eles apenas converteriam para o ZCTA mais recente e forneceriam polígonos GIS autorizados.

Então ... Aqui, procuramos interseções entre os conjuntos de dados TIGER State e TIGER ZCTA. Observe que qualificamos os estados em 1% da área total do ZCTA. Se 1% da área do ZCTA não estiver no estado, presumimos que seja um erro de arredondamento ou alguém digitando algo no Censo. Confira 56168ou até mesmo 83832um código postal que estamos removendo com essa seletividade 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;

Aqui está o 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)

Você deve conseguir verificar tudo isso no Google Maps. No entanto, o Google Maps também não é autoritário.

Evan Carroll
fonte
1

Sobreposições de Estado mencionadas no Documento do Censo de 1994

Em junho de 1994, de acordo com o seguinte site do US Census Bureau, existem 153 códigos postais que ultrapassam as fronteiras estaduais.

Como mencionado anteriormente, existem alguns CEPs que são entregues através das linhas de estado e existem alguns ZIP / setores que cruzam as linhas do condado. Existem 153 CEP em mais de um estado.Existem 9.000 CEPs em mais de um município. Havia 11.331 (de um total de 857.400) ZIP / setores que foram divididos por município. Todos os estados tinham alguns setores divididos, com Virgínia, Michigan e Ohio tendo uma dosagem especialmente maior. Os setores de rotas rurais, como esperado, continham (relativamente) a maior parte dos setores divididos. A maioria dos outros casos está no intervalo inferior do setor (reservado para caixas postais) e no Setor 99 (reservado para o retorno do correio e do correio comercial). Deve haver alguma atribuição de código de condado fora do padrão para esses casos selecionados. Teremos que investigá-los mais tarde.

bsloan
fonte
0

Com o ArcGIS, você pode usar a ferramenta de junção espacial (ou em um script) para descobrir quais polígonos de código postal cruzam com mais de um polígono de estado. Na classe do recurso de saída, haverá um campo Join_Count que indicará vários estados. Você poderia fazer uma coisa semelhante com zíperes e cidades. Provavelmente haverá falsos positivos quando os zíperes se sobreporem acidentalmente a mais de um por causa de imprecisões / falta ou resolução de borda. Você poderia fazer um buffer negativo de -100m dos zips antes da junção espacial e ver o que isso faz.

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/
"Dois novos campos, Join_Count e TARGET_FID, sempre são adicionados à classe de recurso de saída. Join_Count indica quantas associações os recursos correspondem a cada recurso de destino (TARGET_FID). Outro novo campo, JOIN_FID, é adicionado à saída quando JOIN_ONE_TO_MANY é especificado no parâmetro Join Operation. "

awesomo
fonte
0

Você pode fazer uma interseção espacial no PostGIS e obter uma lista de todos os estados ou cidades e os códigos postais que eles interceptam, o que retornaria vários CEPs onde vários estados se cruzam e, para cada cidade que cruzou o mesmo CEP, você verá esse resultado também.

DPSSpatial
fonte
-2

Na Pensilvânia, os limites dos correios não se alinham com os limites municipais. Alguns municípios podem ter vários Correios entregando a eles. Quando estávamos abordando o 911, alguns municípios pediram que o OP mudasse seu nome para o nome do município, o PO permitiu que fizessem isso com a condição de que continuassem usando o CEP antigo da agência postal. Muitos fizeram isso. Você pode ver nesses links o mesmo código postal em uso em várias cidades. https://suburbanstats.org/zip-codes/pennsylvania/thornhurst https://suburbanstats.org/zip-codes/pennsylvania/scott-twp Basicamente, o uso de "Anytown" com o CEP certo funcionará devido à leitura dos computadores de classificação CEP primeiro.

Você também pode encontrar um pedido que só possui caixas postais e não faz entrega local, portanto não há polígono para o seu mapa. Esses pedidos são geralmente pequenos.

Bill Chappell
fonte