見出し画像

実在の地形をMinecraftで再現02 ーGISによる標高データ加工ー

こんにちは。
今回から何回かに分けては実際のデータ作成の流れをお話します。
その2は、QGISによる標高(DEM)データの加工の流れについてです。


準備するもの

  • QGIS バージョンは最近のもの(3.0系)なら何でもいいと思いますが、私はLTR(Long Term Release)の3.22.11-Białowieżaを使いました。フリーソフトですのでどなたでもご利用いただけます。※ArcgisProでの操作について次回以降で説明します。少しだけ手間が減ります。

  • 標高(DEM)データ これも何でもいいと思いますが10mのDEMである国土地理院のDEMを元に加工したコンサベーションGISコンソーシアムジャパン(CGISJ)の標高緯度経度データを使いました。

  • 行政界データ これはなくてもいいのですが、DEMの場所を決めるときの目安にするには便利です。国土数値情報の行政区域を元に加工したコンサベーションGISコンソーシアムジャパン(CGISJ)の行政界2021データを使いました。

変換手順

作業概要

前回の再掲ですが以下の通りです。今回説明するのは4までです。
以下の作業の説明で数字はこの項目別にはなっていないので、注意してください。



  1. DEMを必要範囲で切り出す。複数範囲にDEMがまたがるならモザイク。

  2. DEMの投影法を緯度経度なら投影座標に変換する(しなくても良い)。

  3. データ型が浮動小数点ならば、符号なし整数値にする。

  4. データをWorldPainterで扱える形式にexportする。GEOTIFFでよい。

  5. WorldPainterにそのファイルを取り込む。必要ならば地表の装飾(樹木や水系など)を加える。

  6. WorldPainterでworldデータをexportする

  7. Minecraftで開いて確認する



1)QGISにデータを表示し参照座標系を変換

QGISの設定によりますが、参照座標系が緯度経度になっている場合は、投影座標系にしておくと、最終データの縦横比がm単位で把握しやすくなるのでお薦めです。ただしその必要性がなければ設定する必要はありません。
プロジェクトのプロパティから変更できます。ここでは平面直角座標9系JGD2011(EPSG:6677)にしています。
これによって横幅が少し縮まったようになります。
ここでは東京都と神奈川県を表示していますが、他の地域であれば当然参照座標系も違います。

以降、標高緯度経度データには、コンサベーションGISコンソーシアムジャパンが、国土地理院長の承認を得て、同院発行の基盤地図情報数値標高モデルデータを元に編集・作成したものを使用しています。(測量法に基づく国土地理院長承認(使用)R3JHs592。)

参照座標系 JGD2011(EPSG:6668)
参照座標系変換後 平面直角座標 9系 JGD2011 (EPSG:6677)
参照座標系の変換

2)DEMデータをモザイクする

今回は県境にある東京都八王子市を対象にします。根拠はありませんが、首都圏で市街地と山があり、県境もあるということで選びました。
東京都の範囲でDEMを選ぶと、勿論神奈川県は含まれず、画面の四角の中に(ここでは左下)は欠損がでます。CGISJの標高緯度経度は県境から4kmの範囲を含めていますが、それでもやはり空白は出ます。

標高緯度経度データ東京都のみ

このままデータがなくても、その後の処理でダミー地形を入れたり、「奈落」にすることはできるのですが、せっかくなのでそこもリアルにするため神奈川県のDEMも表示します。表示しただけでは意味がないので結合(モザイク)します。
ラスタ>その他>結合として、入力レイヤに2つのDEMを選びます。他は特に設定しません。海の近くなどでnodataエリアが問題になる場合は詳細パラメーターでnodataを-9999にしておくといいです。
実行を押せば、一時ファイルとして結合され、「出力レイヤ」というラスタデータが表示されます。

ラスタの結合(モザイク)

このレイヤだけの表示にし、縮小したりして、結合できていることを確認します。その場合は再度八王子市のみ、参照座標系変換後(ここでは平面直角座標9系 JGD2011 (EPSG:6677))の範囲で表示してください。
表示範囲が次の出力範囲になります。

3)結合データを表示範囲で投影変換

この状態ではラスタデータはまだ緯度経度のままなので、投影変換をしてm単位のデータにします。Minecraft側はただグレイスケールのTIFのデータとして認識するだけですから、この処理は必須ではないのですが、頭の中の縦横比の計算が楽になるので、お薦めです。
ラスタ>投影法>再投影 として、開いた画面での設定例です。
このとおりである必要はないのですが、入力レイヤ、変換元CRS、ラスタのCRS(出力データのCRSの意味)、リサンプリング法、出力のデータ型、出力ファイルの矩形範囲、再投影したラスタファイル(出力ファイル名)などを設定しました。

ラスタ再投影の設定例

リサンプリング法にはバイリニアを選びました。デフォルトは最近棒ですが、このまま再投影してしまうと場合によってはぎざぎざになってしまいますので、補間しています。ただこれも微々たるものなので不デフォルトのままでもいいです。
出力のデータ型
にはUint16(符号なし長整数型)を設定しています。元のデータは浮動小数点(Float32)ですが、WorldPainterで認識できるのが0以上の整数のTIFファイルだけですので、ここの設定は地味に大事です。データに負があった場合は、それは下駄を履かせる(負にならないように数値を足す)必要がありますが、ここでは省略します。

出力ファイルの矩形範囲の数値には、右のアイコンをクリックし、キャンバス領域を使用とすれば自動で入力できます。ここに表示範囲を絞り込み、参照座標系を変えておいた意味がでてきます。

出力ファイルの矩形範囲

最後のデータはこのようになります。八王子市の範囲のみで切り出されていることがわかります。コントラストもその範囲のみになっていますので色の強調がされています。

再投影後のDEMデータ

レイヤを見てみると出力データ(DEMHachioji)の最大最小値に違いがあるのがわかります。ここでは最大が852m、最小が54mであり、もとの東京のエリア(最大が2015.7m、最小が-3.8)から減っています。
比高も2000mが800mになっています。Minecraftで表現できる高さが384ですから、切り出し後でも384÷800で1/2にはなりますが、もともとの1/5よりは再現度が上がるわけです。
※本来の行政界より広めのデータですので公表値とは違います。ご注意ください。

再投影後のDEMデータの値の範囲

まとめ

今回はMinecraftで使うための、DEMの準備についてQGISで行う方法を紹介しました。一見ややこしいですが、慣れればすぐ終わると思います。
次回の予定としては、このデータをWorldPainterに取り込む方法を紹介します。次回で(やっと?)Minecraftに到達できるようになります。
ArcGISProでも同じことができます。再投影の部分が一度にすみます。これについては今後紹介する予定です。

最後に

ここまでご覧いただき、ありがとうございました。

普段は北海道に本拠地を置くNPOに所属し、環境保全を主な題材としてGISやリモセンに関する仕事をしています。
コンサベーションGISコンソーシアムジャパン の活動もその1つです。
この分野の仕事や活動でなにかお困りのある方、ご相談ごとのある方など、是非コメントをお寄せいいただくか、上記WEBサイト掲載のメールアドレスまでメールをお寄せください。

コンサベーションGISコンソーシアムジャパンの活動及びこのnoteでの活動はボランティアで行っているのですが、何分資金が不足しています。
もしサポートしてもいいなという方がいらっしゃいましたら、よろしくお願いします。

この記事が気に入ったらサポートをしてみませんか?