標高タイルの作り方~誰でも簡単に作れる標高タイル~

標高タイルは地形データをウェブで効率的に配信・利用するための重要な技術です。

本記事では、誰でも簡単に標高タイルを作成できるツール「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を指定してください。

コメント