GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - NyohoSampleCodes/GeoTiffTest

BranchesTags
Open more actions menu

Latest commit

 

History

2 Commits
2 Commits

Folders and files

NameName
Last commit message
Last commit date
scripts
scripts
 
 
.gitignore
.gitignore
 
 
AGENTS.md
AGENTS.md
 
 
README.md
README.md
 
 
pyproject.toml
pyproject.toml
 
 
uv.lock
uv.lock
 
 

Repository files navigation

GeoTIFF Terrain for Blender

国土地理院の地球地図全球版GeoTIFFから、標高を滑らかなメッシュへ変換し、 樹木被覆率で色付けしたBlenderシーンを生成します。

デフォルトでは日本周辺(東経122~146度、北緯24~46度)を320×260頂点で生成します。 標高GeoTIFFは水域値を除外して双線形補間し、Blender側でSubdivision Surfaceを 適用します。植生は水域・欠損値の混入を避けるため最近傍で再サンプリングします。

1. データをダウンロード

./scripts/download_data.sh

次のファイルが data/raw/ に保存されます。

  • gm_el_v1.tif: 地球地図全球版 標高第1版
  • gm_ve_v2.tif: 地球地図全球版 樹木被覆率第2版

既に正しいサイズのファイルがある場合、スクリプトは再ダウンロードしません。 data/ は .gitignore の対象です。

2. Blender用Pythonを生成

uv sync
uv run python scripts/generate_blender_scene.py

生成先は generated/create_scene.py です。標高と植生のサンプル配列は圧縮して Pythonファイル内へ埋め込まれるため、Blender側にRasterioは不要です。

範囲や解像度は変更できます。

uv run python scripts/generate_blender_scene.py \
  --bounds 129,30,146,46 \
  --width 400 \
  --height 320 \
  --projection mollweide \
  --vertical-exaggeration 6

--bounds はWGS84の WEST,SOUTH,EAST,NORTH です。頂点数を増やすと細部が 増えますが、生成時間、Blenderのメモリ使用量、Subdivision後の面数も増えます。

--projection では次の平面投影を選べます。

  • equirectangular: 正距円筒図法。地域図の比較用
  • mercator: メルカトル図法。緯度は約±85.0511度まで
  • mollweide: モルワイデ図法。全球を連続した楕円で表示
  • goode: グード・ホモロサイン図法。全球表示時は断裂部を面で接続しない

地図の中央地点は --center-lat と --center-lon で指定します。中央経線を --center-lon へ変更し、指定地点の投影座標をBlender平面の原点へ置きます。

北緯34度23分44秒、東経132度27分13秒を中心にする例:

uv run python scripts/generate_blender_scene.py \
  --bounds=-180,-90,180,90 \
  --projection goode \
  --center-lat 34.395555556 \
  --center-lon 132.453611111 \
  --width 4320 \
  --height 2160 \
  --subdivision-levels 0 \
  --output generated/create_global_hiroshima_centered.py

全球を生成する例:

uv run python scripts/generate_blender_scene.py \
  --bounds=-180,-90,180,90 \
  --width 720 \
  --height 360 \
  --projection goode \
  --output generated/create_global_goode_scene.py

3. Blenderシーンと画像を生成

blender --background --python generated/create_scene.py -- \
  --output renders/japan_terrain.blend \
  --render renders/japan_terrain.png

--render を省略すると .blend のみ保存します。Blender 4.xを想定しています。

データの扱い

  • 標高の水域値 -9999 は補間対象から除外し、標高0mとしてメッシュ化します。
  • 樹木被覆率の水域値 254 と欠損値 255 は0%として色付けします。
  • 地図の横幅を一定のBlender単位へ正規化し、緯度による東西距離の縮みを反映します。
  • 投影座標はPyProjで計算し、Blender用Pythonへ頂点座標として埋め込みます。
  • --vertical-exaggeration は実寸比に対する高さの強調率です。

出典

データ配布ページ: 国土地理院 地球地図全球版

本プロジェクトの生成物では、標高および植生データの利用条件に従い、次の出典を Blenderシーン内のメタデータと表示用テキストに記録します。

Source: Geospatial Information Authority of Japan, Chiba University and collaborating organizations.

About

No description, website, or topics provided.

Resources

Readme
Activity
Custom properties

Stars

0 stars

Watchers

0 watching

Forks

0 forks
Report repository

Releases

Packages

Contributors

Languages

You are visitor 01402520 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.