スポンサーリンク
スポンサーリンク

DEMから地上開度を計算する

スポンサーリンク
スポンサーリンク
スポンサーリンク
スポンサーリンク

以下は完全に自慢ですので、それっぽいBGMを置いておきます。

開度による地形特徴の表示
J-STAGE
スポンサーリンク
スポンサーリンク

地上開度とは

地上開度に関する説明は横山ほか(1999)が詳しいですが、ざっくり言うと、

直感的には, 開度は当該地点が周囲に比べて地上に突き出ている程度及び地下に食い込んでいる程度を数量化したものである。
横山隆三, 白沢道生, & 菊池祐. (1999). 開度による地形特徴の表示. 写真測量とリモートセンシング, 38(4), 26-34.

です。

地上開度を計算する方法は、SAGA GISProtection Indexを用いることが多いですが、最近は50cmDEMなり、25cmDEMなりが登場し、計算が終わるのに三日三晩かかることが課題でした。

CUDAに対応させた話

ご存じの通り、最近は高速計算が可能な世の中になりましたので、SAGA GISのソースコードをもとに、CUDAに対応させました。

GitHub - Amanohara/Morphometric-Protection-Index-with-CUDA: This is a Python wrapper for SAGA GIS's ProtectionIndex.cpp, optimized to run with CUDA.
This is a Python wrapper for SAGA GIS's ProtectionIndex.cpp, optimized to run with CUDA. - Amanohara/Morphometric-Protec...

なんと50cmDEMでも3日かかっていた計算が数十秒で終わります。

使い方

平面直角座標系のGeoTiffを用意して、

python3 index.py <input_GeoTiff> <output_GeoTiff> --radius <RADIUS>

とすればよいです。RADIUSは計算幅ですので、これを小さくすればするほど時間と負荷がかかります。
・・・まあCUDAなので、そこまでですが。

何が凄いのか

言えません。
ただ、DEMをひっくり返すと地下開度まで速攻で計算できます。

出典

Conrad, O., Bechtel, B., Bock, M., Dietrich, H., Fischer, E., Gerlitz, L., Wehberg, J., Wichmann, V., and Boehner, J. (2015): System for Automated Geoscientific Analyses (SAGA) v. 2.1.4. Geosci. Model Dev., 8, 1991-2007, https://doi.org/10.5194/gmd-8-1991-2015.

謝辞

Special thanks and heartfelt appreciation to Victor Olaya for developing the original C++ program that serves as the foundation for this implementation.

コメント

スポンサーリンク