はじめに
前回の記事 「AW3D30 (ALOS World 3D - 30m) からRGB標高タイルを作る」で、JAXAさんのAW3D30 (ALOS World 3D - 30m) からRGB標高タイルを作る方法を確かめました。
今回はDockerを使って作業するツールを作ったので、ダウンロードしたデータから簡単にRGB標高タイルを作る方法を試します。
環境
私の環境は以下のものでした。Dockerとgitが使えれば大丈夫だと思います。
- Windows 10 Enterprise
- Powershell
- git version 2.25.0.windows.1
- Docker version 20.10.8
(windowsのgitでは最初のレポジトリをダウンロードしてくるだけなので、なければないでレポジトリからダウンロードしましょう。)
手順
Step 1. データの準備
JAXA/EORCさんのページから5度×5度の標高ZIPデータをダウンロードしてきます(ユーザー登録必要)。今回の例では、四国と紀伊半島を含む2つの区画をダウンロードしました。
ダウンロードページ(英語): https://www.eorc.jaxa.jp/ALOS/en/dataset/aw3d30/aw3d30_e.htm
※ダウンロードページは日本語もあると思います。
Step 2. 作業場所の準備
空き容量が十分あるところで、作業スペースを作ります。AW3D30のRGB標高データ作成のためのテンプレートを作ったので、そのレポジトリをクローンしてくればいいと思います。そして、そこにダウンロードしたZIPファイルを保存しておくsrcフォルダを作ります。
cd hoge
git clone https://github.com/ubukawa/RGB-AW3D30
cd RGB-AW3D30
mkdir src
できたらsrcフォルダにダウンロードしたファイルを入れておきます。
Step 3. Dockerイメージの作成・起動
作業のためのDocker imageを作成し、Dockerコンテナを立ち上げます。Docker imageの作成は二度目の作業からは省略できると思います。
3-1 Docker build
必要なツールを入れるためのDockerfileがubukawa/rgbifyにあるので(unvt/rgbifyをフォーク)、それをクローンしてからビルドします。下の図ではDocker imageの名前を間違って作ってしまったのでやり直しました。
git clone https://github.com/ubukawa/rgbify
cd rgbify
docker build -t unvt/rgbify:ubukawa .
cd ..
3-2 Docker run
そして、Docker イメージができたら起動します。Docker runをするとき、作業している場所を/dataとしてコネクトしておくことを 忘れない/確認する ようにしましょう。
docker run -it --rm -v ${PWD}:/data unvt/rgbify:ubukawa
cd /data
Step 4. RGB標高タイル作成
srcフォルダにファイルがあることを確認したら、変換のためのスクリプトを実行します。
前回の記事で紹介した各ステップ(ZIP解凍、画像のマージ、RGB標高タイル作成(mbtiles形式)、PNGタイルへの変換)が入っていますので、あとはデータが出来るのを待ちましょう。上手くいくと zxy というフォルダにタイルが出来てきます。
./all.sh
かかる時間
ダウンロードしてきたデータ数、PC(Docker)のメモリ等により時間が変わると思います。私が今回作業した2つのZIPファイルはだいたい30分でZXYタイル(ZL9-11)ができました。(海が多いので処理は少し早めかもしれません。)
調整するには
出来るPNGタイルのフォルダの名前や、タイルの最大・最小ズームレベルはsll.shのなかのパラメータをテキストファイルで編集すればOKです。ズームレベルについては、all.shの中で最初に指定しているのは9~11にしています。
中間ファイル
この作業ではいくつか中間ファイルができます。作業が終われば消しても大丈夫です。
- 01_unzipのファイル → 解凍したファイル
- input.tif → タイル化するためにダウンロードしたファイルにある「~_DSM.tif」をマージしたもの。ピクセル数に応じてサイズが大きくなりがちです。
- out.mbtiles → RGB標高タイル(mbtiles形式)
Step 5. ホスト
zxyフォルダにタイルができたので、あとはウェブサーバーなどでホストすればOKです。png画像タイルは静的なホストで大丈夫なのでGitHubページなどのホストで十分です。
まとめ
AW3D30 (ALOS World 3D - 30m) のDEMデータからzxyのRGB標高タイルを簡単に作る方法をまとめました。
参考
- AW3D30 (ALOS World 3D - 30m) からRGB標高タイルを作る https://qiita.com/T-ubu/items/e32e51ee85577d733546
- GitHub Repository