查看原文
其他

如何复现一个GEBCO样式的海陆高程图

走天涯徐小洋 走天涯徐小洋地理数据科学 2022-07-17

如何复现一个GEBCO样式的海陆高程图

前面的推文DEM数据介绍与获取方法总结封面图来自于GEBCO,有同学问这个图是如何制作的,我用这篇推文来讲一讲。

GEBCO海陆高程图https://download.gebco.net/

本文主要是讲讲思路和可以使用的方法,不一定是完全复现GEBCO的图,但是会很接近。

复现思路

要想复现这个图,那么需要搞明白以下几点:

  • 这个图数据是什么?
  • 这个图可视化效果如何实现?

下面一点点讲怎么弄得

这个图的数据怎么搞

GEBCO的图,显然是GEBCO的数据制作的,但是GEBCO的全球陆地海深数据有几十GB,对于出这么一个全球的图有必要使用如此高分辨率的数据吗?

显然不需要,这个全球的数据其实可以使用分辨率较低的全球陆地和海洋数据来制作。那么数据怎么搞呢?

  • 对GEBCO数据重采样,GEBCO提供的是半球的数据,重采样成较低分辨率的,然后拼接为全球数据。
    • 数据下载量比较大,数据处理量大
    • 对电脑性能要求较高
  • 使用Google Earth Engine获取全球的陆地海深数据,直接在线重采样为低分辨率的
    • 需要写一写代码
    • 对电脑要求低,速度快

对此我使用了rgee,调用Google Earth Engine的服务,获取全球10km分辨率的陆地海深数据。

具体数据介绍可以看上面的数据共享推文,下面给出数据获取的代码:

library(rgee)
library(sf)

ee_Initialize(drive = TRUE)

ETOPO1 = ee$Image("NOAA/NGDC/ETOPO1")$select("bedrock")
imageVisParam <- list(min = -7000, max = 8000, palette = c(
  '2c7bb6''abd9e9''ffffbf''fdae61''d7191c'))
Map$addLayer(ETOPO1, imageVisParam, 'mosaic')

gd <- ee_as_raster(
  image = ETOPO1,
  scale = 10000,
  dsn = './DEM/GlobalBedrock.tif',
  via = "drive"
)

如此即可准备好全球的海陆分布数据。下面讲讲如何可视化

可视化效果如何实现

首先我们分析这个图,由哪些颜色构成,这个图明显反映的是高程海深,但是又不完全是根据高程来的。仔细观察,我们可以发现以下特点:

  • 渐变色反映高程
    • 深棕色,高海拔山地
    • 土黄,中海拔的高原地区
    • 浅绿,平原区
    • 浅蓝,浅海大陆架地区
    • 深蓝,深海地区
  • 白色冰盖,没有反映高程
  • 山体阴影效果,对高程变化进行了增强

颜色分析

基于以上的分析,我们就需要分图层实现上面的效果。

  • 设置反映高程的渐变色
  • 添加山体阴影效果
  • 白色冰盖需要叠加矢量层或者PS后期处理得到

渐变色设置

要想实现和GEBCO图一样的渐变色效果,需要设置渐变色显示DEM

  • 使用PS取色,查看颜色参数
使用PS取色
  • 在QGIS中新建一个色带
创建一个色带
  • 指定PS提取的颜色参数
  • 根据高程范围调整色彩
QGIS制作的陆地海洋高程图

美化加工

  • 加一下山体阴影效果
  • 给极地地区刷白,可以使用PS或者叠加矢量层的方式
PS添加冰盖后的成图

更多阅读

点击阅读原文参加视频课程学习

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存