# -----------------------------
# estimate metabolic demand, given size structure
if (!exists("year.assessment")) {
year.assessment=lubridate::year(Sys.Date())
year.assessment=lubridate::year(Sys.Date()) - 1
}
p = aegis::aegis_parameters( DS="metabolism", yrs=1970:year.assessment )
metabolism.db( DS="metabolism.redo", p=p )
# o = metabolism.db( DS="metabolism", p=p )
if (0) {
# about 700 MB/process ..
ram_required_per_process = 1 # about 600 MB per process in 2017 GB
ncpus = min( parallel::detectCores(), floor( ram_local() / ram_required_per_process ) )
ncpus.covars = min( parallel::detectCores(), floor( ram_local() / .7 ) ) # 700 GB in 2018 .. for prediction of global covars
}
# -----------------------------
for ( vn in p$varstomodel) {
# vn="smr"
print(vn)
p = aegis::aegis_parameters(
DS="metabolism",
variables=list(Y=vn),
yrs = c(1999:year.assessment), # years for modelling and interpolation
stmv_dimensionality="space-year",
stmv_global_modelengine = "gam",
stmv_global_family = gaussian(link="identity"),
stmv_global_modelformula = formula( paste(
vn, '~ s(t, k=3, bs="ts") + s(tsd.climatology, k=3, bs="ts") + s(tmean.climatology, k=3, bs="ts") ',
' + s(t.range, k=3, bs="ts") + s( b.range, k=3, bs="ts") ',
' + s(log(z), k=3, bs="ts") + s( log(dZ), k=3, bs="ts") + s( log(ddZ), k=3, bs="ts")',
' + s(log(substrate.grainsize), k=3, bs="ts") ' )),
stmv_local_modelengine ="twostep",
stmv_twostep_space = "fft", # other possibilities: "fft", "tps"
stmv_twostep_time = "gam",
stmv_local_modelformula_time = formula( paste(
vn, '~ s(yr, k=10, bs="ts") + s(cos.w, k=3, bs="ts") + s(sin.w, k=3, bs="ts") ',
'+ s( cos.w, sin.w, yr, k=30, bs="ts")') ),
stmv_local_model_distanceweighted = TRUE,
stmv_rsquared_threshold = 0.2, # lower threshold
stmv_distance_statsgrid = 4, # resolution (km) of data aggregation (i.e. generation of the ** statistics ** )
stmv_distance_scale = c(40, 60, 80), # km ... approx guess of 95% AC range .. data tends to be sprse realtive to pure space models
# stmv_distance_prediction_fraction = 1, # stmv_distance_prediction = stmv_distance_statsgrid * XX ..this is a half window km (default is 0.75)
depth.filter = 0, # the depth covariate is input as log(depth) so, choose stats locations with elevation > log(1 m) as being on land
stmv_nmin = 8*(year.assessment-1999),# floor( 7 * p$ny ) # min number of data points req before attempting to model timeseries in a localized space
stmv_nmax = 8*(year.assessment-1999)*11, # max( floor( 7 * p$ny ) * 11, 8000), # no real upper bound
stmv_clusters = list( scale=rep("localhost", ncpus), interpolate=rep("localhost", ncpus) ) # ncpus for each runmode
)
)
stmv( p=p, runmode=c("globalmodel", "interpolate" ) ) # no global_model and force a clean restart
aegis_db( p=p, DS="predictions.redo" ) # warp predictions to other grids
aegis_db( p=p, DS="stmv.stats.redo" ) # warp stats to other grids
aegis_db( p=p, DS="complete.redo" )
aegis_db( p=p, DS="baseline.redo" )
aegis_db_map( p=p )
if (0) {
global_model = stmv_db( p=p, DS="global_model")
summary( global_model )
plot(global_model)
}
}
---
Family: gaussian
Link function: identity
Formula:
mr ~ s(t, k = 3, bs = "ts") + s(tsd.climatology, k = 3, bs = "ts") +
s(tmean.climatology, k = 3, bs = "ts") + s(log(t.range),
k = 3, bs = "ts") + s(log(b.range), k = 3, bs = "ts") + s(log(z),
k = 3, bs = "ts") + s(log(dZ), k = 3, bs = "ts") + s(log(ddZ),
k = 3, bs = "ts") + s(log(substrate.grainsize), k = 3, bs = "ts")
Parametric coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 15253.7 202.8 75.23 <2e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Approximate significance of smooth terms:
edf Ref.df F p-value
s(t) 1.5477 2 129.275 < 2e-16 ***
s(tsd.climatology) 1.9837 2 36.564 < 2e-16 ***
s(tmean.climatology) 1.8999 2 10.677 9.44e-06 ***
s(log(t.range)) 1.9377 2 15.969 6.41e-08 ***
s(log(b.range)) 1.4403 2 2.834 0.024740 *
s(log(z)) 0.9176 2 4.735 0.000536 ***
s(log(dZ)) 1.8186 2 13.770 2.17e-07 ***
s(log(ddZ)) 1.7520 2 2.385 0.064152 .
s(log(substrate.grainsize)) 1.8101 2 42.411 < 2e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
R-sq.(adj) = 0.0494 Deviance explained = 5.01%
GCV = 9.1465e+08 Scale est. = 9.1399e+08 n = 22230
---
analysis (hours): 0.239
Family: gaussian
Link function: identity
Formula:
smr ~ s(t, k = 3, bs = "ts") + s(tsd.climatology, k = 3, bs = "ts") +
s(tmean.climatology, k = 3, bs = "ts") + s(log(t.range),
k = 3, bs = "ts") + s(log(b.range), k = 3, bs = "ts") + s(log(z),
k = 3, bs = "ts") + s(log(dZ), k = 3, bs = "ts") + s(log(ddZ),
k = 3, bs = "ts") + s(log(substrate.grainsize), k = 3, bs = "ts")
Parametric coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 0.0055192 0.0000149 370.3 <2e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Approximate significance of smooth terms:
edf Ref.df F p-value
s(t) 1.983 2 586.368 < 2e-16 ***
s(tsd.climatology) 1.998 2 74.818 < 2e-16 ***
s(tmean.climatology) 1.463 2 76.785 < 2e-16 ***
s(log(t.range)) 1.800 2 5.143 0.0034 **
s(log(b.range)) 1.999 2 22.493 1.67e-10 ***
s(log(z)) 1.973 2 81.062 < 2e-16 ***
s(log(dZ)) 1.785 2 1.585 0.1684
s(log(ddZ)) 1.976 2 27.487 5.79e-13 ***
s(log(substrate.grainsize)) 1.976 2 34.289 7.35e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
R-sq.(adj) = 0.125 Deviance explained = 12.6%
GCV = 2.8606e-06 Scale est. = 2.8566e-06 n = 12860
Family: gaussian
Link function: identity
Formula:
Pr.Reaction ~ s(t, k = 3, bs = "ts") + s(tsd.climatology, k = 3,
bs = "ts") + s(tmean.climatology, k = 3, bs = "ts") + s(log(t.range),
k = 3, bs = "ts") + s(log(b.range), k = 3, bs = "ts") + s(log(z),
k = 3, bs = "ts") + s(log(dZ), k = 3, bs = "ts") + s(log(ddZ),
k = 3, bs = "ts") + s(log(substrate.grainsize), k = 3, bs = "ts")
Parametric coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 1.3178636 0.0001544 8534 <2e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Approximate significance of smooth terms:
edf Ref.df F p-value
s(t) 2.000 2 4.116e+05 < 2e-16 ***
s(tsd.climatology) 1.999 2 7.274e+01 < 2e-16 ***
s(tmean.climatology) 1.949 2 9.606e+01 < 2e-16 ***
s(log(t.range)) 1.993 2 2.489e+01 1.39e-11 ***
s(log(b.range)) 1.875 2 4.128e+00 0.01224 *
s(log(z)) 1.995 2 7.228e+01 < 2e-16 ***
s(log(dZ)) 1.469 2 9.550e-01 0.25856
s(log(ddZ)) 1.861 2 5.331e+00 0.00287 **
s(log(substrate.grainsize)) 1.834 2 3.186e+00 0.03113 *
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
R-sq.(adj) = 0.986 Deviance explained = 98.6%
GCV = 0.00055543 Scale est. = 0.000555 n = 23274
---
Family: gaussian
Link function: identity
Formula:
Ea ~ s(t, k = 3, bs = "ts") + s(tsd.climatology, k = 3, bs = "ts") +
s(tmean.climatology, k = 3, bs = "ts") + s(log(t.range),
k = 3, bs = "ts") + s(log(b.range), k = 3, bs = "ts") + s(log(z),
k = 3, bs = "ts") + s(log(dZ), k = 3, bs = "ts") + s(log(ddZ),
k = 3, bs = "ts") + s(log(substrate.grainsize), k = 3, bs = "ts")
Parametric coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -616.7698 0.1834 -3363 <2e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Approximate significance of smooth terms:
edf Ref.df F p-value
s(t) 2.000 2 8.236e+05 < 2e-16 ***
s(tsd.climatology) 1.997 2 7.086e+01 < 2e-16 ***
s(tmean.climatology) 1.915 2 9.120e+01 < 2e-16 ***
s(log(t.range)) 1.979 2 1.915e+01 3.82e-09 ***
s(log(b.range)) 1.656 2 1.469e+00 0.16791
s(log(z)) 1.978 2 5.256e+01 < 2e-16 ***
s(log(dZ)) 1.591 2 1.452e+00 0.15461
s(log(ddZ)) 1.726 2 4.613e+00 0.00471 **
s(log(substrate.grainsize)) 1.827 2 2.821e+00 0.04527 *
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
R-sq.(adj) = 0.994 Deviance explained = 99.4%
GCV = 783.38 Scale est. = 782.78 n = 23274
---
Family: gaussian
Link function: identity
Formula:
A ~ s(t, k = 3, bs = "ts") + s(tsd.climatology, k = 3, bs = "ts") +
s(tmean.climatology, k = 3, bs = "ts") + s(log(t.range),
k = 3, bs = "ts") + s(log(b.range), k = 3, bs = "ts") + s(log(z),
k = 3, bs = "ts") + s(log(dZ), k = 3, bs = "ts") + s(log(ddZ),
k = 3, bs = "ts") + s(log(substrate.grainsize), k = 3, bs = "ts")
Parametric coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 4.022e-03 8.277e-06 485.9 <2e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Approximate significance of smooth terms:
edf Ref.df F p-value
s(t) 1.845 2 20.925 1.73e-10 ***
s(tsd.climatology) 1.921 2 43.541 < 2e-16 ***
s(tmean.climatology) 1.981 2 223.441 < 2e-16 ***
s(log(t.range)) 1.803 2 7.098 0.000413 ***
s(log(b.range)) 1.999 2 14.331 5.82e-07 ***
s(log(z)) 1.974 2 42.884 < 2e-16 ***
s(log(dZ)) 1.789 2 2.620 0.053728 .
s(log(ddZ)) 1.975 2 19.701 1.61e-09 ***
s(log(substrate.grainsize)) 1.901 2 93.460 < 2e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
R-sq.(adj) = 0.0999 Deviance explained = 10.1%
GCV = 1.5244e-06 Scale est. = 1.5231e-06 n = 22230
---
Family: gaussian
Link function: identity
Formula:
zm ~ s(t, k = 3, bs = "ts") + s(tsd.climatology, k = 3, bs = "ts") +
s(tmean.climatology, k = 3, bs = "ts") + s(log(t.range),
k = 3, bs = "ts") + s(log(b.range), k = 3, bs = "ts") + s(log(z),
k = 3, bs = "ts") + s(log(dZ), k = 3, bs = "ts") + s(log(ddZ),
k = 3, bs = "ts") + s(log(substrate.grainsize), k = 3, bs = "ts")
Parametric coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 0.4998119 0.0009438 529.6 <2e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Approximate significance of smooth terms:
edf Ref.df F p-value
s(t) 1.990 2 388.578 < 2e-16 ***
s(tsd.climatology) 1.987 2 118.949 < 2e-16 ***
s(tmean.climatology) 1.954 2 52.391 < 2e-16 ***
s(log(t.range)) 1.975 2 41.094 < 2e-16 ***
s(log(b.range)) 1.956 2 47.027 < 2e-16 ***
s(log(z)) 1.945 2 146.267 < 2e-16 ***
s(log(dZ)) 1.843 2 5.737 0.001912 **
s(log(ddZ)) 1.863 2 6.990 0.000527 ***
s(log(substrate.grainsize)) 1.922 2 58.181 < 2e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
R-sq.(adj) = 0.103 Deviance explained = 10.4%
GCV = 0.020771 Scale est. = 0.020755 n = 23302
---
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.