无法从automap包中正确使用autokrige(R无法很好地读取预测位置)

时间:2016-04-29 22:37:28

标签: r kriging automap

我正在尝试使用R来执行从伊比利亚半岛收集的数据的插值频率图。 (像这样https://gis.stackexchange.com/questions/147660/strange-spatial-interpolation-results-from-ordinary-kriging

我的问题是由于autokrige函数的atributte new_data中的某种错误,该图未显示插值数据。

https://cran.r-project.org/web/packages/automap/automap.pdf 新数据: 包含预测位置的sp对象。 new_data可以是一个点集,a 网格或多边形。不得包含NA。如果未提供此对象,则计算默认值。这是通过获取input_data的凸包并在该凸包中放置大约5000个网格单元来完成的。

我认为问题在于R不能很好地将地图转换为poligons,因为如果我避开这个new_data属性,我会得到一个krigging值的propper图。但我没有获得伊比利亚半岛的良好形状。 有谁可以帮助我吗?我真的很感激

在这里,您可以看到我的数据:http://pastebin.com/QHjn4qjP

实际代码: 现在,因为我将我的数据坐标转换为UTM投影,我没有得到错误消息,但最后的绘图没有插值,整个地图显示为一种颜色:(

 setwd("C:/Users/Ruth/Dropbox/R/pruebas")

#Libraries

library(maps)
library(mapdata)
library(automap)
library(sp)
library(maptools)
library(raster)
library(rgdal)

####################MAPA#############

#obtain the grid of the desired country
map<-getData('GADM', country='ESP', level=0)

#convert the grid to projected data
mapa.utm<-spTransform(mapa3,CRSobj =CRS(" +proj=utm +zone=29 +zone=30 +zone=31  +ellps=WGS84"))

###############################Datos#######################

#submit the data
data1<-read.table("FRECUENCIASH.txt",header=T)
head(data1)
attach(data1)
#convert longlat coordinates to UTM
coordinates(data1)<-c("X","Y")
proj4string(data1) = CRS("+proj=longlat +datum=WGS84") 
data1.utm=spTransform(data1, CRS("+proj=utm +zone=29 +zone=30 +zone=31 +ellps=WGS84 "))

######################Kriging interpolation #####################


#Performs an automatic interpolation

kriging_result<-autoKrige(Z~1,data1.utm,mapa.utm,data_variogram = data1.utm) 

#Plot the kriging

result1<-automapPlot(kriging_result$krige_output,"var1.pred",sp.layout = list("sp.points", data1.utm));result1

result2<-plot(kriging_result);result2

1 个答案:

答案 0 :(得分:1)

您获得的错误与您使用未投影数据作为自动输入的输入有关。 Automap只能处理预计的数据。谷歌搜索map projections应该给你一些背景信息。要将数据投影到合适的投影,可以使用sp包中的spTransform

没有newdata它的工作原理是因为在该对象中没有设置投影,所以automap无法警告你。但是,使用latlon输入数据的自动化结果不可靠。