查看原文
其他

含视频讲解 | rgee获取全国高程、坡度、坡向数据

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

高程、坡度、坡向是经常用的基础地理数据,要想获取全国的高精度高程、坡度、坡向数据往往需要花费大量的时间进行下载、镶嵌、投影转换和计算,在这给大家分享一个基于rgee的全国高程、坡度、坡向数据获取方法,能够大大加快速度。

视频号直播讲解如下:还请大家多多关注一下这个没啥人的视频号吧!

ALOS DSM数据获取

在Google Earth Engine Data Catalog中查找ALOS DSM数据,使用rgee引用该数据。

Google Earth Engine中的ALOS DSM数据

使用rgee获取ALOS DSM高程数据代码如下:

library(rgee)   #加载包
library(sf)

ee_Initialize(drive = T)     #启动gee api
 
ALOSDSM = ee$ImageCollection("JAXA/ALOS/AW3D30/V3_2")$select('DSM')  #引用ALOS DSM数据

ALOSDEM = ALOSDSM$mosaic()   #镶嵌转ee.image对象

imageVisParam <- list(
  min = 0,
  max = 5000,
  palette = c('0000ff''00ffff''ffff00''ff0000''ffffff')
)

Map$setCenter(101, 35, zoom = 3)   #指定可视化中心和缩放级别
Map$addLayer(ALOSDEM, imageVisParam, "ALOSDEM")    #ALOS DSM高程数据可视化

ALOS DSM高程数据可视化结果:

ALOSDSM高程数据

坡度和高程在GEE中的计算

rgee计算坡度

  • 要点:
    • 设置投影坐标系
    • ee$Terrain$slope函数计算坡度

代码如下:

proj = ALOSDSM$first()$select(0)$projection()   #设置投影坐标系
slopeReprojected = ee$Terrain$slope(ALOSDEM$setDefaultProjection(proj))   #获取坡度数据

slopeVisParam = list(
  min = 0,
  max = 60,
  palette = c('f1eef6''bdc9e1''74a9cf''2b8cbe''045a8d')
)
Map$addLayer(slopeReprojected, slopeVisParam, "ALOSSLOPE")   #坡度可视化

全国坡度数据可视化展示,从全国范围来看不太明显:

ALOSDSM坡度计算结果

进一步缩放到张家口地区,可以看到很明显的坡度变化,白色为平地,蓝色为陡坡,配色使用colorbrewer提供的渐变色。

  • 配色网站网址https://colorbrewer2.org/#type=sequential&scheme=PuBu&n=5
张家口地区ALOSDSM坡度计算结果

rgee计算坡向

和计算坡度类似,也需要使用投影坐标系,使用了GEE提供的函数。代码如下:

aspectReprojected = ee$Terrain$aspect(ALOSDEM$setDefaultProjection(proj))
apsectVisParam = list(
  min = 0,
  max = 360,
  palette = c("212529","adb5bd","e9ecef","adb5bd","212529")  #黑色北向,白色南向
)
Map$addLayer(aspectReprojected, apsectVisParam, "ALOSASPECT")

黑色为阴面,北坡;白色为阳面,南坡,坡向计算结果:

ALOSDSM坡向计算结果
张家口地区ALOSDSM坡向计算结果

数据下载

前面给大家讲了如何获取ALOS DSM的高程、坡度、坡向数据,这个如何下载呢?

全国30米分辨率的DSM数据量巨大,GEE存在数据下载像元数限制,我们需要进行分块下载,然后拼接,大体思路如下:

  1. 划分数据下载格网
  2. 根据格网分片下载数据
  3. 数据镶嵌

    具体操作看往期推文:使用rgee和QGIS合成非洲ALOS DSM


    更多课程还请点击阅读原文加入地理数据科学培训班

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

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