Annak meghatározása, hogy melyik amerikai irányítószámok térképeznek több államot vagy egynél több várost?

Irányítószám-listát használok, és kíváncsi vagyok, hogy hány (vagy melyik) irányítószám tartozik egynél több amerikai államhoz vagy Egyesült Államokhoz város?

Például tudom, hogy az irányítószám 42223 az Egyesült Államok hadseregének, Fort Campbellnek rendeli el, amely a KY-TN államvonalon terül el. Furcsa módon csak a google API visszaadja TN az adott zip-nek megfelelő állapotot.

Megjegyzések

  • Hogyan definiálja a ” város ” és ” irányítószám “?

Válasz

13 több államból álló amerikai népszámlálási irányítószám táblázati terület (ZCTA) létezik: 02861, 42223, 59221, 63673, 71749, 73949, 81137, 84536, 86044, 86515, 88063, 89439 & 97635.

Amint mások említették, ott néhány különböző módja annak, hogy kitaláljuk az irányítószám által lefedett területet, de a ZCTA-k a legegyszerűbbek, és nly hivatalos verzió, amiről tudom.

Tehát a 42223-as példája valóban átmegy egy államhatáron, , de úgy tűnik, hogy valójában Maryland és Virginia között van. hogy Kentucky és Tennessee között.

Itt van a teljes lista állapotokkal:

 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 

Itt állítottam elő (Pyandában lévő Pandákkal):

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) 

Szerkesztés : Úgy tűnik, hogy a népszámlálásnak két különböző kétjegyű kódja van az államok számára. Mindkettő az állam ábécé szerinti sorrendje alapján van hozzárendelve, de úgy tűnik, hogy közvetlenül az 1-51 közötti számokat alkalmazza (50 állapot + DC), míg a a másik kihagy néhány számot . Az elsőt használtam, míg a másodikat kellett volna használnom, ezért az általam felsorolt állapotnevek tévesek voltak. Frissítettem a kód és az eredmények a megfelelő listával.

Szerkesztés : az új állapot-hozzárendelést az OpenCongress API erősítette meg: https://gist.github.com/gabrielgrant/89f883d093e2abf129ad

Megjegyzések

  • Nagyon köszönöm, hogy elkapta ezt a @JesseCrocker – Úgy tűnik, a népszámlálás (zavaróan) két különböző kétjegyű kódolással rendelkezik az állapotokhoz. Mindkettő a ‘ állapot ábécésorrendje alapján van hozzárendelve, de úgy tűnik, hogy az 1-51 közötti számokat közvetlenül alkalmazza (50 állapot + DC), míg a másik kihagy néhány számot . Az elsőt használtam, de a másodikat kellett volna, tehát az általam felsorolt államnevek tévesek voltak (bár a ZCTA-k jók voltak).

