Skip to main content

陰影起伏の仕組み

3D Analyst ライセンスで利用可能。

Spatial Analyst ライセンスで利用可能。

陰影起伏 ツールは、ラスター内の各セルについてイルミネーション値を決定することにより、サーフェスの仮想的なイルミネーションを求めます。 これは、仮想光源の位置を設定し、各セルのイルミネーション値を隣接セルに対して計算することにより行います。 これにより、解析や視覚的表示、特に透過表示を使用する場合に、サーフェスの視覚化が大幅に向上します。

デフォルトでは、影と光はグレーの階調で 0 (黒) ~ 255 (白) の整数が関連付けられています。

陰影起伏のパラメーター

特定の場所の陰影起伏マップを作成する際に最も重要なのは、天空での太陽の位置です。

方位

光源方位は太陽の方位角方向で、北から右回りに 0 ~ 360 度で計測されます。 光源方位 90 度は東です。 デフォルトの光源方位は 315 度 (北西) です。

315 度の太陽方位

陰影起伏で使用されるデフォルトの太陽方位 (方向) は 315 度です。

高度

高度は、水平線を基準とする光源の傾斜角です。 単位は角度で、範囲は 0 (水平線上) ~ 90 度 (真上) です。 デフォルト値は 45 度です。

45 度の太陽高度

陰影起伏で使用されるデフォルトの太陽高度は 45 度です。

陰影起伏の例

次の陰影起伏の例では、方位 315 度、高度 45 度に設定されています:

陰影起伏の出力例

陰影起伏の出力例

表示に陰影起伏を使用

陰影起伏ラスターに重ねて標高ラスターを配置し、標高ラスターの透過表示を調整することで、視覚効果の高い立体的な地形図を作成できます。 表示と表示設定を調整する方法については、「画像の表示設定」をご参照ください。

透過表示を使用して、標高ラスターと陰影起伏を結合

透過表示を使用して、標高ラスターと陰影起伏ラスターを組み合わせることで、カラー陰影起伏ラスターを作成します。

土地利用タイプ、植生、道路、河川など他のレイヤーを追加すれば、さらに詳しい情報をマップに表示できます。

解析での陰影起伏の使用

陰影をモデル化することにより (デフォルトのオプション)、局所のイルミネーションを計算して、セルが陰影内にあるかどうかを調べることができます。

陰影をモデル化することにより、1 日の特定の時間に別のセルの影になるセルを特定できます。 別のセルの影が掛かるセルは、0 にコード化されます。その他のセルは 1 ~ 255 の整数でコード化されます。 1 より大きい値をすべて 1 に再分類して、バイナリー出力ラスターを作成できます。 次の例では、黒のエリアが影です。 各画像で光源方位は同じですが、太陽の角度 (高度) が変更されています。

太陽の角度が低い場合の陰影 太陽の角度が高い場合の陰影

陰影起伏の計算

陰影値を計算するには、まず、光源の高度と方位角を指定する必要があります。 傾斜角度および傾斜方向の計算でこれらの値が処理され、出力ラスターの各セルの最終的な陰影起伏値が決定されます。

陰影起伏アルゴリズム

陰影起伏値を計算するためのアルゴリズムは次のとおりです:

\[ \begin{align*} Hillshade &= 255.0 * ((\mathrm{cos}(Zenith_{rad}) * \mathrm{cos}( Slope_{rad} )) + \ & \quad (\mathrm{sin}(Zenith_{rad}) * \mathrm{sin}(Slope_{rad}) * \mathrm{cos}(Azimuth_{rad} - Aspect_{rad}))) \end{align*} \]

陰影起伏の計算値が 0 より小さい場合、出力セル値は 0 になります。

光源角度の計算

光源の高さは、水平を基準とする角度で指定されます。 ただし、陰影起伏値を求める数式では、角度の単位がラジアンであり、天頂からの偏向を表している必要があります。 サーフェスから真上の方向 (頭上) が天頂になります。 天頂角は、天頂点から光源方向に測定され、高度の余角となります。 光源角度を計算するには、はじめに高度を天頂角に変換します。 次に、角度をラジアンに変換します。

