エアロトヨタコラムColumn
- エアロトヨタ株式会社 TOPページ
- 知る・楽しむ
- エアロトヨタコラム
- QGIS+Excelで点検データも整理できる「施設管理台帳」の作成(1)
QGIS
QGIS+Excelで点検データも整理できる「施設管理台帳」の作成(1)
この記事でわかること
・自治体等が管理する施設台帳をQGISを使って位置情報付きで管理できる
・施設位置情報に付随するExcelなどの詳細データを属性結合してQGISで利用できる
この記事は、執筆時の安定版(LTR)であるQGIS Ver3.40で作成しています。
位置情報付きの施設台帳をQGISで作る
自治体などでは、上下水道、道路や橋、公共施設、砂防治山施設など様々な施設を管理しており、施設の管理は台帳で行われていることがほとんどだと思います。
しかし、台帳が紙ベースでしか存在せず、地図も簡素な紙の図面しか無いため、いざ点検に行こうと思っても位置がわからないということがあるかもしれません。
そのようなことがないように、位置情報を持った施設データを整備することで、QGISを使って施設台帳システムを自作することが可能です。
QGISで施設台帳システムを作れば、位置情報と既存の紙図面との連携や、調査点検データとの連携を行うことが可能です。
どんな事ができるの?
QGISで施設台帳システムを作ると、次のようなことができます。
・施設の位置を地図上に表示
・施設位置情報と詳細データ(Excelファイル)を属性結合する ←この記事ではここまで紹介
・施設データの追加、編集、削除を簡単に行える
・施設の台帳データをフォーム形式で表示
・データをフォームで定型入力することが可能
・日々の調査点検データ(Excelファイルなど)と施設データを連携(リレーション)することで、点検内容も地図で可視化
・図面や写真(PDFや画像ファイル)を施設位置をクリックすることで表示する
このようなことを行うことが可能です。
できることが多いので、何回かに分けて説明します。
今回は、「詳細データを属性結合する」ところまで実施してみましょう。
施設台帳の位置情報と、属性のフォーム表示。点検データはサブデータで表示されている。
施設の位置を地図上に表示
まずは施設の位置情報を地図上に表示してみましょう。
ここでは、姫路市の指定避難所データを例に行ってみます。
データはこちらからダウンロードできます。
姫路市 避難施設
【出典:この記事のデータは姫路市避難施設を加工したものです】
Geojsonデータをダウンロードして、QGISにドラッグ&ドロップすると避難施設ポイントが表示されます。
見やすいようにレイヤスタイルを編集します。名称もラベルで表示しておきましょう。
詳細データのExcelファイルを作成
オープンデータで公開されている避難所データの属性には、「種別」「名称」「住所」「X座標」「Y座標」しか記録されていません。
そこで、別に公開されている避難所一覧(PDFファイル)を使って、詳細データのExcel(xlsx)ファイルを作成します。
変換には生成AIの力を借りました。
次のデータクレンジング(QGISで使えるようにデータをきれいにする)を行う必要があります。
・見出し行を1行にする
・改行を削除する(Excelの置換では、検索する文字列で[CTRL]+Jを押して置き換えする)
・数値の列にある「ー」などの文字は削除する
・1データ2行になっているものは1行に修正する
作成したら、Excel(xlsx)ファイルで保存します。
施設ID番号をつける
QGISで属性結合を行うために、QGISの施設データとExcelの詳細データに施設IDを付けます。
※あらかじめ共通のIDがついているデータであれば、この作業は不要です。
QGISの施設データに施設IDをつける
1.「新規フィールドを作成」にチェックを付けて、フィールド名に「施設ID」、フィールド型は「整数(32bit)」を選択します。
2.「レコードと属性」から「$ID」をダブルクリックします。
3.式に「$ID」と入力されていれば、「OK」ボタンをクリックします。
Excelの詳細データに施設IDをつける
次にExcelの詳細データにも施設番号を付けます。
2行名以降に次の計算式を入力します。
=VLOOKUP(B2,Sheet1!$C$1:$G$255,5,FALSE)
・「B2」は「施設名」です
・「Sheet1!$C1:1:G$255」はQGISからコピーした施設データの範囲です。名称(C列)から施設ID(G列)までを指定しています。行数(今回は255)はデータの行数によって変わります。
・「5」はC列から5番目のG列の値を表示するという意味です。
・「FALSE」は完全一致を指定します。施設名と名称が完全に一致しないとエラーになります。
セルA2に計算式を入力したら、A列のデータのある一番下までコピーします。
エラーが表示されている行は、名称が一致していないので、QGISの施設データと一致するように修正します。
すべて修正できたら、A列をコピーして、同じ範囲に値貼付けして計算式から数値に変更します。
QGISから施設データを貼り付けたシートも削除して、Excelファイルで上書き保存します。
Excelファイルをレイヤに追加する
データが正しく表示されるか、属性テーブルで確認してください。
QGISで読み込んだExcel(xlsx)ファイルの属性データにふりがなが表示されてしまう
【メモ】ふりがなが表示される場合
Excelレイヤの属性データを確認したときに、ふりがなが表示されてしまう場合があります。(下図参照)
これはQGISの不具合で、Excelファイル内に記録されているふりがなを表示してしまうためです。
このような場合には、一度ExcelファイルをCSVに保存して、再度xlsxファイルに保存するという方法があります(CSV保存時にふりがなが削除される)。
その他に、「xlsx furigana delete」というプラグインがあります。
施設データと詳細データを結合する
施設データの「施設ID」と詳細データの「施設ID」をキーフォールドとして、同じ施設IDのデータ同士を属性結合します。
属性結合すると、Excelレイヤの値を施設データで利用して、データの分類などを行うことができます。
「結合するレイヤ」にExcelレイヤを選択します。
「結合基準の属性」「ターゲット属性」に「施設ID」(キーフォールド)を選択します。
「結合属性」にチェックをつけて、結合したい属性を選択(チェックを付ける)します。
「属性名の接頭辞」にチェックを付けて、内容は空白にします。
設定できたら「OK」ボタンをクリックします。
例えば下の図のように、収容人数を円の大きさで表すというようなデータ分類を行うことが可能です。
次回に続く・・・・・
記事編集:喜多耕一



