Learn R Programming

sptemExp (version 0.1.4)

bKriging: Regional Mean Estimation by Block Kriging

Description

Block Kriging can use the measured or prediceted values to estimate the regional mean with minimum variance.

Usage

bKriging(samples, rtargets,tarStr,paras,model)

Arguments

samples

the sample data used to estimate the regional mean, must include the x and y coordinates. Format:DataFrame.

rtargets

the points within the target region used to represent the region to be predicted for the regional means. The points determines the density, shape and size of the region. Format:dataframe

tarStr

The target variable name (field name)

paras

variogram parameters: format: vector, (range,sill,nugget)

model

variogram model: default: "exponential"

Value

vector format: (kriged mean, kriged standard deviation, regular average, regular standard deviation)

Examples

Run this code
# NOT RUN {
#Test for simulated data

dataDt=data.frame(x=sample(c(1:3000),100),y=sample(c(1:2500),100))
dataDt$z=(2*dataDt$x+5*dataDt$y)
# }
# NOT RUN {
<!-- %%10+rnorm(100) -->
# }
# NOT RUN {
dataDtSp=dataDt
sp::coordinates(dataDtSp) <- ~x+y
cl=colorGrinf(dataDt$z)
raster::plot(dataDtSp,col=cl$cols[cl$index])
tarDt=data.frame()
for(i in c(1:10)){
  for(j in c(1:10)){
    index=(i-1)*10+j
    tarDt[index,"x"]=i*10
    tarDt[index,"y"]=j*10
  }
}

varg=automap::autofitVariogram(z~1,input_data =dataDtSp,model="Exp")
paras=c(varg$var_model[2,3],varg$var_model[2,2],varg$var_model[1,2])
krigeMean=bKriging(dataDt, tarDt,"z",paras,model="Exp")
krigeMean

# }
# NOT RUN {
#Test using PM2.5 data of the 2014 PM2.5 of Shandong province

data("spointspre")
spointspresub=spointspre[!is.na(spointspre$pre_m),]
spointspresub$log_pre=log(spointspresub$pre_m)
sz=as.integer(nrow(spointspresub)/1)
index=sample(c(1:sz),size=as.integer(sz/2))
samples=spointspresub[index,]
rtargets=(spointspresub[c(1:sz),])[-index,]
paras=c(50000,0.0278,0.2)
samples@data$x=sp::coordinates(samples)[1]
samples@data$y=sp::coordinates(samples)[2]
rtargets@data$x=sp::coordinates(rtargets)[1]
rtargets@data$y=sp::coordinates(rtargets)[2]
sampledata=samples@data
rtargetsdata=rtargets@data
krigeMean=bKriging(sampledata, rtargetsdata,"log_pre",paras,model="Exp")
exp(krigeMean)
# }
# NOT RUN {
# }

Run the code above in your browser using DataLab