R语言与GIS:[2]插值与地统计(2)
使用gstat程序包(1)
空间数据框架
想要进行地统计分析,需要使用一个很强大的程序包:gstat。gstat需要所使用的数据集是经过投影的,我们以meuse为例对此进行说明。
> library(sp)
> data(meuse)
> class(meuse)
[1] "data.frame"
其中,meuse为sp程序集提供的示例数据集,其属性为frame。
> names(meuse)
[1] "x" "y" "cadmium" "copper" "lead" "zinc" "elev"
[8] "dist" "om" "ffreq" "soil" "lime" "landuse" "dist.m"
names方法描述了该数据集的内部属性表,如x,y属性等。
> coordinates(meuse)=~x+y
> class(meuse)
[1] "SpatialPointsDataFrame"
attr(,"package")
[1] "sp"
可以发现,coordinates方法将meuse的data.frame提升到SpatialPointsDataFrame,从而使得meuse数据集具有了空间坐标。
栅格中的空间数据
> data(meuse.grid)
> coordinates(meuse.grid)=~x+y
> gridded(meuse.grid)=TRUE
> class(meuse.grid)
[1] "SpatialPixelsDataFrame"
attr(,"package")
[1] "sp"
利用gridded方法将meuse.grid提升为SpatialPixelsDataFrame。
> image(meuse.grid["dist"])
> title("至河边距离")
对距离进行栅格绘制,如图所示。
![R语言与GIS:[2]插值与地统计(2)](https://exp-picture.cdn.bcebos.com/50189b40102a04e2ff8eabf62b7aa010bd33c280.jpg)
变异函数
> lzn.vgm=variogram(log(zinc)~1,meuse)
变异函数通过variogram计算得到,其中log(zinc)~1表示zinc的对数中存在一个不变的趋势。
> lzn.fit=fit.variogram(lzn.vgm,model=vgm(1,"Sph",900,1))
> lzn.fit
model psill range
1 Nug 0.05066243 0.0000
2 Sph 0.59060780 897.0209
利用拟合函数fit对变异函数进行拟合,所采用的拟合模型为椭球模型,其块金以及模型参数如上所示。
> plot(lzn.vgm,lzn.fit)
对变异函数和拟合函数进行绘制,如下图所示。
![R语言与GIS:[2]插值与地统计(2)](https://exp-picture.cdn.bcebos.com/a31e1214c27bd2824ba530f23cb1eef97ebd3681.jpg)