以 Mapbox Terrian-RGB 模型發布高程數據
Step 1 安裝 Python3
# 下載 Python3 安裝包
# 解壓縮 .tgz 文件
tar -xvf Python-3.9.6.tgz
# 編譯安裝 Python3
./configure
make
make install
Step 2 安裝 conda
# 下載安裝包 https://docs.conda.io/en/latest/miniconda.html
# 賦予執行權限
./iniconda3-py39_4.9.2-Linux-x86_64.sh
Step 3 安裝 gdal
開源的空間數據處理程序
conda install -c conda-forge gdal
Step 4 安裝 rasterio
MapBox 在 gdal 基礎上開發的柵格工具
sudo add-apt-repository ppa:ubuntugis/ppa
sudo apt-get update
sudo apt-get install python-numpy gdal-bin libgdal-dev
pip install rasterio
Step 5 安裝 rio-rgbify
MapBox 發布的將 dem 柵格編碼為 rgb 柵格的 rasterio 插件
pip install rio-rgbify
Step6 數據預處理
-
確定坐標系
GeoTiff 的坐標系必須是 WGS84 Web 墨卡托 (EPSG:3857)。 通常 Geo Tiff 格式的灰度柵格圖片看起來是黑白的。
如果不清楚坐標系的話,可以使用 rasterio 提供的命令行來獲取坐標系:
rio info --indent 2 xxxx.tif -
轉換坐標系,清理負數值
-
如果坐標系不是
EPSG:3857,就需要進行坐標轉換; -
用 負數值表示無數據 ,而 Terrain-RGB 無法表示負值,所以需要進一步處理;
# 同時進行坐標系轉換和清楚表示無數據的負值 gdalwarp -t_srs EPSG:3857 -dstnodata None -co TILED=YES -co COMPRESS=DEFLATE -co BIGTIFF=IF_NEEDED xxxx.tif xxxx_n.tif -
-
將轉換后的文件轉換為 Terrain-RGB 格式
Terrain-RGB 用 3 個 byte 通過 rgb 三通道來表示高程, 比原來的灰度 tiff 要小很多
-
將 灰度數據 轉換為 RGB 數據
高度計算公式:
height = -10000 + ((R * 256 * 256 + G * 256 + B) * 0.1)? 因此設置
ribify的參數base value的參數為-10000, interval 為0.1,繼續輸入以下命令:rio rgbify -b -10000 -i 0.1 xxxx_n.tif xxxx_n_rgb.tif
Step7 通過 GeoServer 發布切片服務
-
創建工作區
-
創建數據存儲
數據源選擇 GeoTIFF
-
發布圖層
-
創建圖層組
Step 8 查看結果
![]()
![]()
-


浙公網安備 33010602011771號