Bestimmen, welche US-Postleitzahlen mehr als einem Bundesstaat oder mehr als einer Stadt zugeordnet sind?

Ich verwende eine Postleitzahlliste und bin gespannt, wie viele (oder welche) Postleitzahlen mehr als einem US-Bundesstaat oder den USA zugeordnet sind Stadt?

Zum Beispiel weiß ich, dass die Postleitzahl 42223 in die US-Armee Fort Campbell aufgelöst wird, die die KY-TN-Staatsgrenze überspannt. Seltsamerweise nur die Google-API Gibt TN für den Status zurück, der dieser Postleitzahl entspricht.

Kommentare

  • Wie definieren Sie “ Stadt “ und “ Postleitzahl „?

Antwort

Es gibt 13 Postleitzahlentabellenbereiche (ZCTAs) für US-Volkszählungen mit mehreren Bundesstaaten: 02861, 42223, 59221, 63673, 71749, 73949, 81137, 84536, 86044, 86515, 88063, 89439 & 97635.

Wie andere dort erwähnt haben Es gibt verschiedene Möglichkeiten, den von einer Postleitzahl abgedeckten Bereich herauszufinden, aber ZCTAs sind die einfachsten und die o Nur offizielle Version, die ich kenne.

Ihr Beispiel für 42223 erstreckt sich also über eine Staatsgrenze, , aber es sieht so aus, als ob es tatsächlich zwischen Maryland und Virginia liegt. das zwischen Kentucky und Tennessee.

Hier ist die vollständige Liste mit den Status:

 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 

So habe ich sie generiert (mit Pandas in 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) 

Bearbeiten : Es scheint, dass die Volkszählung zwei verschiedene zweistellige Codierungen für Zustände hat. Beide sind Nummern, die basierend auf der alphabetischen Reihenfolge des Status zugewiesen werden, aber scheint man die Nummern direkt von 1-51 (50 Status + DC) anzuwenden, während die anderen überspringen einige Zahlen . Ich habe die erste verwendet, während ich die zweite hätte verwenden sollen, sodass die von mir aufgelisteten Statusnamen falsch waren. Ich habe die aktualisiert Code und Ergebnisse mit der richtigen Liste.

Bearbeiten : Neue Statuszuordnung von der OpenCongress-API bestätigt: https://gist.github.com/gabrielgrant/89f883d093e2abf129ad

Kommentare

  • Vielen Dank, dass Sie diesen @JesseCrocker abgefangen haben – es scheint die Volkszählung (verwirrend) hat zwei verschiedene zweistellige Codierungen für Zustände. Beides sind Nummern, die basierend auf der alphabetischen Reihenfolge des Status ‚ zugewiesen werden, aber scheint man die Nummern direkt von 1-51 (50 Zustände + DC), während der andere einige Zahlen überspringt . Ich habe den ersten verwendet, aber ich hätte den zweiten verwenden sollen, daher waren die von mir aufgelisteten Statusnamen falsch (obwohl die ZCTAs gut waren). Ich ‚ habe den Code und die Ergebnisse mit der richtigen Liste korrigiert.
  • In Bezug auf die Lücken in den FIPS-Codes wurden die übersprungenen Nummern in den 1970er Jahren für abgelegene Gebiete reserviert (Amerikanisch-Samoa, Kanalzone, Guam, Puerto Rico und Jungferninseln), aber dann wurde ‚ nicht für sie verwendet. de.wikipedia.org/wiki/…
  • Don ‚ Vergessen Sie nicht die Postleitzahl 57717, die drei Bundesstaaten, sechs, Grafschaften und mehrere Städte umfasst: 57717 Aurora, SD 57717 Butte, SD 57717 Carter, MT 57717 Crook, WY 57717 Harding, SD 57717 Lawrence, SD
  • Diese Auflistung ist ‚ nicht nahezu vollständig. Schauen Sie sich meine Antwort für eine weitaus bessere Annäherung an. gis.stackexchange.com/a/223445/6052
  • Das ‚ ist ungerade. Google Maps zeigt 02861 als Teil der Grenze zwischen MA und RI und die gesamte Postleitzahl fest in RI google.com/ maps / place / Pawtucket, + RI + 02861 / …

