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.
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
- Je něco přesné? Co je pravda? Spousta Byly vytvořeny mezní vrstvy zipu, které vzhledem k jeho neznámým požadavkům mohou nebo nemusí sloužit účelu této konkrétní analýzy. Hranice zipu bez Esri – arcgis.com/home/item.html?id=8d2012a2016e484dafaac0451f9aea24 Viz také gis .stackexchange.com / questions / 2682 / …
- Vzhledem k tomu, ale musíte také pochopit, co děláte, důsledky údajů, které používáte.
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.
- 2016 TIGER ZCTA 877 MB dat tabulky.
- 33 144 ZCTA
- celkem 52 669 641 bodů,
- Státy 2016 TIGER 15 MB dat tabulky.
- 56 „států“
- celkem 912 464 bodů
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é.