2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

CS立体図の "色" について考えてみた

Last updated at Posted at 2025-12-04

これは FOSS4G Advent Calendar 2025 の 5 日目の記事です。

large.jpeg
基盤地図情報 数値標高モデル(国土地理院)を加工して作成

はじめに

世の中には「◯◯マップ」「◯◯地図」と名の付くものがいくつもありますが、Google Maps の次によく使われているのは CS立体図 ではないでしょうか(個人の感想です)。

CS立体図は、数値標高モデル(DEM)から計算される 曲率(Curvature)傾斜(Slope) の情報を組み合わせて、地形の微細な凹凸を視覚的・直感的に強調し、判読を容易にするために開発された地形表現図法です(詳しくは、下記をご覧ください)。

CS立体図は、さまざまなツールで作成できます。どのツールを使っても、凹凸が赤と青で表現されたほぼ同じような色のマップが作成されますが、ツールごとの微妙な色の違いに違和感を覚える方も少なくないようです。

前置きが長くなりましたが、この記事では、CS立体図を作成できる主要なツールにおける「色の割り当て方法」について、それぞれの特徴や違いを整理します。

この記事では、各ツールによる色の違いを確認することを目的としており、特定のツールや色の正しさを評価・主張するものではありません。

基準はあるのか

FOSS4G SHINSHU 2025 にて、FME版ツールの仕様書にカラーパレットや各色の合成比率が詳しく記載されているという情報を得ました。

FME版ツールのカラーパレットと合成比率

FME版ツールでは、表に示すカラーパレットと合成比率に基づいて色が割り当てられています。

スクリーンショット 2025-12-04 9.00.55.png

FME 版のツールでは、各レイヤがほぼ同じ比率で構成されています。

色合いを見てみると、曲率B は 青 → 黄 → 赤 へと段階的に変化するのが特徴で、全体として暖色の存在感が強く、コントラストもはっきりとした仕上がりになる印象です。

また、FME版ツールでは、色を合成したあとに R, G, B の値のばらつきを 0〜255 のフルレンジに引き伸ばす「ストレッチ処理」を行なっています。

このストレッチ処理によるメリットとして、以下が挙げられます。

  • 色の濃淡がより明瞭になるため、微妙な明るさの違いが強調され、地形の変化を捉えやすくなる
  • 低地や台地など、高低差が少なく元の RGB 変化が乏しい場所でも、色幅を最大限に引き出すことで色彩表現が豊かになる
  • 色と陰影のコントラスト向上により立体感が増すため、地形を把握しやすくなる

検証したい...!

筆者の環境ではFME版ツールを直接利用できないため、仕様書を参考に csmap-py の着色方法をこちらに置き換えて検証することにしました。

FME版ツールのカラーパレットと各色の合成比率に合わせたものが、下記のリポジトリです。FME版ツールの仕様書に沿って、色の鮮明化のためのストレッチ処理や、Nodata セルの透過にも対応しています。

なお、csmap-py は広く利用されているため、色の変更に関する PR を出してよいものか自信が持てず、現在は Fork して利用しています。

実際にCS立体図を作成してみると、冒頭の画像のような図が出来上がります。

その他、CS立体図を作成できるツールと色の特徴

csmap-py

csmap-py を使うと、次のようなCS立体図を作成できます。

out.jpeg

csmap-py では、図に示すカラーパレットと合成比率に基づいて色が割り当てられています。
この図は、ソースコード内の色定義と合成比率をもとに、FME版ツールと同様のイメージになるよう作成したものです。

csmap-py.png

csmap-py により作成したCS立体図は 傾斜B の比率が高いため、相対的に暗めのトーンとなる傾向があります。その他のレイヤは比較的淡い色調で構成されており、落ち着いたトーンにまとまっているのが特徴です。

また、FME版のツールと比較して 曲率B のカラーパレットでは黄色の成分が抑えられているため、色相が過度に変化せず、全体として落ち着いた印象に仕上がっています。

ArcGIS Pro

ArcGIS Pro は商用のGISソフトウェアです。

こちらのソフトウェアでは、標高データから傾斜角レイヤと曲率レイヤを作成し、次の表のようにシンボル設定をして重ね合わせることによりCS立体図を作成できます。

作成の過程でグループ化したレイヤにも 50% 透過度を適用しているため、完成したCS立体図はやや落ち着いた、少し暗めのトーンに仕上がります。

レイヤ 配色 透過
傾斜角(曲率図) 白 → 黒 50%
曲率(曲率図) 青 → 赤 なし
曲率(立体図) 青 → 白 50%
傾斜角(立体図) 白 → 茶 50%
標高(立体図) 黒 → 白 なし

全国Q地図

全国Q地図 は、CS立体図に限らずさまざまな地図を閲覧できるウェブサイトです。山と地図 様により管理・運営されています。

こちらのサイトで閲覧できるCS立体図は、他のCS立体図を参考に独自の割合で各レイヤを重ね合わせ、より見やすい色になるよう調整されているようです。

判読しやすいCS立体図を作成するために

csmap-py にはさまざまなオプションが用意されており、パラメータを少し変えるだけで、地形の強調具合を調節できます。

options
  -h, --help            show this help message and exit
  --chunk_size CHUNK_SIZE
                        chunk size as pixel, default to 1024
  --max_workers MAX_WORKERS
                        max workers for multiprocessing, default to 1
  --gf_size GF_SIZE     gaussian filter size, default to 12
  --gf_sigma GF_SIGMA   gaussian filter sigma, default to 3
  --curvature_size CURVATURE_SIZE
                        curvature filter size, default to 1
  --height_scale HEIGHT_SCALE HEIGHT_SCALE
                        height scale, min max, default to 0.0 1000.0
  --slope_scale SLOPE_SCALE SLOPE_SCALE
                        slope scale, min max, default to 0.0 1.5
  --curvature_scale CURVATURE_SCALE CURVATURE_SCALE
                        curvature scale, min max, default to -0.1 0.1

さらに、csmap-py の変換ロジックを利用した CSMap Plugin(QGISプラグイン)でも、同様に各種パラメータを調整できます。

仕上がりを事前に確認したい場合は、プラグインの「プレビュー」機能を使うことで DEM データの一部分だけを高速に処理することができます。パラメータを微調整しながら最適な表現を探したい方にとって、非常に便利な機能です。

スクリーンショット 2025-12-04 19.39.39.png

まとめ

CS立体図は、地形表現としての美しさに加え、手法そのものがオープンであること、そして FOSS4G を活用した多様な作成ツールが開発され、コミュニティの中で発展を続けている点も非常に魅力的だと思います。FOSS4G SHINSHU 2025 での 岩崎 氏や 室木 氏の発表からもその熱量と可能性の大きさを改めて感じました。

CS立体図の "色" には関心があるので、引き続き追っていきたいと思います。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?