Cargar los paquetes necesarios
require(sp)
## Loading required package: sp
require(spatial)
## Loading required package: spatial
require(gstat)
## Loading required package: gstat
##
## Attaching package: 'gstat'
## The following object is masked from 'package:spatial':
##
## variogram
require(lattice) # este es para graficar
## Loading required package: lattice
Importar objeto
perforaciones <- read.delim("~/Proyectos_R/geoest_TP/TP_7/perforaciones.TXT")
Convertirlo en un objeto de la clase SpatialPointsDataFrame
perf<-SpatialPointsDataFrame(perforaciones[,1:2],data.frame(cota = perforaciones[,3]))
Genero la grilla para graficar la predicción
bbox(perf)
## min max
## Easting 15.1 42.0
## Northing 0.1 26.2
expand.grid(Easting=seq(15,42.1, by=0.1), Northing=seq(0,26.3,by=0.1), KEEP.OUT.ATTRS = FALSE)->grid.c
coordinates(grid.c)<-c("Easting","Northing")
Grafico el h-scatterplot
hscat(cota~1,perf, c(0,3,6,9,12) )
Genero el variograma empírico
vario_emp<-variogram( cota ~1, perf)
plot(vario_emp)
Ajusto el variograma teórico (se muestran dos modelos teóricos ajustados)
vario_teo<-fit.variogram(vario_emp,vgm(psill=600000, "Lin",range = 12, nugget = 90000 ))
vario_teo
## model psill range
## 1 Nug 0.0 0.000
## 2 Lin 537447.2 11.282
plot(vario_emp,vario_teo)
plot(vario_emp,vgm(470000, "Sph",range = 11, nugget = 7000))
vario_teo<-fit.variogram(vario_emp,vgm(470000, "Sph",range = 11, nugget = 7000))
## Warning in fit.variogram(object, model, fit.sills = fit.sills, fit.ranges
## = fit.ranges, : No convergence after 200 iterations: try different initial
## values?
vario_teo
## model psill range
## 1 Nug 0 0.0000
## 2 Sph 9434659 294.6927
plot(vario_emp,vario_teo)
ts1 <- krige(cota~Easting+Northing, loc=perf, newdata=grid.c, model=NULL)
## [ordinary or weighted least squares prediction]
levelplot(var1.pred~Easting+Northing, as.data.frame(ts1))
ts2 <- krige(cota~Easting+Northing+I(Easting^2)+I(Northing^2), loc=perf, newdata=grid.c, model=NULL)
## [ordinary or weighted least squares prediction]
levelplot(var1.pred~Easting+Northing, as.data.frame(ts2))
m <- krige(cota~Easting+Northing, loc=perf, newdata=grid.c, model=vario_teo)
## [using universal kriging]
levelplot(var1.pred~Easting+Northing, as.data.frame(m))
El último modelo con los detalles gráficos
levelplot(var1.pred~Easting+Northing, as.data.frame(m),
col.regions=bpy.colors(64),
asp="iso", main="cota",
sub="sitios muestreados",
xlab="Este", ylab="Norte",
panel=function(x,y,z, ...) {
panel.levelplot(x, y, z, ...)
panel.grid(h=-1,v=-1, col="gray", lty=1)
panel.points(coordinates(perf),
cex=1*perf$cota/max(perf$cota),
pch=20, col="white")
})