Určení, které PSČ USA mapují více než jeden stát nebo více než jedno město?

Používám výpis PSČ a jsem zvědavý, kolik (nebo které) PSČ se mapuje na více než jeden stát USA nebo USA city?

Například vím, že poštovní směrovací číslo 42223 se převádí na americkou armádu, Fort Campbell, která se rozkládá na státní hranici KY-TN. Kupodivu pouze Google API vrátí TN pro daný stav odpovídající tomuto zipu.

Komentáře

  • Jak definujete “ město “ a “ PSČ „?

Odpověď

K dispozici je 13 vícestátních sčítání lidu v USA „Tabulkové oblasti PSČ (ZCTA): 02861, 42223, 59221, 63673, 71749, 73949, 81137, 84536, 86044, 86515, 88063, 89439 & 97635.

Jak již uvedli ostatní, existuje několik různých způsobů, jak zjistit oblast pokrytou PSČ, ale ZCTA jsou nejjednodušší a pouze oficiální verze, o které vím.

Váš příklad 42223 tedy zahrnuje státní hranici, , ale vypadá to, že je ve skutečnosti mezi Marylandem a Virginií. mezi Kentucky a Tennessee.

Zde je úplný seznam se stavy:

 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 

Zde je způsob, jakým jsem jej vygeneroval (s Pandami v Pythonu):

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) 

Upravit : Zdá se, že sčítání má pro státy dvě různá dvouciferná kódování. Obě jsou čísla přiřazená na základě abecedního řazení státu, ale zdá se, že platí čísla přímo od 1 do 51 (50 států + DC), zatímco ostatní přeskočí některá čísla . Používal jsem první, zatímco jsem měl používat druhé, takže názvy států, které jsem uvedl, byly špatné. Aktualizoval jsem kód a výsledky se správným seznamem.

Upravit : nové mapování stavu potvrzené rozhraním OpenCongress API: https://gist.github.com/gabrielgrant/89f883d093e2abf129ad

Komentáře

  • Děkuji mnohokrát za chytení tohoto @JesseCrocker – zdá se, že sčítání lidu (matoucí) má dvě různá dvoumístná kódování pro státy. Obě jsou čísla přiřazená na základě státního ‚ s abecedního řazení, ale zdá se, že platí čísla přímo od 1-51 (50 stavů + DC), zatímco druhý přeskočí některá čísla . Používal jsem první, ale měl jsem používat druhou, takže názvy států, které jsem uvedl, byly špatné (ačkoli ZCTA byly dobré).

