2017-07-31 8 views
1

automapパッケージ内のautoKrige関数で使用する予測グリッド(new_data引数用)を作成するのが難しいです。R 'automap' AutoKrigeで使用する予測グリッドを作成する方法(例:meuse.grid)?

私はすでにこの記事の手順に従って試してみた(How to subset SpatialGrid using SpatialPolygon)が、次のエラーを取得:また 長すぎる (添字)論理添字:Xの@の座標での、 エラー[I、ドロップ= FALSEを] :警告メッセージ: 1:min(x):minに対する欠落していない引数はありません。戻り値Inf 2:max(x):maxに欠損値がない。返す-Inf

空のグリッドであるため、欠落していない引数がないというエラーが発生します。これは問題ありません - 私が望むのは、シェイプファイルからのポリゴンによって制約される空のグリッドです。

 shp <- shapefile("C://path/path/Tobay_Box2.shp") 
     shp <- spTransform (shp,"+proj=utm +ellps=WGS84 +datum=WGS84") 
     grid <-  GridTopology(cellcentre.offset=c(731888.0,7457552.0),cellsize=c(2,2),cells.dim=c(122,106)) 
     grid <- SpatialPixelsDataFrame(grid, 
           data=data.frame(id=1:prod(122,106)), 
           proj4string=CRS("+proj=utm +ellps=WGS84 + datum=WGS84")) 
plot(grid) 

[Dropboxのフォルダ 'Grid.png' を参照]

bound <- [email protected] 
bound <- SpatialPolygons(bound, proj4string=CRS("+proj=utm +ellps=WGS84 +datum=WGS84")) 
plot(bound) 

[Dropboxのフォルダ '境界plot.png' を参照]

:ここ

は、私が働いているコードです。

clip_grid <- grid[!is.na(over(grid, bound)),] 

これまでのエラーや警告はありません。しかし、その後...

plot(clip_grid) 

Error in [email protected][i, , drop = FALSE] : 
    (subscript) logical subscript too long 
In addition: Warning messages: 
1: In min(x) : no non-missing arguments to min; returning Inf 
2: In max(x) : no non-missing arguments to max; returning -Inf 

またはオブジェクトを渡すためにしようとはNEW_DATA引数のautokrigeを通じてclip_grid:私は非クリッピンググリッドを使用して何の問題もなかったしました

PerInkrg <- autoKrige (PerArIn~1, hs1, clip_grid) 

Error in predict.gstat(g, newdata = newdata, block = block, nsim = nsim, : 
    value not allowed for: %s %s newdata empty or only NA's 

(オブジェクト=グリッド) 。一言で言えば

、私はこれを必要とする[ドロップボックスフォルダ「Autokrigプロット」を参照]が、補間とは「Torbay_Box2.shp」

P.S.の境界範囲まで(クリッピング)制約浮上しました私は私のプロットとリンクを私がここで助けと私のデータへのリンクを求める前に使用した他の投稿へのリンクを挿入しようとしましたが、私はこれを行うには十分な評判を持っていない新しいユーザーとして - 申し訳ありません!

データおよびプロットは、私は今の範囲にマスクされautoKrige [プロット]を生成するために管理しているDropbox.com/sh/yqg20z1ibl3h4aa/AACJnHoEuP-S5fTvAXxsnY1za?dl=0

答えて

0

で見つけることができますTorbay_Box2境界。しかし、私はmeuse.gridのような予測グリッドを作成することによってこれを '従来の'方法で達成することはできませんでした。結果は同じですので、私は満足していますが、私はまだそれを従来のやり方でやっていきたいと思います。ここで

は、私はそれをだまさ方法は次のとおりです。

# Load sample box extent 

bx.data <- readOGR (".", "Tobay_Box2") 
bx <- spTransform(bx.data,"+proj=utm +ellps=WGS84 +datum=WGS84") #transformsto UTM projection 
str(bx) 

# Set the boundary extent with that of sample box extent 

[email protected] <- [email protected] 
#create an empty grid 
grd    <- as.data.frame(spsample(hs1, "regular", n=50000))                         
names(grd)  <- c("X", "Y") 
coordinates(grd) <- c("X", "Y") 
gridded(grd)  <- TRUE # Create SpatialPixel object 
fullgrid(grd) <- TRUE # Create SpatialGrid object 

plot(hs1) 
plot(grd, pch = ".", add = T) 
proj4string(grd) <- proj4string(hs1) 

私は、その後、NEWDATAとして空のグリッドを使用してIDW補間を行っラスタに出力を変換し、Torbay_Box2境界にこれをクリッピングしてからSpatialPixelDataFrameにこれを変換しますこれはautoKrigeのnew_data引数として渡されました:

# For PerArIn (% area inhabited) 
#interpolate the grid cells using all points and a power value of 2 

hs1.idw <- gstat::idw(PerArIn ~ 1, hs1, newdata=grd, idp=2.0) 



# Convert to raster object then clip to Hollicombe sample box 

r  <- raster(hs1.idw) 
r.m  <- mask(r, bx) 


#Convert and set as prediction grid for Kriging 

grd<- rasterToPoints(r.m, spatial=TRUE) 
gridded(grd) <- TRUE 
grd <- as (grd, "SpatialPixels") 

#en voila! 
PerInkrg <- autoKrige (PerArIn~1, hs1,grd) 
関連する問題