在R中将纬度/经度转换为海拔高度

use*_*199 9 r latitude-longitude altitude

根据纬度和经度,是否有人知道R中是否有工具可以找到某个位置海拔高度?

Spa*_*man 13

或者,您可以使用从地理名称中查找的包,并从srtm3数字高程模型中获取值:

> require(geonames)
> GNsrtm3(54.481084,-3.220625)
  srtm3       lng      lat
1   797 -3.220625 54.48108
Run Code Online (Sandbox Code Playgroud)

或者gtopo30型号:

> GNgtopo30(54.481084,-3.220625)
  gtopo30       lng      lat
1     520 -3.220625 54.48108
Run Code Online (Sandbox Code Playgroud)

geonames在CRAN上,所以install.packages("geonames")将获得它.

这两个模型之间的区别是因为它们只是基于卫星数据的近似值.不要期望从这里找到山脉.


Ric*_*ton 11

更新:Earthtools不再存在,所以这个答案已经过时了.我推荐@ Spacedman的回答.

正如DWin所说,这有两个部分:用Web服务找到一个好的数据源,然后在R中解析它.这个答案使用了earthtools.org 服务.

library(RCurl)
library(XML)

latitude <- 52.4822
longitude <- -1.8946
url <- paste(
    "http://www.earthtools.org/height",
    latitude, 
    longitude,
    sep = "/"
)

page <- getURL(url)
ans <- xmlTreeParse(page, useInternalNodes = TRUE)
heightNode <- xpathApply(ans, "//meters")[[1]]
(height <- as.numeric(xmlValue(heightNode)))
Run Code Online (Sandbox Code Playgroud)

  • 此外,41.25度与41度不同,25度,因为在一定程度上只有60秒.使用正确的位置,服务返回568m. (2认同)

42-*_*42- 1

有 R 包(例如 RCurl)允许 Web 查询。还有网络资源,进一步的细节将需要......好吧,......更多细节。

http://gisdata.usgs.net/xmlwebservices2/elevation_service.asmx?op=getElevation