Antwort

Es gibt wirklich keine Möglichkeit, dies zu sagen, da es keine vom USPS definierte ZipCode-Grenzform gibt. Postleitzahlen werden durch einen Begrenzungsrahmen der gelieferten Straßen definiert von Spediteuren aus einem bestimmten Distributionszentrum.

Sie müssten also die USPS-AIS-Daten verwenden und die von einem bestimmten Postamt gelieferten Straßen per Postleitzahl extrahieren und diese dann einem Straßenraster beitreten Alle kommerziellen Anbieter (Nokia / TomTom) erstellen die Pseudo-Form, mit der sie Postgrenzen anzeigen.

Dieser ungenaue Prozess ist der Grund, warum der USPS keine räumlichen Daten bereitstellt.

Kommentare

Antwort

Das US Census Bureau leitet ungefähre Grenzen für Postleitzahlen basierend auf den darin enthaltenen Adressen ab, die als Postleitzahl bezeichnet werden Code Tabulation Areas (ZCTAs).

Sie veröffentlichen Beziehungsdateien , die beschreiben, wie ihre ZCTAs verschiedenen anderen Regionen zugeordnet werden. Wenn Sie die Beziehungsdatei ZCTA to Place untersuchen, können Sie sehen, wie sie Städten zugeordnet sind. Sie können aus der Beziehungsdatei ZCTA to Counties ableiten, wie sie Zuständen zugeordnet werden.

Die Beziehungsdateien verwenden geografische IDs der Volkszählung. möchte eine Gazetteer-Datei abrufen, um die numerischen IDs in die von Ihnen erwarteten Orts- oder Kreisnamen umzuwandeln.

Wie andere Antworten haben angegeben, dass jede Zuordnung von Postleitzahlen zu Orten wahrscheinlich ungefähr ist, aber ich hatte viel Glück mit den Volkszählungsdatendateien.

Antwort

2016 TIGER-Daten mit PostGIS

Als besondere Einschränkung sind ZCTA-Daten keine USPS-Postleitzahlen. Es ist eine Annäherung daran. USPS-Postleitzahlen sind wirklich schrecklich und nur zur Annäherung nützlich. Jeder, einschließlich aller anderen Regierungsstellen als USPS, und (die Volkszählung zur Herstellung von ZCTA) ignorieren sie vollständig. Wenn USPS erwachsen werden wollte ein bisschen, sie würden einfach auf die neueste ZCTA konvertieren und autorisierende GIS-Polygone bereitstellen.

Dann … Hier fragen wir nach Schnittpunkten zwischen TIGER State- und TIGER ZCTA-Datensätze. Beachten Sie, dass wir Staaten um 1% der gesamten ZCTA-Fläche qualifizieren. Wenn 1% der ZCTA-Fläche nicht in dem Zustand ist, nehmen wir an, dass es sich um einen Rundungsfehler handelt oder dass jemand bei der Volkszählung etwas Fettes fingert. Suchen Sie unter 56168 oder sogar 83832 nach einer Postleitzahl, die wir mit dieser zusätzlichen Selektivität „beschneiden“.

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; 

Hier ist das 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) 

Sie sollten in der Lage sein, all dies in Google Maps zu überprüfen. Google Maps ist auch nicht maßgeblich.

Antwort

Statusüberschneidungen, die im Volkszählungsdokument von 1994 erwähnt wurden

Im Juni 1994 gibt es gemäß der folgenden Website des US Census Bureau 153 Postleitzahlen, die Staatsgrenzen überschreiten.

