趣味で計算流砂水理

Computational Sediment Hydraulics for Fun

ArcGISの傾斜角、傾斜方向の計算方法

全然大した話じゃないですが、ArcGISの傾斜角、傾斜方向の計算方法について確認してみました。以下のページに書いてました。

傾斜角 (Slope) の仕組み—ヘルプ | ArcGIS for Desktop

傾斜方向の仕組み—ヘルプ | ArcGIS for Desktop

傾斜角、傾斜方向は普通に以下の式で計算していますが、問題はzの空間微分です。

 slope = \arctan{ \left( \sqrt{ \left( \frac{\partial z}{\partial x} \right)^2 + \left( \frac{\partial z}{\partial y} \right)^2}\right) }


aspect = \arctan{ \left( \dfrac{ \dfrac{\partial z}{\partial y} }{ -\dfrac{\partial z}{\partial x}} \right) }

結論としては、計算方法は周辺9点の座標を使って中央差分でこんな感じで計算してます。


\frac{\partial z}{\partial x} = \frac{1}{4}\left(\frac{z_{i+1,j+1}-z_{i-1,j+1}}{2\Delta x}
+ 2\frac{z_{i+1,j}-z_{i-1,j}}{2\Delta x} +\frac{z_{i+1,j-1}-z_{i-1,j-1}}{2\Delta x} \right)


で、ここからが本題というか面白い話ですが元のwebページにはこんな感じで書いてます。

aa

[dz/dx] = ((c + 2f + i) - (a + 2d + g) / (8 * x_cellsize)     
[dz/dy] = ((g + 2h + i) - (a + 2b + c)) / (8 * y_cellsize)

暗号みたいで気持ち悪い・・・。この書き方はないな。