我正在尝试使用 R 执行从伊比利亚半岛收集的数据的插值频率地图。(类似这样的https://gis.stackexchange.com/questions/147660/strange-spatial-interpolation-results-from-ordinary-kriging)
我的问题是,由于 autokrige 函数的属性 new_data 中存在某种错误,该图没有显示插值数据。
https://cran.r-project.org/web/packages/automap/automap.pdf new_data: 包含预测位置的 sp 对象。new_data 可以是点集、网格或多边形。不得包含 NA。如果未提供此对象,则计算默认值。这是通过获取 input_data 的凸包并在该凸包中放置大约 5000 个网格单元来完成的。
我认为问题在于 R 没有很好地读取转换为 poligons 的地图,因为如果我避免使用这个 new_data 属性,我会得到一个 krigging 值的适当图。但我没有获得伊比利亚半岛的良好形状。有人能帮助我吗?我将不胜感激
在这里你可以看到我的数据: 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