使用栅格包下载SRTM数据吗?

use*_*767 5 zip r raster srtm

我正在尝试使用rasterR中的“ ”包获取SRTM数据,但是一旦我SRTM在getData命令中选择,就会出现以下错误:

library(raster)

srtm <- getData('SRTM', lon=16, lat=48)
trying URL 'ftp://xftp.jrc.it/pub/srtmV4/tiff/srtm_40_03.zip'
trying URL 'http://hypersphere.telascience.org/elevation/cgiar_srtm_v4/tiff/zip/srtm_40_03.ZIP'
downloaded 572 bytes

Error in .SRTM(..., download = download, path = path) : file not found
In addition: Warning messages:
1: In utils::download.file(url = aurl, destfile = fn, method = "auto",  :
  URL 'ftp://xftp.jrc.it/pub/srtmV4/tiff/srtm_40_03.zip': status was 'Couldn't resolve host name'
2: In utils::unzip(zipfilename, exdir = dirname(zipfilename)) :
  error 1 in extracting from zip file
Run Code Online (Sandbox Code Playgroud)

任何想法,这是什么错误?

Sam*_*Act 4

我也有同样的问题,看来是个bug。getData包中的函数检查raster三个不同 URL 中光栅文件的可用性。

1. ftp://xftp.jrc.it/pub/srtmV4/tiff/FILENAME
2. http://hypersphere.telascience.org/elevation/cgiar_srtm_v4/tiff/zip/FILENAME
3. http://srtm.csi.cgiar.org/SRT-ZIP/SRTM_V41/SRTM_Data_GeoTiff/FILENAME
Run Code Online (Sandbox Code Playgroud)

其中前两个(截至今天)无法正常工作或无法访问。然而,由于某种原因,一小部分数据正在通过服务器传输,因此该包假定它是一个可用文件,只是为了达到一个错误utils。然而,第三个网址是这三个网址中最值得信赖的一个。

raster我做了一些挖掘,并在稍微修改包本身以使其使用第三个 url 后提出了以下函数。您可以在此处输入LongitudeLatitude值。请注意,这仅在您想下载基于纬度和经度的文件时才有用。

SRTM<-function(lon, lat) {
  stopifnot(lon >= -180 & lon <= 180)
  stopifnot(lat >= -60 & lat <= 60)
  rs <- raster(nrows=24, ncols=72, xmn=-180, xmx=180, ymn=-60, ymx=60 )
  rowTile <- rowFromY(rs, lat)
  colTile <- colFromX(rs, lon)
  if (rowTile < 10) { rowTile <- paste('0', rowTile, sep='') }
  if (colTile < 10) { colTile <- paste('0', colTile, sep='') }

  f <- paste('srtm_', colTile, '_', rowTile, sep="")
  theurl <- paste("http://srtm.csi.cgiar.org/wp-content/uploads/files/srtm_5x5/TIFF/", f, ".ZIP", sep="")
  utils::download.file(url=theurl, destfile='srtm_40_0.zip', method="auto", quiet = FALSE, mode = "wb", cacheOK = TRUE)
}
Run Code Online (Sandbox Code Playgroud)

例子:

SRTM(lon=16, lat=48)
Run Code Online (Sandbox Code Playgroud)

这将在您的文件夹中生成一个名为的文件srtm_40_03.zip,该文件通常包含 a tif、 ahdr和 atfw同名文件。像往常一样使用它们进行进一步处理。

编辑日期 2019 年 1 月 22 日: srtm 链接已更改(也),上述代码已进行调整以反映这一点。