以 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 数据预处理

  1. 确定坐标系

    GeoTiff 的坐标系必须是 WGS84 Web 墨卡托 (EPSG:3857)。 通常 Geo Tiff 格式的灰度栅格图片看起来是黑白的。

    如果不清楚坐标系的话,可以使用 rasterio 提供的命令行来获取坐标系:

    rio info --indent 2 xxxx.tif
    
  2. 转换坐标系,清理负数值

    • 如果坐标系不是 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
    
  3. 将转换后的文件转换为 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 发布切片服务

    1. 创建工作区

      workspace.png
    2. 创建数据存储

      数据源选择 GeoTIFF

    3. 发布图层

    4. 创建图层组

    Step 8 查看结果

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 21
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 21
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值