查看原文
其他

使用rgee和QGIS合成非洲ALOS DSM

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

使用rgee和QGIS合成非洲ALOS DSM

任务简介

ALOS World 3D - 30m (AW3D30) 是目前精度最高的全球DEM数据,最新版本是3.2版。

任务是合成整个非洲地区的ALOS DSM数据。

技术路线

常规方法

直接去ALOS DSM官网下载数据,然后拼接。ALOS DSM官网下载数据方法可以参考:数据分享 | 全国AW3D30 DSM(数字地表模型)数据

GEE下载方法

我选择了这种方法,不过对于这种洲一级别的30米分辨率数据来说,GEE也不是很方便,主要是下载过程容易中断,也需要下载完之后手动拼接数据。

GEE下载ALOS DSM数据

技术实现思路

由于整个非洲的数据数据量巨大,远远突破了GEE 1e13像元最大个数限制,因此,我选择先划分格网SHP,再使用rgee逐格网下载DSM数据。

QGIS划分格网

使用QGIS创建格网,然后根据格网的ID将SHP文件分拆

创建格网
将格网拆分为单独的SHP

rgee逐格网下载数据

使用rgee逐格网下载数据,对每个格网SHP进行循环,获取对应格网的DSM数据。

library(rgee)
library(sf)

ee_Initialize(drive = T)

ALOSDSM = ee$ImageCollection("JAXA/ALOS/AW3D30/V3_2")$select('DSM')


AfrSHPlist = list.files(path = "./AfricaESPG4326/", pattern = ".shp$")
AfrSHPdir = paste0("./AfricaESPG4326/", AfrSHPlist)
AfrTIF = gsub("shp""tif", AfrSHPlist)  #输出的TIFF文件名


for (i in 1:length(AfrSHPlist)) {
  ee_roi = read_sf(AfrSHPdir[i])%>%
    sf_as_ee()
  
  mosaic = ALOSDSM$max()$clip(ee_roi)
  
  alos = ee_as_raster(
    image = mosaic,
    region = ee_roi$geometry(),
    scale = 30,
    dsn = paste0("./AfrTif/", AfrTIF[i]),
    via = "drive",
    maxPixels = 1e13
  )
}

QGIS拼接数据

由于数据量巨大,拼接的时候需要指定输出为BIGTIFF,突破TIFF文件4GB的存储限制。

拼接需要BIGTIFF YES
非洲拼接后的DSM


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

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