回答:
13の複数の州の米国国勢調査の郵便番号集計エリア(ZCTA)があります:02861、42223、59221、63673、71749、73949、81137、84536、86044、86515、88063、89439&97635
他の人が述べたように、郵便番号の対象地域を把握する方法はいくつかありますが、ZCTAが最も簡単で、私が知っている唯一の公式バージョンです。
42223の例は州の境界線にまたがっていますが、実際にはメリーランド州とバージニア州の間にあるように見えます。ケンタッキーとテネシーの間。
状態の完全なリストは次のとおりです。
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
これを生成する方法は次のとおりです(PythonのPandaを使用)。
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)
編集:国勢調査は、州のための2つの異なる2桁のコーディングを持っているようです。両方とも州のアルファベット順に基づいて割り当てられた番号ですが、一方は1〜51(50州+ DC)から直接番号を適用し、もう一方はいくつかの番号をスキップします。私は最初のものを使用していましたが、2番目のものを使用すべきだったので、リストした州名は間違っていました。コードと結果を正しいリストで更新しました。
編集:OpenCongress APIによって確認された新しい状態マッピング:https ://gist.github.com/gabrielgrant/89f883d093e2abf129ad
これを伝える方法は本当にありません。そこ以来ではありません USPSによって定義される郵便番号の境界形状。ジップコードは、特定の配信センタから通信事業者に配信通りの境界ボックスによって定義されます。
したがって、USPS AISデータを取得し、指定された郵便局から配達された通りをZipCodesで抽出し、これらを通りグリッドに結合する必要があります。これは、すべての商業ベンダー(Nokia / TomTom)が郵便境界を表示するために使用するPsuedo形状を作成するために行うことです。
この不正確なプロセスは、USPSは、空間データを提供していない理由です。
米国国勢調査局は、郵便番号に含まれる住所に基づいて、ZIP Code Tabulation Areas(ZCTA)と呼ばれる郵便番号のおおよその境界を導き出します。
彼らは、関係ファイルパブリッシュそのZCTAsは、様々な他の地域にマッピングする方法について説明します。ZCTAからPlaceへの関係ファイルを調べると、それらが都市や町にどのようにマップされているかを確認できます。ZCTAから郡への関係ファイルから状態にマップする方法を推測できます。
リレーションシップファイルは国勢調査の地理IDを使用するため、地名ファイルを取得して、数値IDを目的の場所または郡名に変換できるようにします。
他の回答が述べているように、場所への郵便番号のマッピングはおおよそのものである可能性が高いですが、私は国勢調査のデータファイルで幸運に恵まれました。
特別な注意事項として、ZCTAデータはUSPS郵便番号ではありません。それは近似です。USPS郵便番号は本当に恐ろしいものであり、おおよその場合を除いて有用ではありません。USPS以外のすべての政府機関を含む全員、および(ZCTAを作成するためのセンサス)は、それらを完全に無視します。USPSを少し成長させたい場合は、最新のZCTAに変換し、信頼できるGISポリゴンを提供するだけでした。
次に...ここでは、TIGER状態とTIGER ZCTAデータセット間の交差点を照会します。ZCTAの総面積の1%で州を認定しています。ZCTAエリアの1%が状態にない場合、丸め誤差、または国勢調査で何かを指で太っている人だと想定します。この追加の選択性でプルーニングしている郵便番号を確認する56168
か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;
ここに結果があります
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)
これらすべてをGoogleマップでスポットチェックできるはずです。ただし、Googleマップも信頼できません。
1994年6月、次の米国国勢調査局のサイトによると、州の境界を越える153の郵便番号があります。
前述のように、州の境界線を越えて配信される郵便番号がいくつかあり、郡の境界線を越える郵便番号/セクターがいくつかあります。複数の州に153の郵便番号があります。複数の郡に9,000の郵便番号があります。郡ごとに分割されたZIP /セクターは11,331(合計857,400のうち)でした。すべての州にいくつかの分割セクターがあり、バージニア州、ミシガン州、およびオハイオ州では特に投与量が多くなっています。予想どおり、地方のルートセクターには、(比較的)分割セクターの大部分が含まれていました。その他のケースのほとんどは、低いセクターの範囲(私書箱用に予約済み)およびセクター99(ポストマスターおよびビジネス用メールの返品用に予約済み)にあります。これらの選択されたケースに対して、非標準の郡コードの割り当てが発生する必要があります。これらについては後日さらに調査する必要があります。
ArcGISでは、空間結合ツール(またはスクリプト内)を使用して、どの郵便番号のポリゴンが複数の州のポリゴンと交差しているかを見つけることができます。出力フィーチャクラスには、複数の状態を示すJoin_Countフィールドがあります。zipや都市でも同様のことができます。国境の不正確さ/欠如または解決のために、ジッパーが意図せずに複数重複する場合、誤検知が発生する可能性があります。場合によっては、空間結合の前にzipのマイナス-100mのバッファーを実行し、それが何をするかを確認できます。
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/「Join_Count
とTARGET_FIDの2つの新しいフィールドは常に出力フィーチャクラスに追加されます。Join_Countは結合の数を示しますフィーチャは各ターゲットフィーチャ(TARGET_FID)と一致します。JOIN_ONE_TO_MANYが結合操作パラメーターで指定されている場合、別の新しいフィールドJOIN_FIDが出力に追加されます。
PostGISで空間交差を行い、すべての州または市とそれらが交差する郵便番号のリストを取得できます。これにより、複数の州が交差する複数の郵便番号が返され、同じ郵便番号と交差する都市ごとに表示されますその結果も同様です。
ペンシルバニア州では、郵便局の境界は市の境界と一致しません。いくつかのタウンシップには、複数の郵便局が配達されている場合があります。911アドレス指定を行っていたときに、一部のタウンシップはPOにnaeをタウンシップ名に変更するように依頼しました。多くの人がこれをやった。これらのリンクから、複数の町で同じ郵便番号が使用されていることがわかります。https://suburbanstats.org/zip-codes/pennsylvania/thornhurst https://suburbanstats.org/zip-codes/pennsylvania/scott-twp基本的に、正しい郵便番号で「Anytown」を使用すると、コンピューターの読み取りが機能するため機能します最初に郵便番号。
また、POボックスのみを持ち、ローカル配信を行わないため、マップにポリゴンがないPOを実行することもできます。これらのPOは通常小さいです。