9

緯度と経度を指定して、R に場所の海抜の高さを見つけるためのツールがあるかどうかを知っている人はいますか?

4

5 に答える 5

13

または、geonamesから検索するパッケージを使用して、srtm3数値標高モデルから値を取得することもできます。

まず、で登録してgeonamesのユーザー名を取得しますgeonames.org。次に、それを設定します。

> options(geonamesUsername="myusernamehere")

それから:

> 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")が取得します。

これら2つのモデルの違いは、衛星データに基づく近似値にすぎないためです。これから山を特定することを期待して行かないでください。

于 2012-01-23T17:24:49.560 に答える
10

更新: Earthtools はもう存在しないため、この回答は廃止されました。代わりに@Spacedmanの回答をお勧めします。

DWin が言ったように、これには 2 つの部分があります。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)))
于 2012-01-23T15:44:50.917 に答える
1

Web クエリを許可する RCurl などの R パッケージがあります。また、Web リソースもあります。詳細な仕様には ....まあ、詳細が必要です。

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

于 2012-01-23T15:33:20.290 に答える
0

内部で geonames を使用するパッケージ rgbif を使用することもできます。このオプションは、入力としてデータ フレームや他の入力形式を提供できるため、気に入っています。ここでも、GeoNames ユーザー名を提供する必要があります。

library(rgbif)

coords <- data.frame(decimalLatitude = 54.481084, 
                     decimalLongitude = -3.220625)

elevation(coords, username = "myusernamehere")

データ フレームを入力として提供する場合、DarwinCore 標準に関連する decimalLatitude および decimalLongitude という名前の座標列が含まれている必要があります。

引数「elevation_model」を使用して、モデルのさまざまなオプションから選択できます。

于 2022-01-27T12:48:20.407 に答える