チュートリアル: 地下水調査のためのフィールドデータ収集アプリの作成
Site: | OpenCourseWare for GIS |
Course: | 水文地質学のためのGISトレーニング |
Book: | チュートリアル: 地下水調査のためのフィールドデータ収集アプリの作成 |
Printed by: | Guest user |
Date: | Thursday, 3 April 2025, 11:33 PM |
Description
1. 概要
前回のトピックでは、インターネット上にあるデータを利用する方法を学びました。
しかし、ネット上のデータでは入手できなかったり、粗かったりするため、自分でデータを収集しなければならないことがよくあります。最近では、そのためにアプリを使うこともあります。
このチュートリアルを終えると、以下のことができるようになります。
- QGIS を使用してデータ収集プロジェクトのセットアップをする
- オンラインとオフラインのレイヤーを持つマップテーマを設定する
- 入力フォームのデザイン
- QGISプロジェクトをMarginクラウドサービスと同期させる
- 携帯電話のInputアプリをMerginクラウドサービスと同期させる。
- データ収集用のInputアプリの使用
- 現場で収集したデータをMerginクラウドサービスとQGISプロジェクトに同期させます。
Inputは完全なGIS/マッピングアプリケーションを目的としていません。シンプルさ、使いやすさ、シームレスなデータ同期を念頭に置いて設計されています。
Inputを使用する典型的なワークフローは、以下のステップで構成されています。
- プロジェクトの準備:ユーザーは背景やデータ収集用のレイヤーを読み込み、入力フォームの設定をし、レイヤーにスタイルを適用し、マップテーマを設定し、収集目的で使用するレイヤーを定義します。
- データ/プロジェクトの転送:プロジェクトがセットアップされたら、ユーザーはデータをデバイスに転送する必要があります。これはMerginで実現できます。
- Inputでの作業:マップのナビゲーション、フォームへの入力を含むデータの編集、既存データの表示、変更内容のMerginへのアップロード。
このチュートリアルでは、地下水調査のための現場でのデータ収集のためのワークフローを紹介します。
2. プロジェクトの準備
QGISでプロジェクトの準備を始めていきます。
プロジェクトの中では以下の2つを区別する必要があります。
- 現場でのコンテキストを提供する背景レイヤ
オフラインとオンライン、ラスタとベクタのレイヤを両方とも使うことができます。
データ収集用のレイヤ
- オンラインのGoogle satellite
- オフラインのGoogle satellite
- オンラインのOpenStreetMap
- オフラインのOpenStreetMap
- 調査地域の境界を持つベクタレイヤ
2.1. 調査地域の境界を追加する
まず、調査地域の境界を定義し、そのポリゴンをプロジェクトに追加します。これにより、現場でアプリを使ってナビゲートする際に、境界がどこにあるかを知ることができます。
1. QGISで新規プロジェクトを立ち上げます。
2. 右下の EPSGコードをクリックして、プロジェクトの投影法をUTM Zone 36S/WGS-84に変更します。
3. ダイアログでEPSGコード32736でフィルタし、投影法を選択しOKをクリックします。
これは測量レイヤではないので、このベクタレイヤを読み取り専用にする必要があります。Inputアプリは、読み取り専用のレイヤーを非測量レイヤーとして解釈します。
30. メインメニューで プロジェクト | プロパティ...を選択します。
31. データソースタブを選択します。
32. 境界レイヤの読取専用のチェックを入れます。
2.2. オンラインレイヤーを追加し、オフラインで利用可能にする
現地でインターネットに接続できる環境であれば、WM(T)SやオンラインのXYZタイルを背景地図として使うことができます。前のセクションでは、すでにOSM Standardレイヤーを追加しました。このセクションでは、測量プロジェクトにGoogle Satelliteを追加します。また、現場でインターネットに接続できない場合に備えて、オンラインレイヤーをオフラインで利用できるようにしておきます。
まずGoogle Satelliteをプロジェクトに追加しましょう。
1. メインメニューで Web | QuickMapServices | Google | Google Satelliteと進みます。
これで、ピボットがはっきりと見えるようになりました。
次のステップは、調査対象地域のOSM StandardレイヤーとGoogle Satelliteレイヤーをオフラインで利用できるようにすることです。そのためには、地図キャンバスを指定したズームレベルでMBTilesに保存する必要があります。まず、適切なズームレベルを探します。
2. ビュー | パネル | タイルスケールを選択します。
タイルスケールパネルが追加されました。
3. レイヤーパネルのGoogle Satelliteをクリックし、タイルスケールパネルのスライダーを任意のズームレベルに移動させます。
なお、レベルが高いほど解像度が高くなり、ファイルサイズも大きくなります。ここでは、ズームレベル17を使用します。
4. タイルスケールパネルを閉じます。
5. レイヤパネルのClick right on Bangula_study_area レイヤで右クリックし、レイヤの領域にズームを選択します。
6. レイヤパネルでGoogle Satellite以外の全てのレイヤのチェックを外します。
7. プロセッシングツールボックスにいきます。
8. ラスタツール | XYZタイルの生成(MBTiles形式)を選択します。
9. XYZタイルの生成(MBTiles形式)ダイアログでExtentでレイヤから計算...を選択します。
10. Bangula_study_area を選択してOKをクリックします。
11. ズームの最小値と最大値を17に設定します。
ここで範囲を指定すると、異なるズームレベル用のMBTileが作成されます。これにより、ファイルは大きくなりますが、ズームイン、ズームアウトを繰り返したときのナビゲーションがスムーズになります。現場ではたいてい、詳細なレベルだけが必要です。そこで、ここではズームレベル17を選択しました。
12. レイヤーをプロジェクトファイルのある専用フォルダにSatellite.mbtilesとして保存します。その他の設定はデフォルトのままにしておきます。
なお、mbtilesはGeoPackageに直接保存することはできません。後でGeoPackageにドラッグすることになります。
13. 実行をクリックします。処理のあと閉じます。
14. ブラウザパネルでSatellite.mbtilesラスタをBangula_groundwater_survey GeoPackageにドラッグします。
15. Bangula_groundwater_survey GeoPackageからSatelliteレイヤを地図キャンバスにドラッグします。
16. OSM Standardでも同じ手順を行います。
17. プロジェクトを保存します。
これでオンラインとオフラインのレイヤが準備できました。
次のセクションでは測量用のレイヤを追加していきます。
2.3. 測量用のレイヤを追加する
ベクタレイヤはInputアプリで使う測量用のレイヤとして追加できます。
このセクションでは地下水データを収集するための測量レイヤを作成していきます。
次のような手順で説明していきます。
- 必要な属性を持つポイントベクタレイヤの作成
- ポイントのスタイリング
- ウィジェットを使った属性フォームの作成
- 入力プレビューパネルの設定
必要な属性を持つポイントベクタレイヤの作成
1. メインメニューで レイヤ | レイヤの作成 | 新規GeoPackageレイヤ....と進みます。
2. ブラウズ ボタン をクリックしてプロジェクトフォルダを開いて、前回のセクションのGeoPackage、今回の場合はbangula_study_area.gpkgを選択します。
3. テーブル名にSurveyと入力します。ジオメトリタイプにポイントを選択します。投影法がEPSG:32736であることを確認してください。
4. さて属性を追加していきます。下のスクリーンショットのように属性を追加します。フィールドリストに追加ボタンを使って追加してください。
5. 終わったらOKをクリックします。
6. ポップアップが上書きするか新しいレイヤを追加するか聞いてきます。新しいレイヤを追加を選択しGeoPackageに追加します。
測量ポイントのスタイリング
ウィジェットを使った属性フォームを作る
"Type" = 'Wells' OR "Type" = 'Boreholes'
式制約を強制のボックスにチェックを入れます。
"Type" = 'Wells' OR "Type" = 'Boreholes'
式制約を強制のボックスにチェックを入れます。
入力プレビューパネルの設定
Google マップと同様に、マップ上で地物が識別されると、プレビューパネルが表示されます。レイヤーを識別できるようにするには、QGISデスクトップのプロジェクトのプロパティでオプションを有効にする必要があります。
27. プレビューパネルの設定では、Surveyレイヤで右クリックしプロパティを選択する必要があります。それから表示名タブを選択します。
28. Display Name を Observation IDに変更します。こうすることで測量したポイントをタップしたときにObservertion IDが表示されるようになります。
29. 地図のTipsのHTML定義に次の行を追加します
# image
file:///[%@project_folder%]/[% "Picture" %]
こうすることで測量したポイントをタップしたときにInputアプリに写真を表示させるようにできます。
30. OKをクリックしダイアログを閉じます。
これでSurveyレイヤの準備が整いました。
次のセクションではプロジェクトの最後の設定をいくつかしていきます。
2.4. マップテーマを追加する
背景マップの変更を容易にするために、QGIS プロジェクトでマップテーマを設定することができます。
マップテーマでは、テーマに格納されているレイヤーのみを表示することができます。
今回のテーマはすべて、一番上に測量レイヤー(Survey)、次にBangula_study_areaレイヤーが必要です。
それらを表示するための次のようなマップテーマを作ってみましょう。
- Google Satellite online
- Google Satellite offline
- OSM online
- OSM offline
3. Merginでプロジェクトを同期する
Inputには、Merginを使ってプロジェクトとデータをシームレスに同期する機能が組み込まれています。
このセクションでは、前のセクションのプロジェクトをMerginクラウドサービスと同期させます。
1. ファイルエクスプローラーで、プロジェクトフォルダに移動し、以下を除くすべてのファイルを削除します。
mbtilesやその他の中間レイヤーを作成したことを思い出してください。すべてはGeoPackageの中にあるはずなので、これらのファイルを安全に削除することができます。GeoPackageは1つのファイルですが、ここでは3つのファイルがあることに注意してください。他の2つのファイルは、QGISプロジェクトを開いているときだけ存在します。QGISプロジェクトを閉じれば、これらのファイルはなくなります。Merginはこれらの一時ファイルを同期しません。
2. インターネットのブラウザで Mergin (https://public.cloudmergin.com/)にサインアップします。
3. QGISでMerginプラグインをインストールします。
4. QGISを再起動しプロジェクトを読み込みます。
5. ブラウザパネルにMerginフォルダを見つけられます。
6. Mergin を右クリックし Configureを選択します。
7. 新しいウィンドウが表示されます。
- Username: Mergin のユーザー名を入力します
- Password: Mergin のパスワードを入力します
- Test Connection をクリックしてOKとでれば良いです
8. OKをクリックしブラウザパネルに戻ります。
kろえでMerginの下に次のようなフォルダが見えるはずです。:
- My projects. フォルダを開くと、自分のMerginのプロジェクトを見ることができます。
- Shared with me. ここでは、他の人が共有しているプロジェクトを見つけることができます。
- Explore. ここでは、Merginの公開プロジェクトをご覧いただけます。
では、プロジェクトを追加しましょう。
9. Mergin を右クリックしCreate new projectを選択します。
11. OKをクリックします。
これで、プロジェクトがMerginと同期されます。
同期が正常に完了すると、このポップアップが表示されます。
12. Closeをクリックします。
My projectsの下でプロジェクトを見つけられるでしょう。
は、ローカルプロジェクトでもあることを意味しています。
は、プロジェクトはクラウドでは利用できるが、ローカルでは利用できないことを意味します。
プロジェクトがWebブラウザでも表示されるようになりました。
このプロジェクトをクリックすると、GeoPackageだけが含まれていることがわかります。なお、次のステップでスマートフォンと同期するためには、30.66MBの容量が必要です。
これで、スマートフォンのInputアプリとプロジェクトを同期させる準備が整いました。
4. Inputを使ったフィールド調査
1. Google Play StoreまたはApple App Storeから「Input」アプリをスマホやタブレットにインストールします。
最初にアプリケーションを開くと、ホーム画面が表示されます。この画面には、ローカル(/sdcard/INPUTフォルダ以下)に保存されているすべてのプロジェクトが表示されます。
2. Merginクラウド上の自分のプロジェクトにアクセスするには、プロジェクトを選択します。Merginへのサインインには、ログイン情報が必要です。
ログイン後、プロジェクトの右側にあるダウンロードボタンを押すと、プロジェクトをダウンロードしてローカルで作業することができます。
3. をタップし前回のセクションで作ったSurveyプロジェクトをダウンロードします。
同期の進捗状況が表示されます。
When the synchronisation is finished you'll see:
プロジェクトは、ローカルにダウンロードした後、Inputで読み込むことができるようになります。
4. ホームを選択すると、ダウンロードしたプロジェクトが表示されます。
5. プロジェクトをタップして、Inputで開きます。
これで、地図のテーマの一つが表示されます。
10. 地物を追加するには, パネル下部の記録 ボタン をタップします。記録ボタンをタップすると、 編集可能な全てのレイヤがリストアップされます。今回はSurveyレイヤだけです。
今回のSurveyレイヤーはポイントレイヤーであり、GPSの位置に十字が表示されます。
11. 調査する場所に地図を移動させ点の追加 をタップします。十字の下の点が記録位置になります。 必要に応じて、GPS
をタップすることで、元の場所に戻ることができます。必要に応じて、他のマップテーマに切り替えることで、より良い方向に進むことができます。
5. フィールド調査をQGISに同期させる
フィールドデータの収集後、Merginプラグインを使ってプロジェクトをQGISに同期させます。
1. QGISを起動します
2. My projectsのプロジェクトを右クリックし、Synchronizeを選択します。
同期が正常に行われると、このようなポップアップが表示されます。
3. Closeをクリックします。
4. プロジェクトでもう一度右クリックし、Open QGIS projectを選択します。
これで、プロジェクトに追加されたポイントが表示されます。
5. Surveyレイヤー上で右クリックし、属性テーブルを開くを選択します。フォームビューになっていることを確認します。
これで、フィールドで入力したポイントが、写真を含めてフォームに表示されました。
6. その他のリソース
QGIS、Input、Merginの使用に関する詳細なリソースはこちらをご覧ください。