Wie bereits erwähnt, gibt es einige Postleitzahlen, die über Staatsgrenzen hinweg liefern, und es gibt einige Postleitzahlen / Sektoren, die Kreisgrenzen überschreiten. Es gibt 153 Postleitzahlen in mehr als einem Bundesstaat. Es gibt 9.000 Postleitzahlen in mehr als einem Landkreis. Es gab 11.331 (von insgesamt 857.400) Postleitzahlen das waren spl es nach Grafschaft. Alle Staaten hatten einige geteilte Sektoren, wobei Virginia, Michigan und Ohio eine besonders größere Dosierung hatten. Die ländlichen Streckensektoren enthielten erwartungsgemäß (relativ) den Löwenanteil der geteilten Sektoren. Die meisten anderen Fälle liegen im unteren Sektorbereich (reserviert für Postfächer) und im Sektor 99 (reserviert für Postmeister und Unternehmen) E-Mail-Rückgabe). Für diese ausgewählten Fälle muss eine nicht standardmäßige Zuweisung des County-Codes erfolgen. Diese müssen zu einem späteren Zeitpunkt weiter untersucht werden.

Antwort

Mit ArcGIS können Sie mithilfe des räumlichen Verknüpfungswerkzeugs (oder in einem Skript) ermitteln, welche Postleitzahl-Polygone sich mit mehr als einem Statuspolygon schneiden. In der Ausgabe-Feature-Class gibt es ein Join_Count-Feld, das mehrere Status angibt. Ähnliches können Sie mit Reißverschlüssen und Städten tun. Es gibt wahrscheinlich Fehlalarme, bei denen sich die Reißverschlüsse aufgrund von Ungenauigkeiten / fehlenden oder fehlenden Rändern unbeabsichtigt überlappen Auflösung. Sie könnten möglicherweise einen negativen -100m-Puffer der Reißverschlüsse vor dem räumlichen Join und erstellen Sehen Sie, was das bewirkt.

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/
„Zwei neue Felder, Join_Count und TARGET_FID, werden immer zur Ausgabe-Feature-Class hinzugefügt. Join_Count gibt an, wie viele Join-Features mit jedem Ziel-Feature übereinstimmen (TARGET_FID). Ein weiteres neues Feld, JOIN_FID, wird der Ausgabe hinzugefügt, wenn JOIN_ONE_TO_MANY im Parameter Join Operation angegeben wird.“

Antwort

Sie können in PostGIS einen räumlichen Schnittpunkt erstellen und eine Liste aller Bundesstaaten oder Städte sowie der Postleitzahlen zurückerhalten dass sie sich überschneiden, wodurch mehrere Postleitzahlen zurückgegeben werden, wenn sich mehrere Bundesstaaten überschneiden, und für jede Stadt, die dieselbe Postleitzahl schneidet, wird auch dieses Ergebnis angezeigt.

Kommentare

Antwort

In Pennsylvania stimmen die Postgrenzen nicht mit den Gemeindegrenzen überein. In einigen Townships werden möglicherweise mehrere Postämter zugestellt. Als wir die 911-Adressierung durchführten, baten einige Townships die PO, ihre Nae zu ändern In Bezug auf den Namen der Gemeinde erlaubte die PO ihnen, dies unter der Bedingung zu tun, dass sie weiterhin die alte Postleitzahl der Post verwendeten. Viele taten dies. Sie können diesen Links entnehmen, dass dieselbe Postleitzahl für mehrere Städte verwendet wird. https://suburbanstats.org/zip-codes/pennsylvania/thornhurst https://suburbanstats.org/zip-codes/pennsylvania/scott-twp Grundsätzlich funktioniert die Verwendung von „Anytown“ mit der richtigen Postleitzahl, da die Computer die Postleitzahl lesen Code zuerst.

Sie können auch auf Bestellungen stoßen, die nur Postfächer haben und keine lokale Zustellung durchführen, also kein Polygon für Ihre Karte. Diese Bestellungen sind normalerweise klein.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.