Opravil jsem kód a výsledky se správným seznamem.

  • Pokud jde o mezery v kódech FIPS, přeskočená čísla byla v 70. letech vyhrazena pro odlehlá území (Americká Samoa, Canal Zone, Guam, Portoriko a Panenské ostrovy), ale nakonec pro ně nebyly ‚ použity. en.wikipedia.org/wiki/…
  • Don Nezapomeňte na PSČ 57717, která zahrnuje tři státy šest, kraje a několik měst: 57717 Aurora, SD 57717 Butte, SD 57717 Carter, MT 57717 Crook, WY 57717 Harding, SD 57717 Lawrence, SD
  • Tento výpis není ‚ téměř dokončen. Podívejte se na moji odpověď na daleko lepší přiblížení. gis.stackexchange.com/a/223445/6052
  • To je ‚ zvláštní. Mapy Google ukazují, že 02861 doslova tvoří součást hranice mezi MA a RI a celé PSČ pevně v RI google.com/ mapy / místo / Pawtucket, + RI + 02861 / …
  • odpověď

    To opravdu není možné říct; protože neexistuje hraniční tvar ZipCode, který je definován USPS. ZipCodes jsou definovány ohraničujícím rámečkem ulic dopravci z konkrétního distribučního centra.

    Takže byste potřebovali vzít data USPS AIS a extrahovat pomocí ZipCodes ulice, které jsou doručovány danou poštou, a poté se k nim připojit k ulici. To je to všichni komerční prodejci (Nokia / TomTom) vytvářejí tvar Psuedo, který používají k zobrazení poštovních hranic.

    Tento nepřesný proces je důvodem, proč USPS neposkytuje prostorová data.

    Komentáře

    Odpověď

    Úřad pro sčítání lidu USA odvozuje přibližné hranice pro PSČ na základě adres v nich obsažených, tzv. ZIP Tabulkové oblasti kódu (ZCTA).

    Publikují soubory vztahů , které popisují, jak se jejich ZCTA mapují do různých jiných geografických oblastí. Pokud prozkoumáte soubor vztahů ZCTA na místo , uvidíte, jak se mapují do měst. Můžete odvodit, jak se mapují na státy ze souboru vztahů ZCTA to Counties .

    Soubory vztahů používají geografická ID sčítání, takže vy “ Chci uchopit soubor místopisu , který vám pomůže převést numerická ID na místo nebo názvy krajů, které očekáváte.

    Jako další Odpovědi uvádějí, že jakékoli mapování PSČ na místa bude pravděpodobně přibližné, ale měl jsem štěstí v datových souborech sčítání lidu.

    Odpověď

    2016 TIGER Data s PostGIS

    Data ZCTA jako speciální upozornění nejsou ZPS kódy USPS. Je to jeho přibližné vyjádření. Zipové kódy USPS jsou opravdu hrozné a nejsou užitečné, kromě aproximace. Každý, včetně všech vládních subjektů jiných než USPS, a (Sčítání lidu pro výrobu ZCTA) je zcela ignoruje. Pokud by USPS chtěl dospět trochu se převedou na nejnovější ZCTA a poskytnou autoritativní polygony GIS.

    Pak … Zde vyhledáváme křižovatky mezi Datové sady TIGER State a TIGER ZCTA. Upozorňujeme, že státy kvalifikujeme o 1% z celkové plochy ZCTA. Pokud 1% plochy ZCTA není ve stavu, předpokládáme, že jde o chybu zaokrouhlování, nebo někdo tlustý prstem něco při sčítání lidu. Podívejte se na 56168 nebo dokonce 83832 na PSČ, které s touto přidanou selektivitou prořezáváme.

    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; 

    Zde je 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) 

    Měli byste být schopni všechny tyto kontroly v Mapách Google zkontrolovat na místě. Mapy Google také nejsou autoritativní.

    Odpověď

    Překrývání států uvedené v dokumentu ze sčítání lidu z roku 1994

    V červnu 1994 podle následujícího webu amerického sčítání lidu existuje 153 PSČ, které překračuje státní hranice.

    Jak již bylo zmíněno dříve, existuje několik PSČ, které se doručují přes státní hranice, a existuje několik ZIP / sektorů, které překračují hranice krajů. Ve více než jednom státě je 153 PSČ. Ve více než jednom kraji je 9 000 PSČ. Bylo zde 11 331 (z celkových 857 400) PSČ / sektorů které byly spl to podle krajů. Všechny státy měly některé rozdělené sektory, přičemž Virginie, Michigan a Ohio měly obzvláště větší dávku. Sektory venkovských tras podle očekávání obsahovaly (relativně) lví podíl rozdělených sektorů. Většina ostatních případů se nachází v oblasti spodního sektoru (vyhrazeno pro poštovní schránky) a v sektoru 99 (vyhrazeno poštovním správcům a podnikům) poštovní vrácení). U těchto vybraných případů musí dojít k nějakému nestandardnímu přidělení kódu kraje. Později je budeme muset dále prošetřit.

    Odpověď

    Pomocí ArcGIS můžete pomocí nástroje pro prostorové spojení (nebo ve skriptu) zjistit, které polygony PSČ se protínají s více než jedním státním polygonem. Ve třídě výstupních funkcí bude pole Join_Count, které bude označovat více států. Podobnou věc byste mohli udělat se zipy a městy. Pravděpodobně budou existovat falešné pozitivy, kde se zipy neúmyslně překrývají s více než jedním z důvodu nepřesností / nedostatku hranic nebo rozlišení. Před prostorovým spojením a byste mohli udělat zápornou -100m vyrovnávací paměť zipů podívejte se, co to dělá.

    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/
    „Do třídy výstupních prvků jsou vždy přidána dvě nová pole, Join_Count a TARGET_FID. Join_Count označuje, kolik funkcí spojení odpovídá každému cílovému prvku (TARGET_FID). Další nové pole, JOIN_FID, je přidáno do výstupu, když je v parametru Operace spojení zadána JOIN_ONE_TO_MANY.“

    Odpověď

    V PostGISu můžete provést prostorový průsečík a získat seznam všech států nebo měst a PSČ že se protínají, což by vrátilo více PSČ, kde se protíná více států, a pro každé město, které protínalo stejné PSČ, uvidíte také tento výsledek.

    Komentáře

    Odpověď

    V Pensylvánii se hranice pošty nevyrovnávají s hranicemi měst. V některých městech může být doručeno několik pošt. Když jsme prováděli 911 adresování, některá města požádala PO o změnu nae k názvu městyse jim PO umožnila to udělat s podmínkou, že nadále používali staré poštovní směrovací číslo pošty. Mnoho lidí to udělalo. Z těchto odkazů můžete vidět, že pro několik měst se používá stejné poštovní směrovací číslo. https://suburbanstats.org/zip-codes/pennsylvania/thornhurst https://suburbanstats.org/zip-codes/pennsylvania/scott-twp V zásadě bude použití „Anytown“ se správným PSČ fungovat, protože jejich třídicí počítače budou číst zip nejprve kód.

    Můžete také narazit na PO, které mají pouze PO boxy a nedělají místní doručení, takže pro vaši mapu neexistuje mnohoúhelník. Tyto objednávky jsou obvykle malé.

    Napsat komentář

    Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *