Как конвертировать отрицательную вариограмму в положительную, чтобы потом делать кригинг? - PullRequest
0 голосов
/ 09 января 2019

Я пытаюсь составить карты урожайности какао (количество стручков на какао-дерево) на полях площадью 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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...