helyes listával javítottam ki a kódot és az eredményeket.

  • A FIPS kódok hiányosságait illetően a kihagyott számokat az 1970-es években a külterületekre tartották fenn. (Amerikai Szamoa, Canal Zone, Guam, Puerto Rico és Virgin-szigetek), de végül nem ‘ t használták rájuk. hu.wikipedia.org/wiki/…
  • Don ‘ ne felejtsd el az 57717 irányítószámot, amely három államra, megyére és több városra terjed ki: 57717 Aurora, SD 57717 Butte, SD 57717 Carter, MT 57717 Crook, WY 57717 Harding, SD 57717 Lawrence, SD
  • Ez a felsorolás még ‘ még közel sem teljes. Nézze meg a válaszomat sokkal jobb közelítés érdekében. gis.stackexchange.com/a/223445/6052
  • Ez ‘ páratlan. A Google Maps azt mutatja, hogy a 02861 szó szerint az MA és az RI közötti határ részét képezi, és a teljes irányítószámot szilárdan az RI google.com/ maps / place / Pawtucket, + RI + 02861 / …
  • Válasz

    Ezt valóban nem lehet megmondani; mivel nincs egy az USPS által definiált ZipCode határforma. Az irányítószámokat a leszállított utcák határoló doboza határozza meg egy adott disztribúciós központ fuvarozói számára.

    Tehát meg kell vennie az USPS AIS adatait, és a ZipCodes segítségével kell kibontania az adott posta által szállított utcákat, majd csatlakozzon ezekhez az utcarácsokhoz. az összes kereskedelmi forgalmazó (Nokia / TomTom) létrehozza a Psuedo alakzatot, amelyet a postai határok megjelenítésére használ.

    Ez a pontatlan folyamat az oka annak, hogy az USPS nem szolgáltat téradatokat.

    Megjegyzések

    Válasz

    Az Egyesült Államok Népszámlálási Irodája a bennük található címek alapján közelítő határokat von le az irányítószámokról, ZIP néven. Kódtáblázási területek (ZCTA-k).

    Ők kapcsolati fájlokat tesznek közzé , amelyek leírják, hogy a ZCTA-k hogyan térképeznek fel más földrajzi területekre. Ha megvizsgálja a ZCTA to Place kapcsolati fájlt, láthatja, hogyan térképeznek a városokhoz. Arra következtethet, hogyan térképeznek állapotokat a ZCTA és a megyék kapcsolatfájlból.

    A kapcsolati fájlok népszámlálási földrajzi azonosítókat használnak, így Ön ” Szeretnék megragadni egy közlönyfájlt , amely segít átalakítani a numerikus azonosítókat azokra a helyekre vagy megyékre, amelyekre számíthat.

    Mint más A válaszok szerint az irányítószámok helyekhez való hozzárendelése valószínűleg hozzávetőleges, de jó szerencsém volt a népszámlálás adatfájljaihoz.

    Válasz

    2016 TIGER adatok a PostGIS segítségével

    Különleges figyelmeztetésként a ZCTA adatai nem USPS irányítószámok. Ez a hozzávetőleges értéke. Az USPS irányítószámok valóban szörnyűek, és nem hasznosak, csak a közelítéshez. Mindenki, beleértve az összes kormányzati szervezetet, kivéve az USPS-t, és (a ZCTA elkészítéséről szóló népszámlálás) teljesen figyelmen kívül hagyja őket. Ha az USPS fel akarna nőni egy kicsit csak áttérnek a legújabb ZCTA-ra és hiteles térinformatikai sokszögeket biztosítanak.

    Ezután … Itt lekérdezzük a kereszteződéseket TIGER State és TIGER ZCTA adatkészletek. Megjegyzés: az államokat a teljes ZCTA terület 1% -ával minősítjük. Ha a ZCTA területének 1% -a nincs az államban, akkor feltételezzük, hogy ez egy kerekítési hiba, vagy ha valaki kövéren ujjong valamit a népszámláláskor. Nézze meg az 56168 vagy akár 83832 irányítószámot, amelyet ezzel a hozzáadott szelektivitással metszünk.

    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; 

    Itt van az újracsomag

     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) 

    Mindezeket képesnek kell lennie a helyszínen ellenőrizni a Google Térképen. Azonban A Google Maps szintén nem mérvadó.

    Válasz

    Az 1994. évi népszámlálási dokumentumban említett államfedések

    1994 júniusában az Egyesült Államok Népszámlálási Irodájának következő webhelye szerint 153 irányítószám van, amely átlépi az államhatárokat.

    Amint azt korábban említettük, van néhány irányítószám, amely az állami vonalakon keresztül szállít, és van néhány ZIP / szektor, amelyek keresztezik a megyei vonalakat. 153 irányítószám van egynél több államban. Több mint 9 megyében 9000 irányítószám van. 11 311 (összesen 857 400) ZIP / szektor volt amelyek spl voltak megyénként. Valamennyi államnak volt néhány szektora, Virginia, Michigan és Ohio esetében különösen nagyobb az adag. A vidéki útvonalak a várakozásoknak megfelelően (viszonylag) a megosztott szektorok oroszlánrészét tartalmazták. A többi eset a legtöbb esetben az alacsonyabb (a postafiókok számára fenntartott) és a 99. szektorban (a postamestereknek és az üzleti vállalkozásoknak van fenntartva) postai visszaküldés). Ezen kiválasztott esetekben előfordulhat nem szabványos megyei kódkiosztás. Ezeket később kell megvizsgálnunk.

    Válasz

    Az ArcGIS segítségével a térbeli összekapcsolás eszközzel (vagy egy szkriptben) megtudhatja, hogy mely irányítószám-poligonok keresztezik egynél több állapot-sokszöget. A kimeneti jellemzőosztályban lesz egy Join_Count mező, amely több állapotot is megjelöl. Hasonló dolgot tehet a cipzárakkal és a városokkal is. Valószínűleg hamis pozitívak lesznek, ahol a cipzárak akaratlanul többször átfedésben vannak a határ pontatlansága / hiánya vagy Megteheti a cipzárak negatív -100 m-es pufferjét a térbeli illesztés előtt és nézze meg, mit csinál ez.

    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/
    “Két új mező, a Join_Count és a TARGET_FID, mindig hozzáadódik a kimeneti jellemző osztályhoz. A Join_Count azt jelzi, hogy hány csatlakozási szolgáltatás felel meg az egyes céltulajdonságoknak (TARGET_FID). Egy másik új mező, a JOIN_FID, hozzáadódik a kimenethez, amikor a JOIN_ONE_TO_MANY meg van adva az Join Operation paraméterben.”

    Válasz

    A PostGIS-ben térbeli kereszteződést végezhet, és visszakaphatja az összes állam vagy város listáját és az irányítószámokat hogy keresztezik egymást, ami több irányítószámot ad vissza, ahol több állam metszik egymást, és minden város esetében, amely metszi ugyanazt az irányítószámot, látni fogja ezt az eredményt is.

    Megjegyzések

    Válasz

    Pennsylvaniában a posta határai nem igazodnak az önkormányzati határokhoz. Egyes településeken több postahivatal is eljuthat hozzájuk. Amikor 911-es címzést végeztünk, néhány település arra kérte a PO-t, hogy változtassa meg a nevét a település nevéhez a PO engedélyezte nekik ezt azzal a feltétellel, hogy továbbra is a régi Post Office irányítószámot használták. Sokan ezt tették. Ezekből a linkekből láthatja, hogy ugyanaz az irányítószám több városban is használatos. https://suburbanstats.org/zip-codes/pennsylvania/thornhurst https://suburbanstats.org/zip-codes/pennsylvania/scott-twp Alapvetően az “Anytown” használata a megfelelő irányítószámmal működik, mert a válogató számítógépeik zipet olvasnak kódoljon először.

    Előfordulhat, hogy belefut olyan PO-kba is, amelyek csak PO dobozokkal rendelkeznek, és nem végeznek helyi kézbesítést, így nincs sokszög a térképéhez. Ezek a PO általában kicsi.

    Vélemény, hozzászólás?

    Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük