傾斜の計算
(Datum ワークステーション)

Ver. 3.3

SML のダウンロード

slope_calc_UTF8_v32.sml

パラメータファイルのダウンロード

slope_parm2.txt

傾斜計算のモデル

slope_parm2.pdf

特徴

Ver. 2.2

SML のダウンロード

slope_calc_UTF8_v22.sml

傾斜計算のモデル

slope_parm2.pdf

特徴

10種類のアルゴリズムによる傾斜量と従来の 4近傍、8近傍との比較

最近実装した 10種類のアルゴリズムによる傾斜量と、従来 4近傍・8近傍と呼んでいる方式で計算される傾斜量を比較してみました。
比較には、セル形状が縦横で異なる (縦 12.2m x 横 10.2m) 一般的な DEM ラスターを使用しました。

4近傍による傾斜量

4近傍による傾斜値 (図のセルの場所では、47.89605度) は、Datum のメニューの 1番目の方式 (Slope1) や同方式を使って SML で計算した 1番と同じ値です。
4近傍の計算式とは、PDF1にあるように、3x3 の 9個のセルにおいて、x, y 両方向の 3つの傾斜成分に対して(0, 1, 0)の加重平均を取る計算方式です。

8近傍による傾斜量

8近傍による傾斜値 (この場所では、44.69698度) は、Datum のメニューの 2番目と 5番目の方式 (Slope1, 5) と同値である。
対応する SML での計算 (2, 5) の場合と同じ値になっています。1次平面の最小二乗法を用いた SML(6) とも同じ値です。
8近傍の近傍の計算とは、3 x 3 の 9個のセルに対して、x, y 両方向に並ぶ、3行あるいは 3列の傾斜成分に対して、(1/3, 1/3, 1/3)の均等な重み付けを行うことによって得られる傾斜量です。PDF1参照。

まとめ

3 x 3 の標高値セルを対象とする傾斜計算において、x, y 両方向において、上中下あるいは左右真ん中の各 3列あるいは 3行の傾斜成分に掛ける重み係数の相違によって傾斜量が変化します。各モデルで使用されている重み係数を PDF2 にまとめました。
表において同じカラーのモデルは、3 x 3 のセルの傾斜計算において同じ重み係数を使用しているモデルを示しています。

Ver. 3.2

SML のダウンロード

slope_calc_UTF8_v32.sml

パラメータファイルのダウンロード

slope_parm.txt

特徴

傾斜計算のモデル

10種類のモデルについて SML で傾斜を計算できるようにしました。

slope_parm.pdf

No.1 を除き、どれも最小二乗法を使用しています。

SML の実行

  1. Datum WS を起動し、Script > Edit Script メニューから今回作成した SML を選択します。
  2. [Run] ボタンを押します。
  3. 計算のもとになる DEM ラスターを選択します。
  4. 傾斜ラスタ出力用の新規 RVC ファイルを指定します。
    v32 では、想定した 10種類の傾斜ラスターがあらかじめ決められた名前で出力 RVC ファイル内に計算されます。
  5. 最後に、各モデルの傾斜量を求めるために必要なパラメータが含まれているパラメータファイルを選択します。
    slope_parm.txt ファイルを選択します。
  6. [OK] ボタンを押すと、実行を開始します。

結果の比較

ここでは、基盤地図情報の 10m 標高データを RVC ファイルに取り込んだデータを使用して傾斜量を計算しました。
念のため、あらかじめ座標系を緯度経度から 19座標系の meter 単位に変換してあります。

計算結果の一例を示します。

  1. 一番下のレイヤーが標高データです。
  2. その上の Slope1 ~ Slope5 は Datum Workstation を使って求めた傾斜量です。単位は度です。
  3. その上の 1, 2, 3, 4, 5 のレイヤーは今回 SML で計算した傾斜量です。単位は度です。
    それぞれ Slope1 ~ Slope5 と合っています。
  4. 31, 41 は、それぞれ 3 と 4 と同じモデルであり、さらにセル形状を正方形と仮定したモデルです。
    ここで使用した入力 DEM データのセル形状は、縦、横 10m の正方形でしたので、3, 4 の値と一致します。
  5. モデル 6 は Slope2, Slope5 と同じ傾斜値です。モデル 7, 8 もそれぞれ Slope3 と Slope4 の場合と同じであり、近似する曲面の形状(1次、2次)はあまり関係ないようです。

次に、セル形状が正方形でない場合の DEM ラスターについての傾斜量の計算結果を示します。

リサンプル処理を使って、DEM の横方向のセルサイズを 10.1(m)、縦方向を 12.33(m) に変えました。

  1. 一番下のレイヤーがやはり標高データです。(場所は違います。)
  2. その上の Slope1 ~ Slope5 は Datum Workstation を使って求めた傾斜量です。単位は度です。
  3. その上の 1, 2, 3, 4, 5 のレイヤーは今回SMLで計算した傾斜量です。単位は度です。
    前の正方形のセル形状の DEM データの場合は、全ての場合で Slope1 ~ Slope5 と同じ値でしたが、3 と 4 のケースでは Slope3, 4 とは若干異なる数値です。
  4. 31, 41 の方の値 (モデルが同じで、セル形状を正方形と想定) を見ると、Slope3 と 4 の値と一致しています。
    つまり、Datum WS のメニューで計算されている Slope3 と 4 の傾斜値は、正方形のセル形状を想定した傾斜量になっています。
  5. モデル 6 は、前のデータと同様、Slope2, Slope5 と同じ値です。モデル 7, 8 は、SML で計算される方の傾斜量 3, 4 と一致します。

結論

  1. Datum WS の傾斜量メニューで計算される手法のうち、重みを考慮した Slope3 と Slope4 の値は、正方形のセル形状を想定した計算値であり、セル形状を厳密に考慮した場合の傾斜値から若干ずれることが分かりました。
  2. ずれの大きさは、今回使用した縦横比 1.2 程度の矩形セルに対して、0.01 度程度の微小なずれの量となります。

なお、本事象に関してはエラーとして米国 LandScan 社テクニカルサポートに報告済みです。(2026/02/20)
【エラー番号】26241 Slope calculation incorrectly assumes square cells

Ver. 2.1

SML のダウンロード

slope_calc_UTF8_v21.sml

傾斜計算のモデル

slope_parm.pdf

特徴

使い方

  1. DatumWS を起動し、Script > Edit Script メニューから今回作成した SML を選択します。
  2. [Run] ボタンを押します。
  3. 計算のもとになる DEM ラスターを選択します。
  4. 出力先の RVC ファイル、ラスターを指定します。
  5. 傾斜計算のモデルを選択します。全部で 10種類。各々に番号が割り振られています。slope_parm.pdf のモデルに対応する番号を入力します。選んだら、[OK] ボタンを押します。
  6. 以上で終了です。
  7. 結果の表示です。下に敷いたラスターが入力の DEM ラスター、上のラスターが今回 SML で計算した傾斜ラスター (単位は、度) です。

4近傍

SML のダウンロード

SlopeCross_UTF8_v1.sml

解説

メールマガジン 第175号「手計算で、勾配を求めてみよう!!」 2004/11/05

8近傍

SML のダウンロード

SlopeSquare_UTF8_v1.sml

解説

メールマガジン 第191号「8近傍の勾配計算アルゴリズム!!」 2005/03/04

作成
更新
株式会社オープン・ジー・アイ・エス