第3章 空間データの変換と管理 2.ジオコーディング 2013年5月31日 第3章 空間データの変換と管理 2.ジオコーディング 相良毅 sagara@csis.u-Tokyo.ac.jp
ここで学ぶこと 実社会の空間データには、場所が経緯度ではなく住所で書 かれているものも多い。たとえば犯罪発生現場のGISで解析 しようと思えば、まず事件簿に記載されている住所を見て、 地図を調べて該当する地点の経緯度を入力するという作業 が必要になる。この住所から経緯度に変換する処理はジオ コーディングと呼ばれている。 ここでは、ジオコーディングについて以下の事項を学ぶ。 ジオコーディングの基本と高度な処理 逆ジオコーディングの基本 ジオコーディングの用語 利用可能なジオコーダ、位置参照情報 高度なジオコーディング処理 ジオコーディング利用上の注意
ジオコーディング(geocoding)の基本 千葉県柏市柏の葉五丁目1番5号 千葉県柏市柏六丁目9番7号 139.97854,35.8661283 千葉県柏市柏六丁目9番8号 139.97858,35.8662631 千葉県柏市柏六丁目9番9号 139.97864,35.8663855 千葉県柏市柏の葉 139.942879,35.891247 千葉県柏市柏の葉一丁目 139.942879,35.891247 千葉県柏市柏の葉一丁目10番 139.942039,35.891057 千葉県柏市柏の葉一丁目1番 139.943993,35.891184 千葉県柏市柏の葉一丁目2番 139.943491,35.891635 千葉県柏市柏の葉一丁目3番 139.943193,35.892486 千葉県柏市柏の葉一丁目4番 139.942071,35.892151 千葉県柏市柏の葉一丁目5番 139.942374,35.891787 千葉県柏市柏の葉一丁目6番 139.942694,35.891534 千葉県柏市柏の葉一丁目7番 139.942872,35.891208 千葉県柏市柏の葉一丁目8番 139.942787,35.890794 千葉県柏市柏の葉一丁目9番 139.942989,35.890475 千葉県柏市柏の葉五丁目 139.936938,35.902105 千葉県柏市柏の葉五丁目1番 139.935456,35.901708 千葉県柏市柏の葉五丁目1番地 139.931938,35.900455 千葉県柏市柏の葉五丁目2番 139.935382,35.905139 千葉県柏市柏の葉五丁目3番 139.938779,35.904419 千葉県柏市柏の葉五丁目4番 139.940344,35.903356 千葉県柏市柏の葉三丁目 139.936080,35.891753 住所表記 住所と経緯度の対応表(位置参照情報) 経度:139.935456 緯度:35.901708 処理結果 最長一致検索 ジオコーディングは、住所を経緯度に変換する処理と考えて良い。ジオコーディングの基本処理は、住所と経緯度の対応表である「位置参照情報」から、与えられた住所にもっとも良く一致するレコードを見つけ出し、その経緯度を返すという単純な検索処理である。
高度なジオコーディング 柏の葉五丁目1番 住所表記 住所と経緯度の対応表(位置参照情報) 経度:139.935456 千葉県柏市柏六丁目9番7号 139.97854,35.8661283 千葉県柏市柏六丁目9番8号 139.97858,35.8662631 千葉県柏市柏六丁目9番9号 139.97864,35.8663855 千葉県柏市柏の葉 139.942879,35.891247 千葉県柏市柏の葉一丁目 139.942879,35.891247 千葉県柏市柏の葉一丁目10番 139.942039,35.891057 千葉県柏市柏の葉一丁目1番 139.943993,35.891184 千葉県柏市柏の葉一丁目2番 139.943491,35.891635 千葉県柏市柏の葉一丁目3番 139.943193,35.892486 千葉県柏市柏の葉一丁目4番 139.942071,35.892151 千葉県柏市柏の葉一丁目5番 139.942374,35.891787 千葉県柏市柏の葉一丁目6番 139.942694,35.891534 千葉県柏市柏の葉一丁目7番 139.942872,35.891208 千葉県柏市柏の葉一丁目8番 139.942787,35.890794 千葉県柏市柏の葉一丁目9番 139.942989,35.890475 千葉県柏市柏の葉五丁目 139.936938,35.902105 千葉県柏市柏の葉五丁目1番 139.935456,35.901708 千葉県柏市柏の葉五丁目1番地 139.931938,35.900455 千葉県柏市柏の葉五丁目2番 139.935382,35.905139 千葉県柏市柏の葉五丁目3番 139.938779,35.904419 千葉県柏市柏の葉五丁目4番 139.940344,35.903356 千葉県柏市柏の葉三丁目 139.936080,35.891753 住所表記 住所と経緯度の対応表(位置参照情報) 経度:139.935456 緯度:35.901708 処理結果 県、市を省略 柏の葉5丁目… 文字種が違う 柏の葉5-1-5 省略表記 途中からでも検索できるインデックス 文字種や異体字に依存しない内部表現 省略表記を解析しながら文字列比較 「龍ヶ崎市」と「竜ケ崎市」、「市ヶ谷」と「市谷」、「虻田町」と「虹田町」、どこまで同じと考える? 五丁目1番と五丁目1番地の識別 実社会で利用されている住所の表記には、都道府県・市区町村が省略されていたり、漢数字とアラビア数字が混在していたり、「龍・竜」「籠・篭」といった異体字が利用されていたりといった「表記揺れ」が含まれている。実用的なジオコーディング処理には、これらの表記揺れをできる限り吸収し、どのような表記を与えられても安定して対応する経緯度を返せることが求められる。
逆ジオコーディング 検索地点 経度:139.94023 緯度:35.903544 処理結果 千葉県柏市柏の葉五丁目4番 逆ジオコーディング、もしくはリバースジオコーディングとは、ジオコーディングの逆処理で、一般に経緯度から住所を検索する処理を指す。 経緯度で指定された地点を含む最小領域を空間演算によって求めることで実現できる。図では、星で表された地点を含む街区領域(オレンジ色の多角形)を求め、その領域に与えられた住所である「千葉県柏市柏の葉柏の葉五丁目4番」を返している。 実際には、街区レベルの領域形状データを整備するのは困難なため、より単純な代替手段として最近傍探索が用いられることが多い。その場合、検索地点に最も近い住所代表点を検索し、その点に与えられた住所を返す。しかし領域形状が極端に細長い場合や、大きな領域と小さな領域が混在する場合に正しい結果が得られないことがある。
ジオコーディングの用語 ジオコーディング(geocoding) ジオコーダ(geocoder) 広義には、間接的に位置を表す情報(住所など)から直接的に位置を 表す情報(経緯度など)への変換処理全般を指す 一般に住所を経緯度に変換する処理を指すが、広義のジオコーディ ングと区別したい場合はアドレスジオコーディングと言う 郵便番号から経緯度、住所から地図データ中のオブジェクト番号への 変換もジオコーディングの一種 ジオコーダ(geocoder) ジオコーディングを行うシステム 逆ジオコーディング(reverse geocoding) ジオコーディングの逆処理、一般に経緯度から住所を検索する処理 位置参照情報(location reference information) ジオコーダが利用する住所と経緯度の対応表 名寄せ(aggregation) 表記の違いを吸収し、同じ意味の表記を同値とみなす処理 ジオコーディングでは以下の用語が利用される。「ジオコーディング」は一般に住所を経緯度に変換する処理を指す。しかし広義には間接的に位置を表す情報から直接的に位置を表す情報への変換処理全般をジオコーディングと呼ぶ。たとえば郵便番号から経緯度への変換を行ったり、住所から地図データ中の特定の位置を持つオブジェクト番号への変換もジオコーディングの一種である。広義のジオコーディングと区別したい場合、住所から経緯度への変換は「アドレスジオコーディング」と呼ぶことがある。 「ジオコーダ」は、ジオコーディングを行うプログラムまたはシステムのことである。「位置参照情報」はジオコーダがジオコーディングのために利用する住所と経緯度の対応表、またはデータベースである。「名寄せ」とは文字列の表記揺れを吸収し、人間が見て意味的に同じものを同じ値とみなす処理全般を指す。ジオコーディングに関係する文脈では、住所の表記揺れを吸収する処理のことを指す。
利用可能なジオコーダ 無償利用が可能なジオコーダ Google geocoding API CSISジオコーダ 国土地理院マップシート URL: https://developers.google.com/maps/documentation/geocoding/ 逆ジオコーディングも可能 1日2,500回の制限あり 世界中の住所をジオコーディング可能 プログラム内から呼び出して利用する CSISジオコーダ URL: http://newspat.csis.u-tokyo.ac.jp/geocode/ 利用制限なし プログラム内から呼び出して利用するか、CSV形式のデータを一括ジオ コーディングする 国土地理院マップシート URL: http://renkei2.gsi.go.jp/renkei/130326mapsh_gijutu/index.htm Excelデータに含まれる住所を地図上で閲覧する KML形式での出力機能など ジオコーディングを行いたい場合、有償から無償までさまざまなジオコーダが存在するが、無償で利用できるジオコーダを3つ紹介する。Google geocoding APIはジオコーダをプログラム内から呼び出して使えるもので、ジオコーディングを必要とする情報システムを開発する場合に利用する。世界中の住所を詳細なレベルまで高速にジオコーディングできるが、無償では1日2,500回までという利用制限の他、Google地図を同時に表示することといった条件を満たす必要がある。 CSISジオコーダは、Google geocoding APIと同じようにプログラム内から呼び出して利用する「シンプルジオコーディング実験」と、CSV表形式データに含まれる住所カラムを一括して経緯度に変換する「CSVアドレスマッチングサービス」の2つを含む。日本国内の住所しか処理できず、ほとんどの地域では街区レベルまでという制限があるが、プログラムを書かずにジオコーディングを行うことができる。 国土地理院マップシートはExcelデータに含まれる住所を経緯度に変換したり、地図上で閲覧するといった機能をExcelマクロで実現している。Excel形式の住所データから地図を作りたいという場合に使いやすい。
利用可能な位置参照情報 無償利用が可能な位置参照情報 地図データ等から独自に作成することも重要 街区レベル位置参照情報(国交省) URL: http://nlftp.mlit.go.jp/isj/ 街区レベル(○丁目△番、または□番地)まで 全国の都市計画地域全域およびその周辺地域 電子国土基本図「住居表示住所」(国土地理院) URL: http://www.gsi.go.jp/kihonjohochousa/jukyo_jusho.html 住居表示レベル(○丁目△番×号)まで 都市計画地域の一部(整備範囲拡大中) 地図データ等から独自に作成することも重要 ジオコーダを独自に開発する場合、位置参照情報を入手する必要がある。街区レベル位置参照情報は無料で利用でき、申請等も不要である。住居表示住所も無料で利用できるが、ジオコーディング機能を他者に対して提供する場合には複製承認申請が必要となる。 より詳細な住所や、住所以外の地名に対応したいという場合には、地図データから表記と経緯度を算出すれば、独自の位置参照情報を作成することも検討する必要がある。
ジオコーディング利用上の注意 ジオコーディングの性能は位置参照情報とジオ コーダの性能で決まる 住所表記部分の切り出しは自動的には行えない 位置参照情報に載っていない住所は処理できない ジオコーダが対応できない表記揺れは処理できない 住所表記部分の切り出しは自動的には行えない 住所の前後に住所以外の文字列が含まれている場合 は、何らかの方法で事前に切り出しておく必要がある 既存のジオコーディングシステムを利用すると、一部の住所がジオコーディングできなかったり、予想外の経緯度が返ってきたりと、期待通りの結果が得られない場合がある。これは、位置参照情報にその住所が記載されていないか、ジオコーダが対応できないような表記揺れ(誤字や不要な記号が混入しているなど)が含まれているかのどちらかである。できる限り位置参照情報に記載されている通りの住所表記を用いることで、このような問題を避けることができる。 また、住所表記の前後に括弧記号など余計な文字が含まれている場合、ほとんどのジオコーダは住所表記部分の切り出し処理は行わないため、正しくジオコーディングできない。データを整備する際にこのような記号を除去するといったクリーニングも行っておく必要がある。
参考文献 Ratcliffe, Jerry H. (2001). "On the accuracy of TIGER-type geocoded address data in relation to cadastral and census areal units". International Journal of Geographic Information Sciences 15 (5) 相良毅,有川正俊,坂内正夫,分散位置参照サービ ス,情報処理学会論文誌 42(12), 2928-2940, 2001- 12-15