高度 (Altitude) を天頂角 (Zenith_deg) に変換するには:

\(Zenith_{deg} = 90.0 - Altitude \quad \quad (2)\)

ラジアン単位 (Azimuth_rad) に変換するには:

\(Zenith_{rad} = Zenith_{deg} * \pi / 180.0 \quad \quad (3)\)

光源方向の計算

光源の方向 (方位角) は度で表されます。 陰影起伏の数式では、この角度がラジアン単位で表されている必要があります。 はじめに、方位角を地理単位 (コンパス方位) から数学単位 (直角) に変換します。 次に、方位角の単位をラジアンに変換します。

方位角の測定方式を変換するには:

\(Azimuth_{math} = 360.0 - Azimuth + 90.0 \quad \quad (4)\)

\(Azimuth_{math}\) >= 360.0 の場合は、次のことが当てはまります:

\(Azimuth_{math} = Azimuth_{math} - 360.0 \quad \quad (5)\)

ラジアン単位 (Azimuth_rad) に変換するには:

\(Azimuth_{rad} = Azimuth_{math} * \pi / 180.0 \quad \quad (6)\)

傾斜角と傾斜方向の計算

3 x 3 移動ウィンドウが入力ラスターの各セルに移動し、このウィンドウの中心に位置するセルごとに、それに隣接する 8 つのセルの値に基づいて、傾斜角と傾斜方向が計算されます。 これらのセルは ai の文字で識別され、傾斜方向の計算対象となるセルには e が割り当てられます。

セル e の X 方向の変化率は、次のアルゴリズムで計算されます:

\([dz/dx] = ((c + 2f + i) - (a + 2d + g)) / (8 * cellsize) \quad \quad (7)\)

セル e の Y 方向の変化率は、次のアルゴリズムで計算されます:

\([dz/dy] = ((g + 2h + i) - (a + 2b + c)) / (8 * cellsize) \quad \quad (8)\)

サーフェス内の各セルからの最も急な下り坂が傾斜です。 ラジアン単位の傾斜角 (Slope_rad) を求めるアルゴリズムは次のとおりです。ここでは Z 係数を使用します:

\(Slope_{rad} = \arctan (z_factor * √ ([dz/dx]^2 + [dz/dy]^2)) \quad \quad (9)\)

最も急な下り坂が面している方向が傾斜方向です。 ラジアン単位の傾斜方向は 0 ~ 2 \(\pi\) の範囲で定義され、0 は東向きになります。 傾斜方向は、次のアルゴリズムの規則に基づいて決定されます:

\[ \begin{align*} & \mathrm{If \space} [dz/dx] \mathrm{\space is \space non-zero:} \ & \quad Aspect_{rad} = \mathrm{atan2} ([dz/dy], -[dz/dx]) \ & \quad \quad \mathrm{If \space} Aspect_{rad} < 0 \mathrm{\space then:} \ & \quad \quad \quad Aspect_{rad} = 2 * \pi + Aspect_{rad} \ & \mathrm{If \space} [dz/dx] \mathrm{\space is \space zero:} \ & \quad \mathrm{If \space} [dz/dy] > 0 \mathrm{\space then:} \ & \quad \quad Aspect_{rad} = \pi / 2 \ & \quad \mathrm{Else \space If \space} [dz/dy] < 0 \mathrm{\space then:} \ & \quad \quad Aspect_{rad} = 2 * \pi - \pi / 2 \ & \quad \mathrm{Else:} \ & \quad \quad Aspect_{rad} = Aspect_{rad} \end{align*} \]

陰影起伏の計算例

この例では、移動ウィンドウの中央のセルの陰影起伏値を計算します。

入力標高ラスター

セル サイズは 5 単位です。 デフォルトの \(Altitude\) 45 度と \(Azimuth\) 315 度を使用します。

光源角度の計算

次のように、数式 2 で天頂角 (Zenith_deg) が求められます:

