Rを使用したヒストグラム分析のためにポイントデータをグリッドデータフレームに変換しますか?


14

私はGISデータの使用に非常に慣れており、Rをあまり経験していません。spatial-analyst.netPDFブックを使用して空間データを分析する方法について読んでいるので、完全に失われたわけではありませんが、私の問題と人々はアイデアを提案するかもしれません。

さまざまな緯度/経度座標で約2000の測定値を含むデータセットがありますが、データが3年間にわたって収集され、条件が時間とともに変化したため、おそらくこのデータセットを細分化します。測定対象の変数を「IP」と呼びましょう。

サンプルデータに対してKrigingまたは他の補間方法を使用して、問題のある領域全体にIPのマップを作成したい。次に、さまざまなIPバケットの土地の量を測定するヒストグラムを作成します。また、各バケット内のサンプル数を示すヒストグラムを作成する必要があります(サンプルは、クリギングがその土地に対して予測するものよりも実際のIPが大きい場合も小さい場合もあります)。

データをSpatialPointsDataFrameに読み込み、クリギング分析を実行する方法に従いますが、その問題を抱えているのは、ヒストグラム分析を行うためにそのデータをグリッドデータフレームに変換する方法です。

ポイントをグリッドに変換するための提案はありますか?

回答:


12

あなたは正しい...それはかなり簡単です!「ラスター」パッケージには、ラスターの作成と操作を扱う非常に簡単な方法がいくつかあります。

library(maptools)
library(raster)

# Load your point shapefile (with IP values in an IP field):
pts <- readShapePoints("pts.shp")

# Create a raster, give it the same extent as the points
# and define rows and columns:

rast <- raster()
extent(rast) <- extent(pts) # this might be unnecessary
ncol(rast) <- 20 # this is one way of assigning cell size / resolution
nrow(rast) <- 20

# And then ... rasterize it! This creates a grid version 
# of your points using the cells of rast, values from the IP field:
rast2 <- rasterize(pts, rast, pts$IP, fun=mean) 

グリッドのサイズと解像度はさまざまな方法で割り当てることができます-ラスターパッケージのドキュメントをよく見てください。

ラスタライズのラスタセルの値は、関数を使用して計算できます。上記の例では「平均」です。これを必ず入れてください。そうでなければ、最後に出会ったポイントのIPの値を使用するだけです。


CSVから:

pts <- read.csv("IP.csv")
coordinates(pts) <- ~lon+lat
rast <- raster(ncol = 10, nrow = 10)
extent(rast) <- extent(pts)
rasterize(pts, rast, pts$IP, fun = mean)

これは非常に便利ですが、シェープファイルではなく、lat / longsを使用した単純なCSVのポイントから始めた場合、コードはどのように見えますか?CSVの列は、IP、Lat、Longなどなどです。
user108025312年

あなたはすでにデータをSpatialPointsDataFrameにロードしていることを示しました...これはpts上の例のとおりです。SpatialPointsDataFrameオブジェクトでコードを実行するだけです!
シンバマング

4
この返信は、優れているものの、必要なものに対処していないようです。(代わりにgis.stackexchange.com/questions/20018の解決策を提供するようです。)課題は、値をラスターセルに割り当てるだけでなく、2000点程度を補間することです。OPが既に「クリギング解析を実行」していると主張していることを考えると、この質問は- のような手順で使用するためのラスター(たとえば)の値を抽出することに帰着します。rhisthist(getValues(r))
whuber

@whuber-OPが「問題を抱えているのは、そのデータをグリッドデータフレームに変換してヒストグラム分析を行う方法です...ポイントをグリッドに変換するための提案」を実際の質問として尋ね、どのように知っているようですSpatialPointsDataFrameを作成してクリギングを実行します。しかし、あなたは正しい、それは20018の複製のようです(グリッド入力を除く)。
シンバマング

謝罪、@ user1080253 ...「グリッド」を「ラスター」と読みましたが、これは正しくなく、クリギングには役に立たないものです。通常のグリッドを作成し、そのグリッドにデータ補間するためのより良いアイデアについては、こちらをご覧ください。
シンバマング

3

plotKMLパッケージにはと呼ばれる関数がありますvect2rast。この関数は、基本的rasterizeに、ラスターパッケージで使用可能な関数を拡張します。の利点vect2rast; ただし、ユーザー側からの入力は不要です。つまり、入力データセットのプロパティに基づいてグリッドセルサイズと境界ボックスが自動的に決定されます。グリッドセルサイズは、マップ内のフィーチャの密度/サイズに基づいて推定されます(nndistspatstatパッケージの関数)。

library(plotKML)
Rast2 <- vect2rast(pts)

# for large data sets use SAGA GIS:
Rast2 <- vect2rast(pts, method = "SAGA")
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.