5

概要: NA値を含むラスターデータセットがあり、NAを無視してそのバリオグラムを計算したいと思います。これどうやってするの?

関数を使用してRにロードした画像がありreadGDAL、として保存されていimます。これを再現可能にするためdputに、画像の結果はhttps://gist.github.com/2780792で入手できます。このデータのバリオグラムを表示しようとしていますが、苦労しています。これまでに試したことを確認します。

パッケージを試しましたgstatが、機能する関数呼び出しを取得できなかったようです。im@data$band1基本的に必要なのはデータ値自体( )と座標()であるということを集めましたcoordinates(im)。私は次のようなさまざまなコマンドを試しました:

> variogram(locations=coordinates(im), y = im@data$band1)
Error in is.list(object) : 'object' is missing

> variogram(coordinates(im), im@data$band1)
Error in variogram.default(coordinates(im), im@data$band1) : 
  argument object and locations should be lists

私はここで何が間違っているのですか?

それがうまくいかなかったので、私はgeoRパッケージを試しました。

> variog(coords=coordinates(im), data=im@data$band1)
variog: computing omnidirectional variogram
Error in FUN(X[[1L]], ...) : NA/NaN/Inf in foreign function call (arg 4)

エラーはNAを含むデータに関係しているように見えるので、を使用してそれらを削除しようとしましna.omitたが、すべてのNAがそこに残ります。ラスターファイルは各グリッドの正方形に何かを持っている必要があるので、それはちょっと理にかなっています。どういうわけかNAを削除する方法、または少なくともvariogコマンドにNAを無視させる方法はありますか?

どんな助けでも大歓迎です。

4

1 に答える 1

6

に渡されたデータ オブジェクトがgstat:variogram空間オブジェクト (データがSpatialGridDataFrame) の場合、場所はデータに含まれているため、場所を指定する必要はありません。

ただし、明らかにNA値が問題を引き起こしているため、グリッド オブジェクトを強制的に にすると、値SpatialPointsDataFrameが削除されます。NA

imデータhttps://gist.github.com/2780792が含まれています

library(gstat)
point_data <- as(im, 'SpatialPointsDataFrame')
gstat_variogram <- variogram(band1 ~ 1, data = point_data)

使用するにはgeoR

library(geoR)
geor_variogram <- variog(coords = coordinates(point_data), 
                          data = point_data@data$band1)

またはもっと簡単に(geoRクラスのオブジェクトで機能し、からオブジェクトに変換するgeodata関数が含まれているため)as.geodataSpatialPointsDataFramegeodata

geor_variogram <- variog(as.geodata(point_data))
于 2012-05-24T11:36:22.643 に答える