見出し画像

衛星データと農地ポリゴンデータ、地図データを重ねてアプリに自動アップロードする件


はじめに

以下で、衛星データを自動でダウンロードするスクリプトを作成した。

今回はこちらを使って自動でダウンロードして、QGISで地図データなどを重ね合わせてシステムにアップロードする処理について紹介しよう。なお、有料ソフトは一切利用しない。低コストで実施したい人はぜひこの方法で!!

以下のシステムにアップします!!


まずは衛星データをダウンロードしてローカルに保存

環境はCentOS7。サポートが切れるので、Ubuntuなどでもよい。(もちろんWindowsでも)

前回の説明のスクリプトをサーバーで実行する。これでローカルにZIPファイルが作成される。なるべくはっきりとした写真が良いので、雲カバー率は10%と厳しめにした。

python3 -u python.py >> log.txt &

ZIPを解凍してカラー画像を抜き出す。
以下の TCI と書かれたファイルとなる。

S2C_MSIL1C_20250208T013851_N0511_R117_T53SNU_20250208T033201.SAFE
 →GRANULE
  →L1C_T53SNU_A002232_20250208T013951
   →IMG_DATA
    →R10m
     →T53SNU_20250208T013851_TCI.jp2

QGISで地図データ、農地ポリゴンデータを重ね合わせる

あらかじめ、地図データ、農地ポリゴンデータを取り込んだQGISプロジェクトを作成しておく。わかりやすいために衛星画像も貼り付けているが、実際はこのファイルは追加しない状態で保存する(T53で始まるファイル)

上記の赤枠が、道路や線路情報の情報。こちらは以下のサイトから自分の場所にあったデータをダウンロードする。

ダウンロードしたデータを上記プロジェクトに追加して、必要なエリアを画像ファイルとして保存する。QGISは起動後に、pythonを自動実行でき、その中でAPIをコールして実現する。その際、左上に取得日時を追加しておけば、アプリケーションで利用する際に便利。

また、画像に出力する範囲は経度、緯度で指定してプロジェクトに保存しておけば、APIでは出力処理だけの呼び出しで済む。

出来た画像ファイルをシステムにアップロード

最後に、画像データをシステムにアップロードすれば完成!!
筆者の環境では、Webサーバー上でQGISを実行しているので、そのままWebアプリケーションのフォルダにアップ後、DBの情報を上書きすることで対応した。

毎日、最新データがあるかチェックして、有ればアプリケーションに自動反映が自動でできた!!

衛星データは色々な種類があるので応用が利きそう。

ちなみにQGISの起動時の引数で --code を使えば、起動後にpythonの自動実行が可能。

全体的な制御はシャルスクリプトでChatGPTなどに聞けば簡単に作成できるがQGISのAPI周りが難しいかもしれないので、ソースを参考に乗せておく。

2年程前につくったが、今ならAIに聞いたらすぐできるかもしれないが苦労したので有料で。

ここから先は

3,250字

¥ 1,000

この記事が気に入ったらチップで応援してみませんか?