ノート
アウトライン
今日から始める!
アドレスマッチング
2007.1.18 (ver.1.0)
アドレスマッチングとは?
住所を緯度経度などの座標に変換する作業のことです。データを座標で管理しているGISを利用する際には習得すべき作業の一つと言えるでしょう…。
アドレスマッチングをするためには
座標取得には様々な方法が考えられますが、最も簡単なのは、Web上でのアドレスマッチングサービスを利用することでしょう。
東京大学空間情報科学研究センター(CSIS):「Geocording Tools&Utilities」 (相良先生提供)
http://pc035.tkl.iis.u-tokyo.ac.jp/~sagara/geocode/index.php
また、GoogleのGeocordingサイト(http://www.geocoding.jp/)では、住所や地図から緯度経度を取得可能ですので、そちらを利用することも考えられます。
実際にやってみよう
以降は、住所リストをGISデータ(シェープファイル形式)に変換する手順を説明します。
なお、アドレスマッチングには前述のCSISのサイトを、GISソフトにはESRI社のArcView9.1を利用しました。他には、MicroSoft Excelを利用しています。
まずはデータを用意しよう
Excelなどで住所のリストを作ります(ここでは徳島市の小学校リストをGISデータに変換することにしました)。
データが作成できたら、「csv(カンマ区切り)」形式で保存します。
実際に使ってみよう
東京大学空間情報科学研究センター(CSIS)にて提供されている「Geocording Tools&Utilities」のページを表示させます。
変換の時に…
対象範囲には「徳島県 街区レベル(緯度経度・世界測地系)」を選択しました。
住所を含むカラム番号は、先ほど作ったcsvファイルのなかの住所が記入されている列番号を指定します。
漢字コードについては、ここではシフトJISコードを選択しました。
出力ファイルのフォーマットには「csvフォーマット」を選択しました。
あとは、「変換したいファイル名」に、先ほどのcsvファイルを指定して送信ボタンを押します。
変換の時の注意点!
「対象範囲」について
対象が複数の県にまたがる場合には、「全国街区レベル」を選択します。また、CSVアドレスマッチングサービスでは、測地系として「世界測地系」と「日本測地系」、投影法として「経緯度」と「公共測量座標系」をサポートしています(2×2で4種類)。ここでどのパラメータを選択したか、しっかりメモしておく必要があります。個人的には、投影法には「経緯度」を選択するのがお勧めです。測地系は、メッシュデータなどと重ねあわせたい場合は「日本測地系」を、そうでなければ「世界測地系」を選ぶのが良いと思います。
漢字コードについて
だいたいの場合は「自動選択」で良いはずです。ただ、まれに結果が文字化けしている時があります(今回がそれでした)。その時は、漢字コードを指定する必要があります(だいたいの場合は「シフトJISコード」で良いはず…)。
出力ファイルのフォーマットについて
「shapeフォーマット」を選ぶと、シェープファイルとして保存できるのですぐにGIS上に表示することができます。ただし、後述のように変換したデータはエラーを含んでいる場合が多々あります。その調整をするためには、csvフォーマットのほうが大変都合が良いです。
CSVファイルの確認 (1)
送信されてきたcsvファイルを開いてみましょう。
文字化けしていないかどうか、データは全て入っているか…などをチェックしてください。
CSVファイルの確認 (2)
さらに、きちんどアドレスマッチングされたかどうかを確認する必要があります!
「iConf」「iLvl」の数字を確認します。基本的にはiConfが5、iLvlが7であれば大丈夫ですが、それ以外の場合にはさらにチェックする必要があります(数字の意味についての詳細は、http://pc035.tkl.iis.u-tokyo.ac.jp/~sagara/geocode/modules/csv-admatch0/index.php?id=6を参照してください)。
チェックには「LocName」を参照します。ここに書かれている住所は「変換後の住所」です。もし入力した住所と違っていれば、正しく変換されなかった、そして調整をする必要がある、ということになります。
データの調整 (1)
今回のデータでは、36校中19校がうまくアドレスマッチングされていませんでした。なお、アドレスマッチングされない例には以下のようなものが挙げられます
住所が途中までしか変換されていない (丁目や番地がないなど)
違う住所に変換されている (「大田町」なのに、「大杉町」になっているとか)
そもそも変換されていない (iConf、iLvlともに0になっている)
次ページから、修正手順について説明していきます。
データの修正方法
データの修正方法については2つの方法があります…
緯度経度を別の方法によって取得する
とりあえずGIS上に表示させてから、移動させる
今回は、1の「緯度経度を別の方法によって取得する」の方法でやってみます。
データの修正(1)
GoogleのGeocodingサイト(http://www.geocoding.jp/)を表示させます。
データの修正 (2)
変換したい住所を入力して「検索」ボタンを押すと、緯度経度(WGS84)が出力されます!
なお、変換時に選択した「世界測地系」とは厳密には異なるのですが、WGS84と世界測地系との違いほとんどないので、同じものと考えて良いでしょう(厳密にしたい方は、WGS84→世界測地系に変換する作業が必要です…)。
データの修正 (3)
変換したい住所を入力してもうまく表示されない場合もあります。特に地番表示の住所に多いです…。
その時は、地図をドラッグして変換したいポイントをクリックして、緯度経度を取得します。
データの修正 (4)
(2)、(3)によって取得された緯度経度を度単位でcsvファイルに入力します。「FX」フィールドが経度、「FY」フィールドが緯度です。
DBFファイルの作成 (1)
修正が終わったcsvファイルをDBFファイルとして保存します。
保存時には、文字が途中で切れないように表示させ、データの範囲を選択して下さい!
保存形式には「DBF 4(dBase IV)」を選択します。なお、保存の時に「この形式で保存しますか?」と聞かれますが、「はい」を選択して下さい。
DBFファイルの作成 (2)
保存後、緯度経度の入力されているセルの書式設定を変更する必要があります!
表示形式をタブをクリックして、「ユーザー定義」の「0.00」を選んで、さらに0を足して「0.0000000」くらいにして下さい。
最後にもう一度データの範囲を選択して、上書き保存してDBFデータの作成は終了です。
シェープファイルの作成 (1)
ArcViewを立ち上げ、「ツール」メニューから「XYデータの追加」を選びます。
シェープファイルの作成 (2)
先ほど作成したDBFファイルを読み込み、Xフィールドに「FX」、Yフィールドに「FY」を選択します。
さらに、「入力座標の空間参照」の編集ボタンをクリックして、選択ボタンをクリック、座標系を選択します。
座標系の定義について!
座標系を選択するわけですが、アドレスマッチングサービスで変換する時に「対象範囲」で選択した座標系と投影法を選択します!
今回は変換の時に「経緯度・世界測地系」を選択したので(思い出してください!)、ここでは「JGD 2000.prj」を選択します。
もちろん、もし他の測地系・投影法を選択したのであれば、それにあわせるように設定する必要があるわけです…。
シェープファイルの作成 (3)
表示できました…が、このままでは保存や分析ができません。シェープファイルにエクスポートする必要があります。
テーブルオブコンテンツ上のデータの部分で右クリックして、「データ>データのエクスポート」を選択して、任意の名前をつけてシェープファイルとして保存します。
シェープファイルの完成!
シェープファイルが完成しました!
注意点など…
最後に、アドレスマッチング時の注意点を列挙してみました…。
座標系や投影法の定義は慎重に、今どんな座標系・投影法で作成しているのかを頭に入れておいてください(他のシェープファイルとうまく重ならない場合は、ここの作業でミスしている可能性が極めて高いです)。
ボタン操作のみでアドレスマッチングはできません…。特にCSISのサービスで変換したあとのファイルはしっかりチェックして、ちゃんと変換されたか、どこまで変換されたかを確認してください。
Let’s enjoy
address matching!
nkomaki@atm.geo.tsukuba.ac.jp