Thanks re. rocks.
I am using the shiny apps then modifying the code from there? Is that what's causing the problem?
dstart <- "31/12/1979"
dfinish <- "31/12/2024"
minshade <- 0
maxshade <- 30
Thcond <- 2.5
SpecHeat <- 870
Density <- 2.56
BulkDensity <- 2.56
windfac <- 1
REFL <- 0.2
cap <- 0
SLE <- 0.95
warm <- 0
Usrhyt <- 0.01
clearsky <- 0
lon <- 117.32987
lat <- -32.54115997
cat('downloading DEM via package elevatr \n')
dem <- microclima::get_dem(r = NA, lat = lat, lon = lon, resolution = 5, zmin = -20, xdims = 100, ydims = 100)
if(FALSE){
elev <- raster::extract(dem, c(lon, lat))[1]
xy <- data.frame(x = lon, y = lat)
sp::coordinates(xy) = ~x + y
sp::proj4string(xy) = "+init=epsg:4326"
xy <- as.data.frame(sp::spTransform(xy, raster::crs(dem)))
slope <- raster::terrain(dem, unit = "degrees")
slope <- raster::extract(slope, xy)
aspect <- raster::terrain(dem, opt = "aspect", unit = "degrees")
aspect <- raster::extract(aspect, xy)
ha36 <- 0
for (i in 0:35) {
har <- microclima::horizonangle(dem, i * 10, raster::res(dem)[1])
ha36[i + 1] <- atan(raster::extract(har, xy)) * (180/pi)
}
hori <- spline(x = ha36, n = 24, method = 'periodic')$y
hori[hori < 0] <- 0
hori[hori > 90] <- 90
}else{
slope <- 0
aspect <- 0
hori<- c(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
ha36 <- spline(x = hori, n = 36, method = 'periodic')$y
ha36[ha36 < 0] <- 0
ha36[ha36 > 90] <- 90
elev <- NA
}
rainmult = 1
DEP=c(0, 2.5, 5, 10, 15, 20, 30, 50, 100, 200)
claypan = FALSE
if(claypan){
soilpro <- matrix(data = 0, nrow = 6, ncol = 5)
colnames(soilpro) <- c("depth", "blkdens", "clay", "silt", "sand")
soilpro[, 1] <- c(2.5, 7.5, 22.5, 45, 80, 150)
soilpro[, 2] <- 1.4 # bulk density (Mg/m3)
soilpro[, 3] <- 90 # % clay
soilpro[, 4] <- 0 # % silit
soilpro[, 5] <- 10 # % sand
soil.hydro <- pedotransfer(soilpro = as.data.frame(soilpro), DEP = DEP)
PE <- soil.hydro$PE
BB <- soil.hydro$BB
BD <- soil.hydro$BD
KS <- soil.hydro$KS
BulkDensity <- BD[seq(1, 19, 2)] * 1000 #rep(1360,10) # soil bulk density (kg/m3)
DD = rep(Density, 19)
}else{
PE = rep(1.1, 19)
KS = rep(0.0037, 19)
BB = rep(4.5, 19)
BD = rep(BulkDensity, 19)
DD = rep(Density, 19)
}
soilgrids <- 0
ERR <- 1
tz <- tz_lookup_coords(lat, lon, method = "fast")
dataset <- 'SILO'
if(dataset == 'SILO'){
micro <- micro_silo(dem = dem, SLE = SLE, ERR = ERR, Thcond = Thcond, SpecHeat = SpecHeat, dstart = dstart, dfinish = dfinish, Usrhyt = Usrhyt, soilgrids = soilgrids,
windfac = windfac, slope = slope, aspect = aspect, REFL = REFL,
hori = hori, minshade = minshade,
maxshade = maxshade, loc = c(lon, lat), runshade = 1,
run.gads = 1, snowmodel = 0, BulkDensity = BulkDensity, Density = Density,
cap = cap, warm = warm,
email = "
maya....@outlook.com", PE = PE, BB = BB, KS = KS, BD = BD, DD = DD)
while(min(micro$metout[,1]) == 0 & ERR <= 3){
cat("model crashed, trying a higher error tolerance \n")
ERR <- ERR + 0.5
micro <- micro_silo(dem = dem, SLE = SLE, ERR = ERR, Thcond = Thcond, SpecHeat = SpecHeat, dstart = dstart, dfinish = dfinish, Usrhyt = Usrhyt, soilgrids = soilgrids,
windfac = windfac, slope = slope, aspect = aspect, REFL = REFL,
hori = hori, minshade = minshade,
maxshade = maxshade, loc = c(lon, lat), runshade = 1,
run.gads = 1, snowmodel = 0, BulkDensity = BulkDensity, Density = Density,
cap = cap, warm = warm,
email = "
maya....@outlook.com", PE = PE, BB = BB, KS = KS, BD = BD, DD = DD)
}
}else{
micro <-
micro_micro.in(ERR = ERR, soilgrids = soilgrids, dstart = dstart, dfinish = dfinish,
Usrhyt = Usrhyt, slope = slope, aspect = aspect, REFL = REFL,
hori = hori, minshade = minshade, maxshade = maxshade,
loc = c(lon, lat), runshade = 1, run.gads = 1, snowmodel = 0,
BulkDensity = BulkDensity, cap = cap, elev = elev,
Density = Density, Thcond = Thcond, SpecHeat = SpecHeat,
windfac = windfac, PE = PE, BB = BB, KS = KS, BD = BD, DD = DD)
while(min(micro$metout[,1]) == 0 & ERR <= 3){
cat("model crashed, trying a higher error tolerance \n")
ERR <- ERR + 0.5
micro <-
micro_micro.in(ERR = ERR, soilgrids = soilgrids, dstart = dstart, dfinish = dfinish,
Usrhyt = Usrhyt, slope = slope, aspect = aspect, REFL = REFL,
hori = hori, minshade = minshade, maxshade = maxshade,
loc = c(lon, lat), runshade = 1, run.gads = 1, snowmodel = 0,
BulkDensity = BulkDensity, cap = cap, elev = elev,
Density = Density, Thcond = Thcond, SpecHeat = SpecHeat,
windfac = windfac, PE = PE, BB = BB, KS = KS, BD = BD, DD = DD)
}
}
apologies for the mass of text.