マルチバンド ラスターを処理 (Sentinel-hndex を使用してインデックスを作成)

WBOY
リリース: 2024-08-25 06:01:33
オリジナル
729 人が閲覧しました

こんにちは。前のブログでは、単一バンド ラスターに対して h3 インデックスと postgresql を使用してラスター解析を行う方法について説明しました。このブログでは、マルチバンド ラスターを処理し、インデックスを簡単に作成する方法について説明します。 Sentinel-2 画像を使用し、処理された h3 セルから NDVI を作成し、結果を視覚化します

センチネル 2 データをダウンロードする

ネパール地域ポカラの https://apps.sentinel-hub.com/eo-browser/ からセンチネル 2 データをダウンロードしています。これは、簡単に湖が画像グリッドに含まれていることを確認するためです。 NDVI の結果を検証する

Process multiband rasters (Sentinel-with hndex and create indices

すべてのバンドのセンチネル画像をダウンロードするには:

  • アカウントを作成する必要があります
  • お住まいの地域で画像を見つけて、興味のある地域をカバーするグリッドを選択してください
  • グリッドにズームし、右の垂直バーのProcess multiband rasters (Sentinel-with hndex and create indicesアイコンをクリックします
  • その後、分析タブに移動し、画像形式が tiff 32 ビット、高解像度、wgs1984 形式のすべてのバンドを選択し、すべてのバンドがチェックされています

Process multiband rasters (Sentinel-with hndex and create indices

必要に応じて、NDVI、フォールスカラー tiff のみ、または特定のバンドなど、事前に生成されたインデックスをダウンロードすることもできます。自分で加工したいので全バンドダウンロード中です

  • ダウンロードをクリック

Process multiband rasters (Sentinel-with hndex and create indices

前処理

生形式でダウンロードしたため、センチネルからすべてのバンドを別の tiff として取得します

Process multiband rasters (Sentinel-with hndex and create indices

  • 合成画像を作成しましょう :

これは GIS ツールまたは gdal を通じて実行できます

  1. gdal_merge の使用:

ファイル名にスラッシュが含まれないように、ダウンロードしたファイルの名前を次のように Band1,band2 に変更する必要があります
この演習ではバンド 9 まで処理しましょう。必要に応じてバンドを選択できます

リーリー
  1. QGIS の使用:
  • 個々のバンドをすべて QGIS にロードする
  • 「ラスター」に移動 >その他>マージ

Process multiband rasters (Sentinel-with hndex and create indices

  • マージ中は、「各入力ファイルを sep バンドに配置する」を必ずチェックする必要があります

Process multiband rasters (Sentinel-with hndex and create indices

  • マージされた tiff を生の geotiff に複合としてエクスポートします

ハウスキーピング

  • 画像が WGS1984 にあることを確認してください 私たちの場合、画像はすでに ws1984 にあるため、変換の必要はありません
  • nodataがないことを確認してください。はいの場合は0を入力してください
リーリー
  • 最後に、出力画像が COG であることを確認してください
リーリー

これらを自動化するために、cog2h3 リポジトリで提供されている bash スクリプトを使用しています

リーリー

h3 セルのプロセスと作成

前処理スクリプトが完了したら、いよいよ合成歯車画像の各バンドの h3 セルの計算に進みましょう

  • cog2h3をインストールする
リーリー
  • データベース認証情報をエクスポートする
リーリー
  • 走る

このセンチネル画像には解像度 10 を使用していますが、h3 セルをラスター内の最小ピクセルよりも小さくする、ラスターに最適な解像度を印刷するスクリプト自体にも表示されます。

リーリー

結果を計算して postgresql に保存するのに 1 分かかりました

ログ:

リーリー

分析する

postgresql にデータがあるので、分析してみましょう

  • 処理したすべてのバンドがあることを確認します (バンド 1 から 9 まで処理したことを思い出してください)
リーリー

Process multiband rasters (Sentinel-with hndex and create indices

  • 各セルのndviを計算する
リーリー

クエリプラン:

QUERY PLAN | -----------------------------------------------------------------------------------------------------------------+ Seq Scan on sentinel (cost=0.00..28475.41 rows=923509 width=16) (actual time=0.014..155.049 rows=923509 loops=1)| Planning Time: 0.080 ms | Execution Time: 183.764 ms |
ログイン後にコピー

As you can see here for all the rows in that area the calculation is instant . This is true for all other indices and you can compute complex indices join with other tables using the h3_ix primary key and derive meaningful result out of it without worrying as postgresql is capable of handling complex queries and table join.

Visualize and verification

Lets visualize and verify if the computed indices are true

  • Create table ( for visualizing in QGIS )
create table ndvi_sentinel as( select h3_ix , (band8-band4)/(band8+band4) as ndvi from public.sentinel )
ログイン後にコピー
  • Lets add geometry to visualize the h3 cells This is only necessary to visualize in QGIS , if you build an minimal API by yourself you don't need this as you can construct geometry directly from query
ALTER TABLE ndvi_sentinel ADD COLUMN geometry geometry(Polygon, 4326) GENERATED ALWAYS AS (h3_cell_to_boundary_geometry(h3_ix)) STORED;
ログイン後にコピー
  • Create index on geometry
create index on ndvi_sentinel(geometry);
ログイン後にコピー
  • Connect your database in QGIS and visualize the table on the basis of ndvi value Lets get the area near Fewa lake or cloud

Process multiband rasters (Sentinel-with hndex and create indices

As we know value between -1.0 to 0.1 should represent Deep water or dense clouds
lets see if thats true ( making first category as transparent to see the underlying image )

  • Check clouds :

Process multiband rasters (Sentinel-with hndex and create indices

  • Check Lake

Process multiband rasters (Sentinel-with hndex and create indices
As there were clouds around the lake hence nearby fields are covered by cloud which makes sense

Process multiband rasters (Sentinel-with hndex and create indices

Thank you for reading ! See you in next blog

以上がマルチバンド ラスターを処理 (Sentinel-hndex を使用してインデックスを作成)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:dev.to
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!