標高タイルは地形データをウェブで効率的に配信・利用するための重要な技術です。
本記事では、誰でも簡単に標高タイルを作成できるツール「gdal2NPtiles.py」について解説します。
標高タイル規格と数値PNGタイルの優位性
現在、主に使われている標高タイルの規格は「数値PNGタイル」、「Mapbox Terrain-RGB」、「Terrarium」の3つです。
これらの規格はRGBの値から標高値を算出する方法や、標高分解能、表現可能な範囲などが異なります。
数値PNGタイルは、以下の点で他の規格より優れています。
- 適切な標高分解能0.01mで、地球上の海陸の地形をカバーできる(約±83,886m)
- Terrain-RGBは標高分解能が0.1mと不足する。これにより、特にズームレベル15(水平解像度5m相当)以上の高解像度データでは、Terrain-RGBでは、傾斜量図やCS立体図などを生成した際、緩傾斜地形に等高線状のラインが現れてしまう問題があります。
- Terrain-RGBは、-10000m以下の海底地形を表現できない。
- 無効値が明確に定義されている(アルファチャンネル0)
- 測量範囲外や航空レーザ測量で欠測となる水域などを無効値として明確に区別できる。
詳細は、以下の記事を参照してください。
標高タイルの規格の比較 ~なぜ全国Q地図は数値PNGタイルを採用するのか~
標高タイルの作り方 – gdal2NPtiles.pyの紹介
数値PNGタイルを簡単に作成できるよう、「gdal2NPtiles.py」というツールを開発しました。これは標準のgdal2tiles.pyを拡張して、高品質な数値PNGタイルを生成できるようにしたものです。全国Q地図で配信している標高タイルの作成にもこのツールを利用しています。
このツールは、オープンソースでGitHubに公開しているため、誰でも簡単に標高タイルを作れます。
主な特徴
- DEMデータ(GeoTIFF形式、VRTファイルも可)から数値PNGタイルを生成
- 適切なリサンプリング処理により高品質なタイルを作成
使用方法
1. 準備
- GDALとPythonがインストールされた環境を用意
- GitHubからgdal2NPtiles.pyをダウンロード
- 入力データとしてDEM(数値標高モデル)のGeoTIFFファイルを用意
2. 基本的な使い方
python gdal2nptiles.py --numerical input_dem.tif output_folder
3. おすすめの実行例
複数のGeoTIFFファイルを結合して標高タイルを作成する場合:
# 指定したディレクトリ内の全ての.tifファイルをVRTに結合
gdalbuildvrt merge.vrt input_folder\*.tif
# 標高タイル作成
python gdal2NPtiles.py --numerical merge.vrt output_folder -z 10-18 --xyz --processes=16
4. オプションの解説
--numerical
: 数値PNGタイル生成モードを有効にする--numerical-resolution
: 標高分解能を設定- デフォルト: 0.01mで通常はOKなので、省略可。
-z
: 生成するズームレベルを指定(例:-z 10-18
)- –xyz: XYZタイルを生成(付けない場合、TMSが生成される)
--processes
: 並列処理数を指定(例:--processes=
16)
作成した標高タイルの確認(全国Q地図MapLibre版の利用)
全国Q地図MapLibre版では、任意の標高タイルを読み込んで、可視化することが可能ですので、作成したタイルの確認に利用できます。
サイドバーの標高データで、「【外部タイル】」を選択し、タイルのURLを指定してください。

コメント