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

时间:2012-01-23 15:05:08

标签: r latitude-longitude altitude

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

4 个答案:

答案 0 :(得分:12)

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

> require(geonames)
> GNsrtm3(54.481084,-3.220625)
  srtm3       lng      lat
1   797 -3.220625 54.48108

或gtopo30型号:

> GNgtopo30(54.481084,-3.220625)
  gtopo30       lng      lat
1     520 -3.220625 54.48108

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

这两种模型之间的区别在于它们只是基于卫星数据的近似值。不要期望从中找到山脉。

答案 1 :(得分:11)

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

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

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)))

答案 2 :(得分:2)

您可以通过Google Maps Elevation API访问高程数据。在R中,您可以通过我的k

来使用它

要使用Google Maps API,您需要一个API密钥

googleway

答案 3 :(得分:1)

有诸如RCurl的R包允许Web查询。还有网络资源,进一步的specfics将需要......好吧,...更具体。

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

相关问题