こんにちは。前のブログでは、単一バンド ラスターに対して h3 インデックスと postgresql を使用してラスター解析を行う方法について説明しました。このブログでは、マルチバンド ラスターを処理し、インデックスを簡単に作成する方法について説明します。 Sentinel-2 画像を使用し、処理された h3 セルから NDVI を作成し、結果を視覚化します
ネパール地域ポカラの https://apps.sentinel-hub.com/eo-browser/ からセンチネル 2 データをダウンロードしています。これは、簡単に湖が画像グリッドに含まれていることを確認するためです。 NDVI の結果を検証する
すべてのバンドのセンチネル画像をダウンロードするには:
必要に応じて、NDVI、フォールスカラー tiff のみ、または特定のバンドなど、事前に生成されたインデックスをダウンロードすることもできます。自分で加工したいので全バンドダウンロード中です
生形式でダウンロードしたため、センチネルからすべてのバンドを別の tiff として取得します
これは GIS ツールまたは gdal を通じて実行できます
ファイル名にスラッシュが含まれないように、ダウンロードしたファイルの名前を次のように Band1,band2 に変更する必要があります
この演習ではバンド 9 まで処理しましょう。必要に応じてバンドを選択できます
これらを自動化するために、cog2h3 リポジトリで提供されている bash スクリプトを使用しています
前処理スクリプトが完了したら、いよいよ合成歯車画像の各バンドの h3 セルの計算に進みましょう
このセンチネル画像には解像度 10 を使用していますが、h3 セルをラスター内の最小ピクセルよりも小さくする、ラスターに最適な解像度を印刷するスクリプト自体にも表示されます。
結果を計算して postgresql に保存するのに 1 分かかりました
ログ:
postgresql にデータがあるので、分析してみましょう
クエリプラン:
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.
Lets visualize and verify if the computed indices are true
create table ndvi_sentinel as( select h3_ix , (band8-band4)/(band8+band4) as ndvi from public.sentinel )
ALTER TABLE ndvi_sentinel ADD COLUMN geometry geometry(Polygon, 4326) GENERATED ALWAYS AS (h3_cell_to_boundary_geometry(h3_ix)) STORED;
create index on ndvi_sentinel(geometry);
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 )
As there were clouds around the lake hence nearby fields are covered by cloud which makes sense
Thank you for reading ! See you in next blog
以上がマルチバンド ラスターを処理 (Sentinel-hndex を使用してインデックスを作成)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。