How to stack Layers¶
DEM Layer を重ね合わせる場合や、 DEM Layer を重ね合わせる例を示します。
DEM Layer の重ね合わせ¶
下図は、地表 に対して2枚の DEM Layer を重ねている模式図です。 1マスが DEM の画素として、地形の高さを表現しています。
それぞれの Layer の NoData 部分や、範囲外の部分は透過のように下にある Layer の高さで地形が表示されます。
まず地表となる DEM (Base) の上に DEM Layer (Layer1) が重なり、その上に DEM Layer (Layer2) が積み重なります。
地形の高さ値は上の Layer が優先され、NoData の部分は下にある Layer や DEM の高さ値になります。
欠損 DEM の対処例¶
上記の重ね合わせの特性を利用して、欠損がある DEM Layer に対して見た目の違和感を減らす例を示します。
下図の LayerA は連続的に欠損が発生している例です。
点群から GeoTIFF を生成した場合に、点の密度の影響でこのようになることがあります。
このまま表示すると欠損部分は下の Layer の高さ値となり、凸凹とした地形になります。
そのため、 LayerA を平均化した LayerB を用意します。
点群から GeoTIFF を生成する場合に点の範囲を指定することができる場合、範囲を大きくすることで欠損がない(代わりに精度が低下) LayerB を生成することができます。
Base に対し、まず LayerB を重ね、その後 LayerA を重ねることで、 LayerA の欠損部分の地形高さは LayerB の値となり、 LayerA と近い値になることで凸凹を軽減できます。
下に実際のデータに対して対処した例を示します。
| 欠損がある Layer のみの場合 | 平均化 Layer を追加した場合 |
|---|---|
![]() |
![]() |
不正なDEMの補正例¶
羽田空港の一部は、 DEM の値が一定でないため波打っているように表示されています。 これを平坦な DEM を Layer で重ねることにより平坦にする例です。
領域を示す部分が 高さ0 となっているデータを Mapray Cloud にアップロードし、Mapray JS で DEM Layer として重ねて表示したものが 平坦化後の空港 です。
| 領域 | 平坦化前の空港 | 平坦化後の空港 |
|---|---|---|
![]() |
![]() |
![]() |
このように、DEM Layer で重ねることで不正な DEM の部分を補正することができます。
実行結果¶
高さ0の GeoTIFF 作成方法¶
参考として、高さ0の GeoTIFF を作成する方法を紹介します。
1. GeoJSON の用意¶
領域は GeoJSON を利用して定義します。
高さ値は変換時に置き換えるので不要ですが、入っていても問題ありません。
座標系は WGS84 で作成してください。
2. GeoTIFF への変換¶
Mapray Cloud にアップロードできるように GeoTIFF 形式に変換します。 変換には gdal_rasterize を利用します。
下記は sample.json を sample.tif に変換する例です。
gdal_rasterize -burn 0 -a_srs EPSG:4326 -ot Float32 -a_nodata -9999 -tr 0.00000898315284119521 0.00000898315284119521 sample.json sample.tif
-burnの後の0が高さの値になります。他の値にすることで平坦な高さを変更できます。-a_srsは必ずEPSG:4326(WGS84) としてください。-otは必ずFloat32としてください。-a_nodataは指定した値の部分は透過処理となります。-trは出力される画像解像度です。例ではWGS84の約 \(1m\) 単位の値として指定しています。
3. Mapray Cloud へアップロード¶
作成した GeoTIFF を Mapray Cloud にアップロードします。 詳細は Mapray Cloud ドキュメント を参照してください。




