С координатами сильно промахнулись. Комментарии писал по ходу чтения, не правил (могли остаться лишние). В целом неплохо.
Код: Выделить всё
library(geoR)
fn = "T2M_DATA.csv"
tab = read.table(fn,header=TRUE,sep=",",as.is=TRUE)
tab2 <- tab[1:3]
str(tab2)
tab2 <-as.geodata(tab2, coords.col = c(1, 2), data.col = 3)
str(tab2)
summary(tab2)
plot(tab2)
data.lim = range(tab$T2M_aprel)
plot(LATI~LONG,data=tab,pch=20,cex=0.5+(tab$T2M_aprel-data.lim[1])/diff(data.lim)*2.5)
drift.model = lm(T2M_aprel~LATI*LONG,data=tab)
summary(drift.model)
tab$Resid = residuals(drift.model)
data.lim = range(tab$Resid)
plot(LATI~LONG,data=tab,pch=20,cex=0.5+(tab$Resid-data.lim[1])/diff(data.lim)*2.5)
hist(tab$Resid,col="gray")
qqnorm(tab$Resid,pch=20,cex=1.5)
qqline(tab$Resid,col="red")
ks.test(tab$Resid,"pnorm",mean(tab$Resid),sd(tab$Resid))
plot(tab2, trend = "1st")
plot(variog(tab2, option = "cloud", max.dist = 161156.1))
plot(variog(tab2, max.dist = 161156.1))
vario_model <- variog(tab2, trend = "1st", max.dist = 161156.1)
plot(vario_model)
vario_model.no_drift = variog(tab2, max.dist = 161156.1)
vario_model.drift = variog(tab2, max.dist = 161156.1, trend = "1st")
y.lim=c(0,max(vario_model.no_drift$v,vario_model.drift$v))
x.lim=c(0,161156.1)
plot(vario_model.no_drift$u,vario_model.no_drift$v,pch=20,col="black",cex=1.5,ylim=y.lim,xlim=x.lim)
points(vario_model.drift$u, vario_model.drift$v ,pch=20,col="red",cex=1.5)
plot(variog4(tab2, trend = "1st", max.dist = 161156.1), omnidirectional = T)
vario_model.4dir = variog4(tab2, trend = "1st", max.dist = 161156.1)
for(i in 1:5) print(as.integer(is.na(vario_model.4dir[[i]]$v)))
exp_fit_fix <- variofit(vario_model, cov.model = "exponential", fix.nugget = T)
exp_fit_nofix <- variofit(vario_model, cov.model = "exponential", fix.nugget = F)
sph_fit_fix <- variofit(vario_model, cov.model = "spherical", fix.nugget = T)
sph_fit_nofix <- variofit(vario_model, cov.model = "spherical", fix.nugget = F)
plot(vario_model,pch=16)
lines(exp_fit_fix,col="green",lwd=4, lty = 1)
lines(exp_fit_nofix,col="red",lwd=4, lty = 2)
lines(sph_fit_fix,col="blue",lwd=4, lty = 3)
lines(sph_fit_nofix,col="black",lwd=4, lty = 4)
(exp_SSQ_fix <- summary(exp_fit_fix)$sum.of.squares)
(exp_SSQ_nofix <- summary(exp_fit_nofix)$sum.of.squares)
(sph_SSQ_fix <- summary(sph_fit_fix)$sum.of.squares)
(sph_SSQ_nofix <- summary(sph_fit_nofix)$sum.of.squares)
which.min(list(exp_SSQ_fix,exp_SSQ_nofix, sph_SSQ_fix, sph_SSQ_nofix))
prediction_grid <- expand.grid(seq(0, 800000, length.out = 100), seq(0, 800000, length.out = 100))
plot(prediction_grid)
points(LATI~LONG,data=tab,pch=20,cex=0.5+(tab$Resid-data.lim[1])/diff(data.lim)*2.5,col="red")
(tmp1=apply(prediction_grid,2,range))
(tmp2=apply(tab[,1:2],2,range))
tmp2-tmp1
prediction_grid <- expand.grid(seq(tmp2[1,2]-20000,tmp2[2,2]+20000,len=100),seq(tmp2[1,1]-20000,tmp2[2,1]+20000,len=100))
plot(prediction_grid)
points(LATI~LONG,data=tab,pch=20,cex=0.5+(tab$Resid-data.lim[1])/diff(data.lim)*2.5,col="red")
krig_temp <- krige.conv(tab2, loc=prediction_grid, krige=krige.control(obj.model=sph_fit_fix))
image(krig_temp,col=heat.colors(64))