我是第一次使用 R 中的“geoRglm”包,非常感谢一些帮助。
我的项目的目的是预测昆士兰沿岸的农业土地退化。
我有一个带有二进制响应变量的空间数据框(降级:0 = 降级,1 = 控制)。
我构建了一个二元广义线性模型,以确定哪些变量可用于预测 QLD 海岸沿线退化的发生。我将模型缩小到两个固定预测变量:BVG(广泛植被组)和集约农业(QLD 土地利用的二元分类)。
在此之后,我使用 Moran's I 检验来识别我的数据中的少量空间自相关。为了解决这个问题,我知道我必须创建一个广义线性地理空间模型,这就是“geoR”和“geoRglm”包的用武之地。我为克里金法设置参数,通过指定从 glm 中识别的协变量来识别空间趋势.
degradation <- read.geodata("HonDat4.txt",header=TRUE, data.col=3)
degradall <- read.table("HonDat4.txt", header=TRUE)
mcmc2.deg <- mcmc.control(S.scale=0.35, thin=100, burn.in=1000, n.iter=10000)
IntensiveAg <- degradall$IntensiveAg ## stick the covariates in the global environment
BVG <- degradall$BVG
modelD <- list(cov.pars = c(1,1), beta = rep(0, 3), family = "binomial",
trend = trend.spatial(trend = ~IntensiveAg + BVG, degradation))
tstD <- glsm.mcmc(degradation, mcmc.input=mcmc2.deg, model=modelD)
我目前无法将两个现有的空间数据集集成到克里金步骤中,其中包含我想要预测的沿海生物区的 BVG 和集约化农业值。我目前正在尝试基于现有(多边形)shapefile 创建光栅文件,以简化在指定范围内为这两个变量提取数据的过程。然而,由于它们的大小(> 2GB),这被证明具有挑战性。即使我成功地完成了这项工作,我也不确定在 glsm.krige() 函数中的哪个位置包含栅格图层,以确保在预测输出中考虑它们。
为了创建光栅文件,我尝试了以下代码......
#Read in shapefiles
library(sf)
library(rgdal)
BVGValues <- st_read("Merge_BVG.shp")
LandUse <- st_read("LandUse_Clipped.shp")
#Add IntensiveAg variable to LandUse
LandUse$IntensiveAg <- factor(LandUse$Primary, levels = c("Conservation and natural environments","Production from relatively natural environments","Production from dryland agriculture and plantations","Production from irrigated agriculture and plantations","Intensive Uses","Water"),
labels = c("0","0","1","1","0","0"))
#Increase memory allowed by R
memory.limit(18000)
#Rasterise shapefiles
extent <- extent(141.0011, 153.5779, -29.17956, -8.998516)
ras <- raster(extent,res=0.5)
BVG2 <- rasterize(BVGValues, ras, field=BVGValues$DBVG2M)
plot(BVG2)
IntensiveAg2 <- rasterize(LandUse, ras, field=LandUse$IntensiveAg)
plot(IntensiveAg2)
#Extract values for prediction extent
BVGDF <- extract(BVG2, extent))
INAGDF <- extract(BVG2, extent))
Combo <- cbind(BVG = BVGDF$x, IntensiveAg = INAGDF$x)
...我打算按如下方式使用光栅文件,尽管我怀疑我的用法不正确。
pred.tstD <- glsm.krige(tstD,
locations = expand.grid(x=seq(min(141.0011),
max(153.5779),
length.out=100),
y=seq(min(-29.17956),
max(-8.998516),
length.out=100)),
trend.l = trend.spatial(trend = ~BVG + IntensiveAg, Combo))
zmap.predsD <- matrix(pred.tstD$predict, nrow=188)
有没有人有使用“geoRglm”包的经验,特别是在给定范围内定义 GLSM 协变量的值?
我希望这是有道理的。感谢您的时间。任何帮助或建议将不胜感激!