Hangi ABD posta kodlarının birden fazla eyalete veya birden fazla şehre eşlendiğini belirleme?


23

Bir posta kodu listesi kullanıyorum ve kaç tane (veya hangi) posta kodunun birden fazla ABD eyaletine veya ABD şehrine eşlendiğini bilmek isterim?

Mesela, Posta Kodunun 42223, KY-TN devlet hattını saran ABD Ordusu, Fort Campbell’a karar verdiğini biliyorum . İşin garibi, google API sadece TNbu posta koduna karşılık gelen bu durum için geri dönüyor .


"Şehir" ve "posta kodu" nu nasıl tanımlarsınız?
Evan Carroll,

Yanıtlar:


22

13 adet çok eyaletli ABD Sayımının Posta Kodu Tablolama Alanları (ZCTA'lar) vardır: 02861, 42223, 59221, 63673, 71749, 73949, 81137, 84536, 86044, 86515, 88063, 89439 ve 97635.

Diğerlerinin de belirttiği gibi, bir ZIP Kodunun kapsadığı alanı belirlemenin birkaç farklı yolu vardır, ancak ZCTA'lar en kolay ve bildiğim tek resmi sürümdür.

Demek ki 42223 örneğiniz bir devlet sınırını kapsıyor, ama aslında Maryland ile Virginia arasında görünüyor. Kentucky ve Tennessee arasında.

İşte devletlerin tam listesi:

 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

İşte bunu şöyle yarattım (Python'daki Pandalar ile):

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)

Düzenleme : Görünüşe göre, nüfus sayımı eyaletler için iki farklı iki basamaklı kodlamaya sahip. Her ikisi de devletin alfabetik sırasına göre atanan sayılardır, ancak biri sayıları doğrudan 1-51 (50 durum + DC) olarak uygularken , diğeri bazı sayıları atlar . İlkini kullanıyordum, ikincisini kullanmalıydım, bu yüzden listelediğim durum adları yanlıştı. Kodu ve sonuçları doğru listeyle güncelledim.

Düzenleme : OpenCongress API'sı tarafından onaylanan yeni durum eşlemesi: https://gist.github.com/gabrielgrant/89f883d093e2abf129ad


2
Bu @JesseCrocker'ı yakaladığınız için çok teşekkür ederiz - Görünüşe göre, Sayım (kafa karıştırıcı olarak) durumlar için iki basamaklı iki kodlamaya sahiptir. Her ikisi de devletin alfabetik sırasına göre atanan sayılardır, ancak biri sayıları doğrudan 1-51 (50 durum + DC) olarak uygularken , diğeri bazı sayıları atlar . İlkini kullanıyordum, ancak ikincisini kullanıyor olmalıydım, bu yüzden listelediğim durum adları hatalıydı (ZCTA'lar iyi olsa da). Kodu ve sonuçları doğru listeyle düzelttim.
Gabriel Grant

2
FIPS kodlarındaki boşluklarla ilgili olarak, atlanan sayılar 1970'lerde dış bölgelere (Amerikan Samoası, Canal Zone, Guam, Porto Riko ve Virgin Adaları) ayrılmıştır, ancak daha sonra bunlar için kullanılmamıştır. en.wikipedia.org/wiki/...
neuhausr

3
Üç eyalet altı, bölge ve birden fazla şehri kapsayan posta kodu 57717'yi unutma: 57717 Aurora, SD 57717 Butte, SD 57717 Carter, MT 57717 Crook, WY 57717 Harding, SD 57717 Lawrence, SD
Jeffrey

1
Bu liste tamamlanmadı. Bir benim cevap göz atın kadar iyi yaklaşım. gis.stackexchange.com/a/223445/6052
Evan Carroll

@Jeffrey ilginç, neden bu ZCTA yer listesinde listelenmiyor merak ediyorum?
Gabriel Grant

11

Bunu söylemenin bir yolu yok; Orada beri bir değil USPS ile tanımlanır ZIPCODE Sınır şekli. ZipCodes, belirli bir dağıtım merkezinden taşıyıcılar tarafından teslim edilen bir sınırlayıcı Streets kutusu ile tanımlanır.

Bu yüzden USPS AIS verilerini almanız ve ZipCodes tarafından belirli bir Postane tarafından teslim edilen caddeleri çıkarmanız, ardından bunlara bir sokak ızgarasına katılmanız gerekir. Bu, tüm ticari satıcıların posta sınırlarını göstermek için kullandıkları Psuedo şeklini oluşturmak için yaptığı şeyi (Nokia / TomTom) yapar.

Bu tam olmayan süreç, USPS'nin mekansal veri sağlamamasının nedenidir.


2
Herhangi bir şey doğru mu? Gerçek nedir? Bilinmeyen gereksinimleri göz önüne alındığında, bu özel analizin amacına hizmet edebilecek ya da hizmet vermeyebilecek çok sayıda fermuar sınırı tabakası yaratılmıştır. Esri ücretsiz zip sınırları - arcgis.com/home/item.html?id=8d2012a2016e484dafaac0451f9aea24 Ayrıca bakınız: gis.stackexchange.com/questions/2682/…
awesomo

2
Verilen, ancak aynı zamanda, kullandığınız verilerin etkilerini ne yaptığını anlamanız gerekir.
DEWright

7

ABD Nüfus Sayımı Bürosu, içindeki kodlara göre ZIP Kod Tablolama Alanları (ZCTA) adı verilen ZIP kodları için yaklaşık sınırlar türetmektedir.

