CS立体図の作成~パラメーター調整~

全国Q地図MapLibre版において、標高タイルからCS立体図を作成する機能を開発しました。

CS立体図の作成方法は、考案者の戸田様により公開されていますが、具体的なパラメーターや色(RGB値)については、オフィシャルなものはなく、用途によって適宜調整することとなっているようです。

全国Q地図MapLibre版は標高タイルからCS立体図を生成する仕組みのため、どの縮尺でも見やすくなるよう検討を行いました。

ここでは、全国Q地図MapLibre版のCS立体図表示機能実装に当たって、縮尺に応じた最適なパラメーター等を検討した結果の要点を紹介します。なお、ソースコードはGitHubで公開していますので、より詳細な情報は実際のコードを参照してください。

参考にした文献等

まず、CS立体図の作成方法に参考とした文献等を紹介します。パラメーター等は、以下の文献等をベースに調整を行いました。

  1. 戸田堅一郎「安全な路網計画のための崩壊危険地ピンポイント抽出技術-CS立体図を用いた崩壊危険地形判読技術の開発-」『長野県林業総合センター研究報告』32号、長野県林業総合センター、2018
    CS立体図の作成方法が詳しく解説されています。
  2. 戸田堅一郎「CS立体図を使った地形判読マニュアル― 解説―」(株)ジオ・フォレスト、2024年6月閲覧
    CS立体図の作成方法が図で解説されています。
  3. Pacific Spatial Solutions 株式会社「CS立体図作成ツール(FME版)」G空間情報センター
    マニュアル(PDFファイル)に色の割当が記載されています。
  4. MIERUNE「csmap-py」2024年6月閲覧
    pythonで書かれたCS立体図の作成ツールです。

曲率図の作成に用いる標高データの平滑化

標高データの平滑化に用いるガウシアン関数の標準偏差σについて、文献1では、σを小さくすると小規模な地形が強調され、σを大きくすると大規模な地形が強調されるとされ、1mメッシュDEMの場合でσ=3.0、10mメッシュDEMの場合でσ=1.2が適するとしています。

全国Q地図MapLibre版では、試行錯誤の結果、σは、3を標高メッシュの間隔(pixelLength)で割った値、ただし、最小でも1.6としました。

const minimumSigma = 1.6; // ガウシアンカーネルの最小標準偏差
const sigma =  Math.max(3 / pixelLength, minimumSigma);  // ガウシアンカーネルの標準偏差を計算(1mメッシュの場合、3m)

色の割当

下限値上限値下限値の色中間値の色上限値の色
1
【立体図】
標高レイヤー
0m3,000m
(100,100,100)

(255,255,255)
2
【立体図】
曲率レイヤー
-0.25/係数0.05/係数
(42,92,170)

(255,255,255)
3
【立体図】
傾斜レイヤー
60°
(255,255,255)

(189,74,29)
4
【曲率図】
曲率レイヤー
-0.20/係数0.20/係数
(0,0,255)

(255,255,240)

(255,0,0)
5
【曲率図】
傾斜レイヤー
90°
(255,255,255)

(0,0,0)

なお、係数(curvatureCoefficient)は縮尺に応じて色合いを調整するためのもので、試行錯誤の結果、以下のようにしています。

if (pixelLength < 68) { // 68は2つの値が同じになるところ
  curvatureCoefficient = Math.max(pixelLength / 2,1.1);
} else {
  curvatureCoefficient = 0.188 * Math.pow(pixelLength,1.232);
}

重ね合わせ

文献1によると、1~5のレイヤーの重ね合わせの割合は以下のとおりとなります。
 1: 25% + 2: 12.5% + 3: 12.5% + 4: 25% + 5: 25%

文献2によると、1~5の重ね合わせの割合は以下のとおりとなります。
 1: 6.25% + 2: 6.25% + 3: 12.5% + 4: 25% + 5: 50%

文献3によると、1~5の重ね合わせの割合は以下のとおりとなります。
 1: 12.5% + 2: 12.5% + 3: 25% + 4: 25% + 5: 25%

全国Q地図では、これらをベースに試行錯誤し、1~4を以下の割合で重ね合わせたレイヤーに5を乗算で重ね合わせることにしました。
( 1: 12.5% + 2: 12.5% + 3: 25% + 4: 50% ) × 5

なお、当初は5も割合で重ね合わせていましたが、乗算で重ね合わせた方が見やすかったため、変更しました。

コメント