全国Q地図MapLibre版において、標高タイルからCS立体図を作成する機能を開発しました。
CS立体図の作成方法は、考案者の戸田様により公開されていますが、具体的なパラメーターや色(RGB値)については、オフィシャルなものはなく、用途によって適宜調整することとなっているようです。
全国Q地図MapLibre版は標高タイルからCS立体図を生成する仕組みのため、どの縮尺でも見やすくなるよう検討を行いました。
ここでは、全国Q地図MapLibre版のCS立体図表示機能実装に当たって、縮尺に応じた最適なパラメーター等を検討した結果の要点を紹介します。なお、ソースコードはGitHubで公開していますので、より詳細な情報は実際のコードを参照してください。
参考にした文献等
まず、CS立体図の作成方法に参考とした文献等を紹介します。パラメーター等は、以下の文献等をベースに調整を行いました。
- 戸田堅一郎「安全な路網計画のための崩壊危険地ピンポイント抽出技術-CS立体図を用いた崩壊危険地形判読技術の開発-」『長野県林業総合センター研究報告』32号、長野県林業総合センター、2018
CS立体図の作成方法が詳しく解説されています。 - 戸田堅一郎「CS立体図を使った地形判読マニュアル― 解説―」(株)ジオ・フォレスト、2024年6月閲覧
CS立体図の作成方法が図で解説されています。 - Pacific Spatial Solutions 株式会社「CS立体図作成ツール(FME版)」G空間情報センター
マニュアル(PDFファイル)に色の割当が記載されています。 - 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 【立体図】 標高レイヤー | 0m | 3,000m | ■ (100,100,100) | – | ■ (255,255,255) |
2 【立体図】 曲率レイヤー | -0.25/係数 | 0.05/係数 | ■ (42,92,170) | – | ■ (255,255,255) |
3 【立体図】 傾斜レイヤー | 0° | 60° | ■ (255,255,255) | ■ (189,74,29) | |
4 【曲率図】 曲率レイヤー | -0.20/係数 | 0.20/係数 | ■ (0,0,255) | ■ (255,255,240) | ■ (255,0,0) |
5 【曲率図】 傾斜レイヤー | 0° | 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も割合で重ね合わせていましたが、乗算で重ね合わせた方が見やすかったため、変更しました。
コメント