2

R の等高線から標高プロットを作成できるようにしたいと考えています。シェープ ファイルを使用するのは初めてです。

現時点 では、英国全土の .shp ファイルを提供するデータをここからダウンロードしました。

また、英国のトポロジーを要約する等高線も提供します。

標高プロットでは、x、y、z 値を示すデータ出力を生成するために、等間隔の点 (互いに 100 m 離れている) の1data.frameつまたは1 つが必要です。data.tableここで、x と y は緯度と経度 (または東座標と北座標) を表し、z は高さ (海抜メートル) を表します。

おそらく、補間を自動的に実行するツールがいくつかあると思いますが、地理空間データでどのように機能するかはわかりません.

これが私の基本的なスタートです...

require(maptools)
xx <- readShapeSpatial("HP40_line.shp")
4

1 に答える 1

3

「OS Terrain 50」製品のダウンロード形式として「ASCII Grid and GML (Grid)」を選択し、ファイルをダウンロードしてください。これにより、zip ファイルの多くのディレクトリを含む zip ファイルが得られます。各ディレクトリには、英国の 50 m の標高グリッドの一部が含まれています (私が見た部分は 200 x 200 セルで、10 km x 10 km を意味します)。ディレクトリdata/suに移動し、そこにあるzipファイルを解凍して実行しました

library(raster)
r = raster("SU99.asc")
plot(r)

これを 100 m のグリッドに集約するために、

r100 = aggregate(r) # default is factor 2: 50 -> 100 m

前述のように、等高線はグリッドから派生するため、グリッドで作業することをお勧めします。逆の方法で作業すると、苦痛を伴い、情報が大幅に失われます。

として緯度経度のグリッド値を取得するにdata.frameは、次の 2 つの方法があります。

df = as.data.frame(projectRaster(r, crs = CRS("+proj=longlat")), xy = TRUE)

経度/緯度でグリッドを新しいグリッドに投影解除します。これらのグリッドは一致できないため、ポイントの移動は最小限に抑えられます (?projectRaster を参照)。

2 番目のオプションは、グリッドをポイントに変換し、これらを経度緯度に非投影にすることです。

df2 = as.data.frame(spTransform(as(r, "SpatialPointsDataFrame"), CRS("+proj=longlat")))

これはポイントを移動しないため、結果としてグリッドにはなりません。

于 2015-02-28T19:58:46.817 に答える