GIS与Climate

V1

2022/09/21阅读:16主题:默认主题

用R语言下载任意地区DEM数据

地学相关的科研中经常用到DEM数据以及其衍生数据,比如坡度、坡向等数据,同时公众号、博客等等也在不断的分享这些DEM等数据(包括我自己),但是我相信大多数人领取完了之后就进入收藏夹/百度云吃灰,等过了好久用的时候才想起来。

本文介绍一种使用R语言获取任意地区DEM数据的方法,这样子在用的时候随时下载即可,再也不用导出找数据。

工具介绍

本文使用的是R包elevatr,具体介绍见参考【1】。

使用方法

包的使用方法非常简单,提供相应的范围和需要下载的DEM数据的等级即可(对应的是分辨率)

library(sf)
library(elevatr)
# 定义下载区域
loc <- st_bbox(c(xmin = 16.1, xmax = 16.6, ymax = 48.6, ymin = 47.9), crs = st_crs(4326)) %>% st_as_sfc()
# 下载栅格类型的DEM数据
re <- get_elev_raster(locations = loc , z=10)
plot(re)
# 保存数据
writeRaster(re,'./test.tif')
下载好的数据
下载好的数据

上面z=10代表的是不同等级的dem,其对应的是分辨率,在不同的纬度区域,不同的z代表了不同的分辨率,在下载的时候会根据提供的数据范围自动计算,具体可以阅读参考【3】。

几点说明

  1. 下载的时候必须提供的就是范围和z,如果提供的范围是data.frame格式的话,需要提供对应的坐标系,因此建议用上面的方法来生成sf对象之后再下载;
  2. 下载的数据实际范围会大一点,囊括提供的范围;
  3. 如果有研究区矢量或者tif数据,直接用shp或者tif数据作为范围会更好,也无需再额外设置坐标系参数;

数据靠谱不?

这个包只是提供了一种下载方式,当前有两个数据源:

  • AWS的瓦片数据;
  • Open Topography Global Datasets API

本身并不生产数据,数据还是SRTM、ALOS等数据源,所以与其他途径下载的数据无异。

参考

【1】https://www.rdocumentation.org/packages/elevatr/versions/0.4.2
【2】https://rpubs.com/ials2un/elevationfromR
【3】https://github.com/tilezen/joerd/blob/master/docs/data-sources.md#what-is-the-ground-resolution
【4】https://registry.opendata.aws/terrain-tiles/
【5】https://opentopography.org/developers

分类:

人工智能

标签:

数据挖掘

作者介绍

GIS与Climate
V1

公众号:GIS与Climate,欢迎关注