\[ \begin{align*} Zenith_{deg} &= 90.0 - Altitude \ &= 90.0 - 45.0 \ &= 45.0 \end{align*} \]

次のように、数式 3 でラジアン (Zenith_rad) に変換されます:

\[ \begin{align*} Zenith_{rad} &= Zenith_{deg} * \pi / 180.0 \ &= 45.0 * 3.1415926536 / 180.0 \ &= 0.7853981634 \end{align*} \]

光源方向の計算

次のように、数式 4 で方位角が地理角度から数学的角度 (Azimuth_math) に変換されます:

\[ \begin{align*} {Azimuth_{math}} &= 360.0 - {Azimuth} + 90.0 \ &= 360.0 - 315.0 + 90.0 \ &= 135.0 \end{align*} \]

次のように、数式 6 で方位角がラジアン (Azimuth_rad) に変換されます:

\[ \begin{align*} Azimuth_{rad} &= Azimuth_{math} * \pi / 180.0 \ &= 135.0 * 3.1415926536 / 180 \ &= 2.3561944902 \end{align*} \]

傾斜方向と傾斜角

次のように、数式 7 を使用して中央のセル \(e\) で X 方向の変化率が求められます:

\[ \begin{align*} [dz/dx] &= (( {c} + 2 {f} + {i} ) - ( {a} + 2 {d} + {g} )) / (8 * {cellsize} ) \ &= ((2483 + 4966 + 2477) - (2450 + 4904 + 2447)) / (8 * 5) \ &= (9926 - 9801) / 40 \ &= 3.125 \end{align*} \]

次のように、数式 8 を使用して中央のセル \(e\) で Y 方向の変化率が求められます:

\[ \begin{align*} [dz/dy] &= ( (g + 2h + i) - (a + 2b + c)) / (8 * cellsize) \ &= (2447 + 4910 + 2477) - (2450 + 4922 + 2483) / (8 * 5) \ &= (9834 - 9855) / 40 \ &= -0.525 \end{align*} \]

次のように、数式 9 を使用して傾斜角が求められます:

\[ \begin{align*} Slope_{rad} &= \arctan (z_factor * √ ([dz/dx]^2 + [dz/dy]^2)) \ &= \arctan(1 * sqrt((3.125 * 3.125) + (-0.525 * -0.525))) \ &= \arctan(1 * sqrt(10.04125 + 0.275625)) \ &= \arctan(1 * 3.1687931457) \ &= 1.2651101670 \end{align*} \]

この例では dz/dx がゼロではないので、次のように、規則 10 に基づいて \(Aspect_{rad}\) の角度が求められます:

\[ \begin{align*} Aspect_{rad} &= \arctan2 ([dz/dy], -[dz/dx]) \ &= \arctan2(-0.525, -3.125) \ &= -2.9751469600 \end{align*} \]

この値は 0 より小さいので、これに相当する規則を適用する:

\[ \begin{align*} Aspect_{rad} &= 2 * \pi + Aspect_{rad} \ &= 2 * 3.1415926536 + -2.9751469600 \ &= 3.3080383471 \end{align*} \]

陰影起伏

次のように、最終的な陰影起伏の計算が行われます:

\[ \begin{align*} Hillshade &= 255.0 * ((\mathrm{cos}(Zenith_{rad}) * \mathrm{cos}(Slope_{rad})) + (\mathrm{sin}(Zenith_{rad}) * \mathrm{sin}(Slope_{rad}) * \mathrm{cos}(Azimuth_{rad} - Aspect_{rad}))) \ &= 255.0 * ((\mathrm{cos}(0.7857142857) * \mathrm{cos}(1.26511)) + (\mathrm{sin}(0.7857142857) * \mathrm{sin}(1.26511) * \mathrm{cos}(2.3571428571 - 3.310567))) \ &= 153.82 \end{align*} \]

出力ラスターは整数型なので、中央セル \(e\) の陰影値は「154」になります。

参考情報

Burrough, P. A., and R. A. McDonell. 1998. Principles of Geographical Information Systems. New York: Oxford University Press.