Я пытаюсь составить карты урожайности какао (количество стручков на какао-дерево) на полях площадью 1000 м² (50 х 20 м). Но когда я пытаюсь подогнать вариограмму, я получаю следующее сообщение:
Предупреждающее сообщение:
В fit.variogram (объект = PbVar, модель = sph.model):
единственная модель в вариограмме подходит
А потом, когда я запускаю криг, я получаю сообщение об ошибке:
Ошибка в load.variogram.model (объект $ model [[name]], c (i - 1, i - 1), max_dist = max_dist):
диапазон вариограммы никогда не может быть отрицательным
Что не так, как я могу подогнать свою вариограмму, чтобы она была положительной, а затем сделать криг? Или я должен использовать другую функцию пространственной интерполяции из других пакетов? Я должен выполнить эту работу в 25 полях, и у меня возникла одна и та же проблема для всех полей площадью 1000 м².
Спасибо.
library(readxl)
D02<-read_excel("D:/Mes Donnees)/R/stat2/D02.xlsx", col_names=T, na="")
library(sp)
library(gstat)
library(automap)
coordinates(D02) <- ~X+Y
spplot(D02,"yield",colorkey=TRUE)
bubble(D02, "yield",col=c("#00ff0088", "#00ff0088"), main = "rdt(cabosses)")
## creating a specific grid of 50m x 20m
min_x = min(D02$X)
min_y = min(D02$Y)
x_length = max(D02$X - min_x)
y_length = max(D02$Y - min_y)
cellsize = 1
ncol = round(x_length/cellsize,0)
nrow = round(y_length/cellsize,0)
grid = GridTopology(cellcentre.offset=c(min_x,min_y),
cellsize=c(cellsize,cellsize),cells.dim=c(ncol,nrow))
grid = SpatialPixelsDataFrame(grid,data=data.frame(id=1:prod(ncol,nrow)))
plot(grid)
PbVar <- variogram(yield~1, D02)
summary(PbVar)
plot(PbVar,pch=20,cex=1.5,col="black",ylab=expression("Semivariance ("*gamma*")"), xlab="Distance (m)", main = "yield")
sph.model <- vgm(psill=1739,"Sph",range=50, kappa=10)
sph.fit <- fit.variogram(object = PbVar,model=sph.model)
plot(PbVar,pch=20,cex=1.5,col="black",ylab=expression("Semivariance ("*gamma*")"),xlab="Distance (m)", main = "Cocoa yield (number of pods per cocoa tree)",model=sph.fit)
PbSph <- krige(yield~1, D02, grid, model = sph.fit)