DEM(数値標高モデル)から水線・集水域を自動抽出してPDFに出力するGUIアプリケーションです。
登山・沢登り・地形読図などのフィールドワーク用印刷地図の作成を目的として開発されました。
- 水線抽出:GeoTIFF DEMをD8流向法で解析し、谷線・河川を1ピクセル幅のスケルトンとして抽出
- 集水域色分け:流域ごとに色分けしたオーバーレイをグラフ彩色で隣接色重複なく生成
- GSI水線補完:国土地理院標準タイル(zoom 15)から青色水線を自動取得し、DEMの本流を補完・マスク
- PDF出力:
- Page 1:地理院地図(標準 / 淡色)+水線オーバーレイ
- Page 2:集水域色分けレイヤー(オプション)
- Page 3:SVGカットレイヤー(レーザーカッター・プロッター用)
- 磁北線・経緯度グリッド:偏角自動計算、任意間隔で描画
- 用紙サイズ:A4 / A3 縦横対応、25,000分の1相当スケール固定
- Python 3.10 以上
- Windows 10/11 または Linux(macOS 未検証)
- インターネット接続(GSI タイル取得時)
git clone https://github.com/<your-username>/water_line_mapper.git
cd water_line_mapper
pip install -r requirements.txtrequirements.txt を参照してください。主なものは以下の通りです。
| パッケージ | 用途 |
|---|---|
numpy |
配列演算 |
scipy |
画像フィルタ・距離変換 |
rasterio |
GeoTIFF 読み込み |
pysheds |
D8 流向・集水域計算 |
scikit-image |
スケルトン化 |
Pillow |
画像合成・描画 |
reportlab |
PDF 生成 |
svglib |
SVG → PDF 変換 |
geomag |
磁気偏角計算 |
requests |
タイル取得 |
python water_line_app.py- DEM ファイル選択:GeoTIFF 形式の数値標高モデルを選択
- 水線設定:
- 流積閾値(小→詳細、大→主要河川のみ)
- ギャップ追跡距離(尾根を越えずに繋ぐ最大ピクセル数)
- 集水域色分け(オプション)
- GSI 水線マスク(オプション)
- 💧 水線を計算 ボタンを押してプレビュー確認
- PDF 出力設定:用紙・地図タイル・磁北線・グリッドを設定
- 📄 PDF を生成 ボタンで出力
アプリ内蔵のWebインターフェースから直接取得できます(推奨):
- GUIの 「🗺 地図から範囲選択」 ボタンをクリック
- ブラウザが開くのでLeaflet地図上で対象範囲を選択
- 「GeoTIFF を作成・ダウンロード」 ボタンを押すと自動でDEMを生成
- ダウンロード完了後、GUIに自動ロードされます
外部サービスやアカウント登録は不要です。国土地理院のDEMタイルを自動取得・結合します。
| パラメータ | 推奨値 | 説明 |
|---|---|---|
| 流積閾値 | 300 | 小さいほど細流まで描画。50=全谷線、1000=主要河川のみ |
| ギャップ追跡距離 | 50 px | 尾根除去で途切れた水線を繋ぐ最大距離 |
| 集水域区切り倍率 | 5 | 流積閾値 × 倍率 以上の流路でセグメント分割 |
water_line_mapper/
├── water_line_app.py # GUIアプリケーション(tkinter)
├── water_line_core.py # 計算エンジン
├── requirements.txt
├── README.md
└── docs/
└── screenshot.png
- 前処理:メディアンフィルタ(5px)+ガウシアン(σ=1.0)でノイズ除去
- D8流向計算:pysheds で pit fill → resolve flats → flowdir → accumulation
- GSIバーニング:GSI水線座標に沿って DEM を掘り下げ(
cell_m × 2)後、再 D8 計算(集水域精度向上) - 水線トレース:平面曲率(Plan Curvature)で尾根ピクセルを除去しつつ D8 直接追跡(1px 幅保証)
- スケルトン化:scikit-image
skeletonizeで細線化 - GSIマスク:GSI水線バッファ(±9px)外のDEM線を除去、DEM支流をGSI本流へスナップ接続
- 集水域計算:バーニング済み fdir を使った BFS 逆伝播、GSI水線をバリアとして越境を防止
- グラフ彩色:隣接セグメント間の貪欲彩色で隣接色重複を排除
MIT License — 詳細は LICENSE を参照してください。
地理院タイルの利用には国土地理院コンテンツ利用規約が適用されます。
- 標高データ:国土地理院
- 地図タイル:国土地理院標準地図・淡色地図
- D8 流向計算:pysheds
