问题描述
我正在尝试在自动地图包中使用autoKrige。 我的数据看起来像
head(LL12)
Location Longitude Latitude percent
1 L1 16.48476 -28.60737 1.0000000
2 L3 16.90045 -29.24154 1.0000000
3 L4 16.99268 -28.44906 0.6363636
4 L5 17.06871 -29.67825 1.0000000
5 L6 17.09935 -29.00169 0.6000000
6 L7 17.25630 -28.82418 1.0000000
并且我正在尝试在南非地图中绘制该图。
首先,我在Create Grid in R for kriging in gstat之后获得了网格
SAGrd <- makegrid(SApol_border,n = 1000)
colnames(SAGrd) <- c('lon','lat')
SAGrd_pts <- SpatialPoints(coords = SAGrd,proj4string=CRS(proj4string(SApol_border)))
SAGrd_pts_in <- SAGrd_pts[SApol_border,]
plot(SAGrd_pts_in)
plot(SAGrd_pts_in)
然后将其转换为SpatialPixel数据框
SAGrd_pts_in = as(SAGrd_pts_in,"SpatialPixelsDataFrame")
但是plot(SAGrd_pts_in)
给出了以下错误消息:
.subset2(x,i,精确=精确)错误:下标超出范围
krigLL12_fit <- autoKrige(percent~1,SA.grid,LL12spdf) # percent is the variable of interest in the spdf LL12spdf
错误消息:
autoKrige中的错误(百分比〜1,SA.grid,LL12spdf): 输入数据或new_data位于LongLat中,请重新投影。 输入数据:+ proj = longlat + ellps = wgs84 + towgs84 = 0,0 + no_defs new_data:不适用 另外:警告消息: 1:在proj4string(input_data)中: CRS对象具有注释,该注释在输出中丢失 2:在proj4string(input_data)中: CRS对象具有注释,该注释在输出中丢失 3:在showSRID(uprojargs,格式=“ PROJ”,多行=“ NO”)中: 基于CRS定义中的wgs84椭球的废弃数据未知, 但保留+ towgs84 =值
我在这个主题上是新手,无法意识到我需要做的事情或要纠正的事情,坐标单元在网格和数据文件中看起来是相同的。我还拟合了自变量,并尝试在autokrige中使用,但是它也不起作用。 thnx。
解决方法
我发现了问题:需要将NA应用于crs的网格文件,然后将其转换为Spatial Pixels文件而不是Spatial Pixels Data Frame。 我对此进行了扩展,并提供了代码和结果 https://gis.stackexchange.com/questions/375476/0-0-kriging-error-messages-grid-file-problem-automap-gstat