Onlar ilişki dosyalarını yayınlamak onların ZCTAs diğer çeşitli coğrafyalarda nasıl eşleştiği açıklanmaktadır. ZCTA to Place ilişki dosyasını incelerseniz, şehirlere ve kasabalara nasıl eşlendiklerini görebilirsiniz. ZCTA'dan İlçeler ilişki dosyasına devletlerle nasıl eşleştiklerini öğrenebilirsiniz .

İlişki dosyaları, Sayım coğrafya kimliklerini kullanır, böylece sayısal kimlikleri beklediğiniz yere veya ilçe adlarına dönüştürmenize yardımcı olacak bir gazete dosyası almak istersiniz.

Diğer cevapların da belirttiği gibi, ZIP kodlarının yerlere herhangi bir şekilde eşleştirilmesi yaklaşık bir ihtimal olabilir, ancak Census veri dosyalarında iyi şanslar yaşadım.


4

PostGIS ile 2016 TIGER Verileri

Özel bir uyarı olarak, ZCTA verileri USPS Posta Kodları değildir. Bu yaklaşık bir değer. USPS Posta Kodları gerçekten korkunç ve yaklaşık olanlar için kullanışlı değil. USPS dışındaki her devlet kurumu ve (ZCTA yapmak için sayım) dahil olmak üzere herkes bunları tamamen görmezden geliyor. USPS biraz büyümek isteseydi, sadece en son ZCTA'ya dönüşür ve yetkili CBS poligonları sağlarlardı.

Sonra ... Burada TIGER State ve TIGER ZCTA veri kümeleri arasındaki kesişme noktalarını sorgularız. Not, eyaletleri toplam ZCTA alanının% 1'i ile niteliyoruz. ZCTA alanının% 1'i eyalette değilse, bunun bir yuvarlama hatası olduğunu veya Nensus'ta bir şeyi parmakla dökülen birisinin olduğunu varsayıyoruz. Bu eklenen seçicilikle budamakta olduğumuz posta kodunu kontrol edin 56168veya hatta 83832.

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;

İşte 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)

Bunların hepsini Google Haritalar’da kontrol edebilmeniz gerekir. Ancak, Google Haritalar da yetkili değildir .


1

1994 Sayım Belgesi'nde belirtilen Devlet Örtüşmeler

1994 yılı Haziran ayında, aşağıdaki ABD Sayım Bürosu sitesine göre devlet sınırlarını geçen 153 posta kodu var.

Daha önce de belirtildiği gibi, durum çizgileri arasında birkaç ZIP kodu vardır ve ilçe çizgilerini geçen birkaç ZIP / sektörü vardır. Birden fazla eyalette 153 Posta Kodu vardır.Birden fazla ilçede 9,000 ZIP kodu vardır. İlçe bazında ayrılmış 11.331 (toplam 857.400 üzerinden) ZIP / sektör vardı. Bütün eyaletlerde, özellikle daha büyük bir doza sahip olan Virginia, Michigan ve Ohio ile bazı bölünmüş sektörler vardı. Kırsal rota sektörleri, beklendiği gibi, aslanın bölünmüş sektörlerdeki payını (göreceli olarak) içermektedir. Diğer davaların çoğu alt sektör aralığında (postane kutuları için ayrılmıştır) ve Sektör 99'da (postacı ve iş postalarının iadesi için ayrılmıştır) bulunmaktadır. Bu seçilen durumlar için bazı standart dışı ülke kodu atamaları yapılmalıdır. Bunları daha sonra araştırmamız gerekecek.


0

ArcGIS ile, hangi posta kodu poligonlarının birden fazla durum poligonu ile kesiştiğini bulmak için uzamsal birleştirme aracını (veya bir komut dosyasında) kullanabilirsiniz. Çıkış özelliği sınıfında, birden fazla durumu belirten bir Join_Count alanı olacaktır. Fermuarlar ve şehirler ile benzer bir şey yapabilirsin. Sınırdaki yanlışlıklar / eksiklik veya çözülme nedeniyle fermuarların istemeden birden fazla çakıştığı durumlarda yanlış pozitifler ortaya çıkacaktır. Uzamsal birleşmeden önce fermuarların negatif-100 m'lik bir tamponunu yapabilir ve ne yaptığını görebilirsiniz.

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/
"İki yeni alan Join_Count ve TARGET_FID, her zaman çıktı özellik sınıfına eklenir. Join_Count ve TARGET_FID, her zaman çıktı özellik sınıfına eklenir. özellikler, her hedef özellikle eşleşiyor (TARGET_FID) JOIN_ONE_TO_MANY, Join Operation parametresinde JOIN_ONE_TO_MANY belirtildiğinde çıktıya yeni bir alan daha ekleniyor.



-2

Pennsylvania'da postane sınırları belediye sınırları ile uyumlu değildir. Bazı ilçelerde onlara teslim birkaç Postaneler olabilir. 911 adresini yaparken, bazı ilçeler PO'dan nae'lerini ilçe adına değiştirmelerini istediler, PO eski Posta Ofisi posta kodunu kullanmaya devam etmeleri şartıyla bunu yapmalarına izin verdi. Bunu birçok kişi yaptı. Bu bağlantılardan aynı posta kodunun birkaç kasaba için kullanıldığını görebilirsiniz. https://suburbanstats.org/zip-codes/pennsylvania/thornhurst https://suburbanstats.org/zip-codes/pennsylvania/thornhurst https://suburbanstats.org/zip-codes/pennsylvania/scott-twp Temel olarak "Anytown" u doğru posta koduyla kullanmak, sıralama bilgisayarları okuduğu için çalışacak önce posta kodu.

Ayrıca yalnızca PO kutuları olan ve yerel teslimat yapmayan PO ile karşılaşabilir, bu nedenle haritanız için çokgen yoktur. Bu PO genellikle küçüktür.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.