ghdc/Deploy/shud/SubScript/Sub2.1_Soil_SSURGO.R
2024-10-23 16:30:58 +08:00

54 lines
1.4 KiB
R

#'
#' THIS IS FOR US gSSURGO SOIL DATA ONLY
#'
source('Rfunction/fun.SSURGO.R')
#' ==========Soil Raster =============
fn0.soil = file.path(xfg$dir$soil, 'gSSURGO-mukey.tif')
r0 = raster(fn0.soil)
tmpsoil = file.path(dir.pd.pcs, 'soil_mukey.tif')
fun.gdalcut( f.in = fn0.soil,
f.mask = pd.pcs$wbd.buf,
f.out = tmpsoil,
s_srs = crs(r0), t_srs = xfg$crs.pcs)
r1 = raster(tmpsoil)
uk = sort(unique(r1))
rcl = cbind(uk, 1:length(uk))
r.cl = reclassify(r1, rcl=rcl)
plot(r.cl)
writeRaster(r.cl, filename = pd.pcs$soil.r, overwrite=TRUE)
#' ========Soil texture ==============
# cnames = c('sandtotal_r', 'silttotal_r', 'claytotal_r', 'om_r', 'dbthirdbar_r',
# "ksat_l","ksat_r", "ksat_h",
# "awc_l", "awc_r", "awc_h")
vars = c('sandtotal_r',
'silttotal_r',
'claytotal_r',
'om_r',
'dbthirdbar_r',
"ksat_r", "awc_r")
df0 = getSoilData(MUKEY = uk, vars = vars, na.rm=TRUE)
nu = length(uk)
att = matrix(0, nrow=nu, ncol=4)
i=1
cnames = c('silttotal_r',
'claytotal_r',
'om_r',
'dbthirdbar_r')
print(cnames)
for(i in 1:nu){
ikey = uk[i]
message(i, '/', nu, '\t', ikey)
idx = which(df0$mukey %in% ikey)
x=apply(df0[idx, cnames], 2, mean, na.rm=TRUE)
att[i, ] = x
}
plot(r.cl)
colnames(att) = cnames
write.df(att, file=pd.att$geol)
write.df(att, file=pd.att$soil)