Преобразование широты / долготы в высоту в R - PullRequest
9 голосов
/ 23 января 2012

Кто-нибудь знает, есть ли в R инструмент для определения высоты над уровнем моря местоположения с учетом широты и долготы?

Ответы [ 4 ]

12 голосов
/ 23 января 2012

Или вы можете использовать пакет, который ищет из географических названий, и получить значение из цифровой модели рельефа 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

географических названийнаходится на CRAN, поэтому install.packages ("geonames") получит его.

Разница между этими двумя моделями заключается в том, что они представляют собой только приближения, основанные на спутниковых данных.Не думайте, что сможете точно определить горы.

11 голосов
/ 23 января 2012

Обновление: Earthtools больше не существует, поэтому этот ответ устарел. Вместо этого я рекомендую ответ @ Spacedman.

Как сказал DWin, здесь есть две части: найти хороший источник данных с помощью веб-службы, а затем проанализировать их в 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)))
2 голосов
/ 21 января 2017

Вы можете получить доступ к данным высоты через Google Maps Elevation API. И в R вы можете использовать это через мой googleway пакет

Чтобы использовать Google Maps API, вам нужен ключ API

library(googleway)

api_key <- "your_api_key"

df_locations <- data.frame(lat = c(54.481084), lon = c(-3.220625))

google_elevation(df_locations = df_locations, key = api_key)

# $results
# elevation location.lat location.lng resolution
# 1  813.9291     54.48108    -3.220625   610.8129
# 
# $status
# [1] "OK"
1 голос
/ 23 января 2012

Существует R пакетов, таких как RCurl, которые разрешают веб-запросы.Существуют также веб-ресурсы, дальнейшие спецификации потребуют .... ну, ... больше подробностей.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...