japan-dem

Crates.iojapan-dem
lib.rsjapan-dem
version0.1.3
created_at2025-05-27 14:57:12.288493+00
updated_at2025-05-30 15:40:47.339982+00
descriptionA CLI tool to convert Japan DEM XML to GeoTIFF.
homepage
repositoryhttps://github.com/nokonoko1203/japan-dem
max_upload_size
id1691219
size155,648
Satoru Nishio (nokonoko1203)

documentation

README

japan-dem

基盤地図情報DEM XMLをGeoTIFFに変換するRust製CLIツール

概要

本ツールは、国土地理院が提供する基盤地図情報数値標高モデル(DEM)のXMLファイルやZIPアーカイブを、高速並列処理でGeoTIFF形式に変換します。

主な機能

  • 高速並列処理: マルチスレッドによる高速変換(最大3倍の速度向上)
  • ZIPファイル対応: 圧縮されたDEMデータを直接処理
  • タイル結合: 複数のDEMタイルを1つのGeoTIFFに統合
  • Terrain-RGB出力: Web地図用のRGBエンコード標高データ
  • Python バインディング: QGIS プラグインなどでの利用

対応フォーマット

  • DEM5A/B/C(5mメッシュ)
  • DEM10A/B(10mメッシュ)
  • DEM1A(1mメッシュ)
  • ZIPアーカイブ(複数XMLファイルを含む)

インストール

crates.io からのインストール(推奨)

cargo install japan-dem

ソースからのビルド

# リポジトリのクローン
git clone https://github.com/nokonoko1203/japan-dem.git
cd japan-dem

# リリースビルド
cargo build --release

# バイナリは target/release/japan-dem に生成されます

使用方法

基本的な使い方

単一XMLファイルの変換

japan-dem input.xml -o output_dir

ZIPファイルの変換

japan-dem input.zip -o output_dir --threads 8 --merge

ディレクトリ一括変換

japan-dem input_dir/ -o output_dir --threads 8

コマンドラインオプション

オプション 説明 デフォルト
-o, --output <DIR> 出力ディレクトリ(必須) -
--threads <NUM> 並列処理スレッド数 CPUコア数
--merge 複数XMLを1つのGeoTIFFにマージ false
--terrain-rgb Terrain-RGB形式で出力 false
--min-elevation <NUM> 最小標高値(手動設定) 自動
--max-elevation <NUM> 最大標高値(手動設定) 自動

Terrain-RGB形式での出力

Terrain-RGB形式は、標高値をRGB値にエンコードした8bit形式で、Web地図タイルなどで利用されます。 出力されるGeoTIFFは通常のGeoTIFFと同じ地理参照情報を持ち、GISソフトウェアで利用可能です。

# Terrain-RGB形式で出力(ファイル名: メッシュコード_terrain_rgb.tif)
japan-dem input.xml -o output_dir --terrain-rgb

Python バインディング

QGIS プラグインやPythonスクリプトからの利用が可能です。

インストール

# maturin でビルド
maturin develop

# または
pip install japan-dem

使用例

import japan_dem

# XMLファイルを解析
dem_tile = japan_dem.parse_dem_xml("input.xml")
print(f"Mesh code: {dem_tile.metadata.mesh_code}")
print(f"Size: {dem_tile.rows}x{dem_tile.cols}")

# Terrain-RGB GeoTIFFとして出力
japan_dem.dem_to_terrain_rgb(dem_tile, "output.tif")

ライセンス

MIT License

Commit count: 38

cargo fmt