表データを地図にしよう 〜QGISに緯度経度を含むデータを追加する方法〜
この記事でわかること
- 緯度経度などの座標値を元にポイントデータを作成する方法
- インポートしたデータをShapefileでエクスポートする手順
- CSVの文字化けの解消法や背景地図と重ならない場合の対処法
こんな人におすすめ
- 緯度経度の値を持つ表形式のデータをQGISの地図上に表示したい方
- CSVデータが文字化けしてしまった方
- CSVデータが正しい場所に表示されない方
はじめに
GISの処理をしていると、表形式のデータなどに緯度経度といった座標値が含まれているときに、その座標値の場所にポイントデータを作成したい場面があると思います。QGISでは、座標値をもとに簡単にポイントデータを発生させることができます。 この記事では、緯度経度といった座標値を元にポイントデータを作成し、そのデータをShapefileでエクスポートする手順を解説します。緯度経度を含むCSVデータのインポート方法
CSVデータの準備
座標値をもとにポイントデータを作成するには、その座標値をCSVデータとして整理しておく必要があります。今回は、「大阪府オープンデータカタログサイト」からダウンロードができる「大阪府内の保育施設一覧」のCSVデータを使用します。
ダウンロードしたCSVデータをExcelで確認すると、B列に緯度、C列に経度の値が格納されていることが確認できます。
このデータのように、緯度と経度などの座標値の列がそれぞれ入力されているようなCSVデータを用意しましょう。データが、.xlsx
といった拡張子のExcelデータの場合は、事前にCSVファイルに変換して保存する必要があります。その場合、Excel上で[名前をつけて保存]を選択し、ファイル形式を[CSV UTF-8 (コンマ区切り)(.csv)]としてください。
QGISでCSVをインポートする
QGISを起動し、メニューバーより[レイヤ]→[レイヤを追加]→[CSVテキストレイヤを追加]を選択します。
[CSVテキスト」のタブが選択された状態のデータソースマネージャが表示されます。さまざまな設定項目が表示されていますが、まずは[ファイル名]の[•••]ボタンよりインポートするCSVデータを選択します。
「CSVデータを選択します」という画面表示されるので、インポート対象のCSVデータを選択し[開く]をクリックしましょう。
すると、[サンプルデータ]の欄にファイル名で選択したCSVデータがサンプルとして表示されていることが確認できます。
サンプルデータが適切に表示されていることが確認できたら、[ジオメトリ定義]から[ポイント座標]が選択されていることを確認し、[X値」には[経度]の列「Y値]には[緯度]の列を選択します。
続いて、[ジオメトリのCRS]の欄からはこのデータのCRS(座標系)を選択します。[地球儀]ボタンをクリックすると、CRSを選択する画面が表示されるため、[フィルタ]に4326
と入力し、[あらかじめ定義された座標参照系(CRS)]から[WGS84(EPSG:4326)]を選択し[OK]をクリックしましょう。
ここまで設定が完了したら、最後に[追加]をクリックしましょう。
マップキャンバスにポイントデータが表示されました。
インポートしたデータの確認
インポートしたCSVデータがQGISに正しく表示されたら、次にデータが適切に追加できているか確認しましょう。
まずは、背景地図を追加して適切な位置にポイントデータが表示されているか確認します。ここでは、[地理院地図]を追加してみます。ブラウザパネルの[XYZ Tiles]から[地理院地図]をダブルクリックします。
マップキャンバスを確認すると、大阪のエリアにポイントデータが表示されており、CSVデータを適切にインポートできていることが確認できました。
合わせて、属性テーブルも確認してみましょう。レイヤを右クリックして、[属性テーブルを開く]を選択します。
属性テーブルも適切に表示されていることが確認できました。
CSVデータをShapefileとしてエクスポートする
QGISに追加したCSVデータは、簡単な可視化や軽い処理であれば、CSVのままでも特に問題なく動作するでしょう。しかし、空間的な解析を行う場合や大量のデータを扱う場合は、Shapefileなどのベクタ形式の方が効率的に処理ができるため、インポートしたCSVデータをベクタ形式のデータにエクスポートすることが重要です。
ここでは、Shapefileへのエクスポート手順を説明します。まずは、レイヤを右クリックして[エクスポート]→[新規ファイルに地物を保存]を選択します。
「名前をつけてベクタレイヤを保存」という画面が表示されます。ここで、エクスポートするファイルの設定をすることができます。
まず、[形式]欄からは出力するベクタデータのファイル形式を指定することができます。プルダウンから[ESRI Shapefile]を選択します。
続いて、[ファイル名]欄は、[•••]ボタンをクリックして保存したい場所とファイル名を指定します。すべての設定が完了したら、[OK]をクリックします。
すると、指定した場所にShapefileでエクスポートされ、先ほど保存した名称でQGISに追加されました。
CSVデータ追加時のよくあるトラブル
CSVデータが文字化けした場合の対処法
CSVデータを追加した時に、サンプルデータの欄が文字化けして表示されてしまうことがあります。
文字化けの原因としては、文字コードの設定が原因です。日本語のCSVデータは一般的に「Shift_JIS」や「UTF-8」で作成されていますが、QGISはデフォルトで異なる文字コードを指定することがあり、これが文字化けの原因となります。
もしCSVデータが文字化けをした場合は、文字コードの欄から「Shift_JIS」と「UTF-8」を交互に入れ替えてみることで、文字化けを解消することができるでしょう。
なお、CSVデータをQGISに追加した後に文字化けしていることを見つけた場合、Shapefileなどのベクタファイルとは異なり、レイヤプロパティから「文字コード」を変更できないので、データソースマネージャから再度CSVデータを追加しましょう。
地図上の変な場所にポイントデータが追加される
CSVデータをQGISに追加して、背景地図と重ねて表示しても、本来表示される場所にポイントデータが表示されない場合があります。
CSVデータをインポートする際に特に重要なのは、「座標系(CRS)」の設定です。
日本で公開されている緯度経度のデータであれば「EPSG:4326 (WGS 84)」や「EPSG:6668(JGD2011)を指定するのが一般的ですが、他の座標系で作成されているデータを読み込もうとする場合は、その座標系を正しく設定する必要があります。誤った座標系を設定すると、上記のように地図上の正しい位置に表示されない可能性があるため、読み込もうとしているデータの座標系を事前に確認することが重要です。
また、同じようなトラブルとして、下記の図のようにポイントの表示される位置が反転しており、適切にポイントが表示されないケースがあります。これはインポート時の設定で[X値]に[緯度]、[Y値]に[経度]といったように、指定するカラムが逆になってしまった場合に発生します。
このように、地図上に適切にポイントデータが表示されない場合は、座標系や設定を確認して、再度CSVデータをインポートしましょう。
おわりに
この記事では、緯度経度を含むCSVデータをQGISにインポートし、Shapefileにエクスポートする手順について解説しました。データの表示位置のズレやCSVデータの文字化けは実際に遭遇しやすいトラブルなので、焦らずに座標系や文字コードの設定を確認することが大切です。