Output Data and Analysis
This manual section will cover what outputs occur with running CARDAMOM and common forms of analysis. We will cover both the outputs from assimilation runs (the parameter set) and the outputs from forward runs after assimilation (fluxes and states of the ecosystem). For reference, some of the outputs common to many models are included here as tables (Table 1: Pools, Table 2: Fluxes, and Table 3: Parameters). For a specific models names parameters, pools and fluxes check the following scripts in the specific model:
‘’’ Example location ‘’’
The content of this section will include:
[Intro to reading output data]
[Output data format for parameters]
[Output data format for states and fluxes]
[Reading data]
[Intro to analyzing data]
[CARDAMOM Ensemble and Summary Statistics]
[Basic data plots]
[Aggregating CARDAMOM output]
[Appendix: Output Tables]
[Parameters]
[States]
[Fluxes]
[Cost Function]
CARDAMOM state and flux conventions
Initial conditions correspond to pools (states) at first timestep t = 0
Model Meteorological forcing at timestep t is centered between pools (states) t and t+1
Model fluxes at timestep t also centered between states t and t +1
In CARDAMOM C code See conventions above
For Matlab users CARDAMOM_RUN_MODEL.m throws out first one, but only because it’s repeat of initial conditions (which are contained in parameter vector).
Helper Scripts
Helper scripts (running and analysing CARDAMOM) are primarily written in Matlab and Python.
Filepath |
Description |
---|---|
script1 |
|
script1 |
|
script1 |
Aggregation and uncertainty propagatation
Description: general rules and guidelines for estimating and propagating uncertainty
“rule no 1.” (some funny movie reference) “Rule no 2.”: perform operation on data before calculating uncertainty (on states and fluxes?)
example: detrending state and flux data.
Step 1. Detrend every CARDAMOM sample
Step 2. Calculate percentile/statistics based on detrended dataset.
Other examples:
annually average time series (action = average annually for each samples first, then
monthly anomalies
normalizing data (GRACE
For comparison against observation, perform “observation operator” first, then aggregate.
Exception (sort of) to rule = “statistics on statistics”.
For example: what is the range of IAV (e.g. as sigma value) among CARDAMOM samples? Step 1. Calculate IAV per sample. Step 2. Summarize mean, median, standard deviation, percentiles of IAV among samples.
Two contrasting examples: “ensemble mean” = mean of N CARDAMOM samples.
(1) What is the IAV of ensemble mean GPP? Answer: (1) calculate ensemble mean GPP, and (2) calculate its IAV. Effectively no uncertainty estimate here, possible never need to do this for a single pixel (however: this order may be required for multi pixel uncertainty propagation).
(2) What is the IAV of all GPP ensemble members? Answer: (1) calculate IAV for each sample, and (2) calculate any useful/relevant statistics on IAV differences among samples (e.g. medians, percentiles).
Note on above examples: mean GPP IAV is not equal to mean of GPP IAV values corresponding to individual ensemble members (e.g. if distribution is skewed). iav(mean(GPP)) =/= mean(iav(GPP)).
How to aggregate statistics between pixels General issue: no information on correlation between samples between pixels. However, some uncertainty estimation generally required
Dilemma. Two pixels, one with mean GPP = 0.2 gC/m2/d (desert), and another with GPP = 10 gC/m2/d (rainforest). How to you aggregate IAVs (if at all)?
end of actual “rules”
List of Ouputs (Model ID: 811, 821)
Pools (gC/m2, kgH2O/m2, instantaneous)
CARDAMOM Pools |
Longname |
---|---|
‘c_labile’ |
|
‘c_foliar’ |
|
‘c_root’ |
|
‘c_wood’ |
|
‘c_finelitter’ |
|
‘c_som’ |
|
‘h2o_forplant’ |
Fluxes (gC/m2/day, kgH2O/m2/day, mean)
CARDAMOM Fluxes |
Longname |
---|---|
‘gppflux’ |
|
‘decf_tempr’ |
|
‘gpp_to_autoresp’ |
|
‘gpp_to_leaf’ |
|
‘gpp_to_labile’ |
|
‘gpp_to_root’ |
|
‘gpp_to_wood’ |
|
‘labile_to_foliar’ |
|
‘leaf_fall’ |
|
‘leaf_to_litter’ |
|
‘wood_to_soilc’ |
|
‘root_to_litter’ |
|
‘hetresp_litter’ |
|
‘hetresp_som’ |
|
‘litter_to_som’ |
|
‘leaf_onset’ |
|
‘fire_em_total’ |
|
‘fire_em_labile’ |
|
‘fire_em_foliar’ |
|
‘fire_em_root’ |
|
‘fire_em_wood’ |
|
‘fire_em_litter’ |
|
‘fire_em_som’ |
|
‘fire1_to_littersom’ |
|
‘fire2_to_littersom’ |
|
‘fire3_to_littersom’ |
|
‘fire4_to_littersom’ |
|
‘fire5_to_littersom’ |
|
‘et’ |
|
‘runoff’ |
Example List of Parameters Optimized in CARDAMOM
Shortname |
Codename |
Units |
Range |
---|---|---|---|
Decomposition rate |
0.00001 - 0.01 |
||
Fraction of GPP respired |
0.2 - 0.8 |
||
Fraction of (1-fgpp) to foliage |
0.01 - 0.5 |
||
Fraction of (1-fgpp) to roots |
0.01 - 1.0 |
||
Leaf Lifespan |
1.001 - 8.0 |
||
TOR wood* - 1% loss per year value |
0.000025 - 0.001 |
||
TOR roots |
0.0001 - 0.01 |
||
TOR litter |
0.0001 - 0.01 |
||
TOR SOM |
0.0000001 - 0.001 |
||
Temp factor* = Q10 = 1.2-1.6 |
0.018 - 0.08 |
||
Canopy Efficiency |
5.0 - 50.0 |
||
Bday |
day of year |
365.25 - 4x365.25 |
|
Fraction to Clab |
0.01 - 0.5 |
||
Clab Release period |
days |
365.25/12 - 100 |
|
Fday |
day of year |
365.25 - 4x365.25 |
|
Leaf fall period |
days |
365.25/12 - 150 |
|
LMCA |
g C/m2 |
5.0 - 200.0 |
|
C labile |
g C/m2 |
1.0 - 2000.0 |
|
C foliar |
g C/m2 |
1.0 - 2000.0 |
|
C roots |
g C/m2 |
1.0 - 2000.0 |
|
C_wood |
g C/m2 |
1.0 - 100000.0 |
|
C litter |
g C/m2 |
1.0 - 2000.0 |
|
C_som |
g C/m2 |
1.0 - 200000.0 |
|
IWUE: GPPxVPD/ET: gC/kgH2o -hPa |
hPa gC/kgH2O |
10.0 - 50.0 |
|
Runoff focal point (~maximum soil storage capacity x 4) |
1.0 - 100000.0 |
||
“Wilting point” |
kgH2O/m2 |
1.0 - 10000.0 |
|
“Bucket at t0” |
kgH2O/m2 |
1.0 - 10000.0 |
|
Foliar biomass CF |
0.01 - 1.0 |
||
“Ligneous” biomass CF”. |
0.01 - 1.0 |
||
DOM CF”. |
0.01 - 1 |
||
Resilience factor (since transfer to litter is represented as (1-pars[30])) “. |
0.01 - 1 |
||
Lab pool lifespan |
1.001 - 8.0 |
||
Moisture factor |
0.01 - 1.0 |