この記事では、これからQGISを使っていく必要のある筆者が、初心者ながらに試行錯誤しながら見つけた活用方法や問題解決方法などを備忘録的に共有するためのものです!
内容に間違いや、「もっとこうしたらいいのに」などがあったら積極的にご指摘いただけますと喜びます!
QGISに関する記事には↓こういうものもあります。!
Windows版QGIS3.22.10を使用しています。
OSやバージョンによっては手順が異なる場合があります。
QGISの使い方についてもっと詳しく知りたい方はこちらを参照してみて下さい。
実際の業務におけるQGISの活用方法についてかなり具体的に紹介されています!
防災や都市計画など様々な分野で活用できる書籍だと感じました。(少しお値段高めです、、)
住所データ
今回は住所のテキストデータ(CSV)をQGISに取り込み、地図上にポイントとして表示させる方法を解説します。
様々なデータを扱っているときに、住所をどのように処理するか悩んだ経験はありませんか?
北海道〇〇市〇〇区、、、のような文字列には位置情報は入っていません。
住所を地図アプリ等に入力すれば地図上で表示してくれますし、地図上に表示させたい住所が複数ある場合でもGoogle mapでCSVを読み込めば正確に位置をピンで示してくれます。
しかし、いくらGoogleでもQGISのように高度なベクタ処理を行うことはできません。
複数箇所同士を結ぶ最短経路を求めたり、到達圏を求める際にはQGISが便利です。
QGISは緯度経度などの座標情報が無いと地図上にポイントとして表示させることができません。
つまり、北海道〇〇市〇〇区、、、のような住所の情報だけではQGISに取り込むことができないのです。
そこで、文字列である住所を緯度経度情報に変換し、QGISで地図上に表示させる方法を画像付きで解説していきます!
意外とやり方はシンプルです!

住所CSVデータをQGISに取り込み、地図上に表示させる
CSVファイルの準備
まずは住所データを準備しましょう。
今回はExcelを使ってCSVを準備します。
QGIS上に表示させたい住所データを確認しましょう。
下の画像は全国の県庁の住所を適当に並べたものです。
このように市区町村、番地などの住所をそれぞれのセルにまとめて、縦に並べておく必要があります。
(都道府県は無くても大丈夫です。)
これらが揃っていない場合はまず住所を整理しましょう。

都道府県や市区町村、番地などが1つにまとまっていない場合は結合を行って1つのセルにまとめましょう。
文字列の結合は、写真のように結合したいセルを参照してそれらを&で繋げばOKです。


住所のデータを整えたら、この一連の住所が書かれている行が左から数えて何行目なのか覚えておきます。(後で使います)
下の画像の場合だったら3行目です。

これで下準備は完了したので、Excelファイルで作業を行っていた方はこのファイルをCSVとして出力しておきます。(最初からCSVで作業していた方は飛ばしてOKです!)
ファイル→名前を付けて保存と進み、ファイル形式でCSVを選択します。

保存場所は自分が分かりやすい場所にしておいた方が楽です。

「アドレスマッチング」を利用する
さあ、それでは今回の主役の「アドレスマッチング」の登場です。
この「アドレスマッチング」(正式名称はCSVアドレスマッチングサービス)というサービスは、東京大学空間情報科学研究センターから提供されおり、位置参照技術を用いたサービスになっています。
CSV形式の住所データを緯度経度情報に変換できるという優れものです!
実際に使用するサイトはこちら(https://geocode.csis.u-tokyo.ac.jp/geocode-cgi/geocode.cgi?action=start)になります。
少し頼りなさそうな印象ですが(ごめんなさい)こいつ相当優秀です。どういう仕組みなのかは知りません。

まず、「対象範囲」をプルダウンから選択します。
QGISの座標系の選択に近いです。
一般的な利用では、一番上の全国街区レベル(経緯度・世界測地系)で全く問題ありません。
サイト上の「?」をクリックすると、詳細な説明が見られるので一般的な利用方法とは異なる可能性がある場合は参照してみてください。

次に、「住所を含むカラム番号」ですが、これが先ほど覚えてくださいと言ったやつです。
住所が左から何行目に書いてあるのか、数字を入力してください。
先ほどのExcelの画像の場合は「3」を入力します。
忘れちゃった場合は再度確認してください。ここをミスると失敗します。

次に「入力ファイルの漢字コード」と「出力ファイルの漢字コード」をプルダウンから選択します。
こちらは基本的にデフォルトの「自動設定」で問題ありません。

次の「マッチングオプション」ですが、QGISなどの多くのGISソフトでは、X座標が経度でY座標が緯度を表すことが多いですが、逆で出力したい場合は「x,yを反転」にチェックを入れてください。
QGISを使用する場合は選択する必要はありません。
また、「部分一致」ですがデフォルトの「探す」にしておいた方がマッチング率は上がります。

最後に「変換したいファイル名」で、緯度経度情報が欲しいCSVファイル(先ほど下準備したcsvファイル)を選択します。
「ファイルを選択」の右側にファイル名(.csv)が表示されていればOKです。

「送信」をクリックし、しばらくすると自動的に緯度経度情報が追加されたCSVファイルがダウンロードされます。
QGISに取り込む前に、正しくマッチングできたかどうか一度ダウンロードしたCSVを開いて確認してみましょう!
下の画像の右側の「fX」「fY」の列が含まれていたら成功です!!
「iConf」という列は変換の精度を表しており、5以上だとほぼ正確に変換できたということになります。
「iLvl」はどのレベルまで住所が変換されたかを示しており、これは文字列で用意した住所の細かさ(市区町村レベル、街区レベル、建物レベルなど)に依存するのであまり気にしなくても大丈夫です。


緯度経度情報のあるCSVをQGISに取り込む
では、緯度経度情報を持つCSVをQGISで開いてみましょう。
QGIS上部メニューバーの「レイヤ」から「レイヤを追加」、「CSVテキストレイヤを追加」を選択します。

そして、ファイル名の右側にある「・・・」をクリックし、QGISで開きたいCSVファイルを選択して下さい。
先ほどアドレスマッチングで自動的にダウンロードされたファイルです。

定義や設定は基本的にいじる必要はありませんが、一点だけ座標の確認を実施して下さい。
「ジオメトリ定義」の「X座標」「Y座標」のところがそれぞれ「fX」「fY」が選択されているか確認して下さい。
QGISでは基本的に、X座標が経度、Y座標が緯度を表しているので、下部サンプルデータを参考に正しく設定できていることを確認して下さい。
最後に「追加」をクリックして操作は完了です!!

このようにQGISの地図上に都道府県庁の位置が表示されていれば成功です。
これで住所の文字列から緯度経度情報に変換し、QGISに取り込むことができました。

属性テーブルを開いてみると、このようにCSVの情報がそのまま記録されていることがわかります。

まとめ
この記事では、住所のデータをQGISに取り込む方法について解説しました!
CSV形式の住所データを用意し、「アドレスマッチング」というサービスを利用して住所を緯度経度に変換することで簡単にQGISに取り込むことができます。
このサイトでは、QGIS以外に「ヒートショックについて」「住宅の断熱について」なども解説しているので、良かったらこちらもご覧下さい。
参考文献
「アドレスマッチングサービス」のリンクです。
https://geocode.csis.u-tokyo.ac.jp/home/csv-admatch/
https://geocode.csis.u-tokyo.ac.jp/geocode-cgi/geocode.cgi?action=start
↑2番目のリンクは直接パラメータ設定のページに飛べます!
コメント