Turnover time of carbon over land ecosystems
Overview
This recipe evaluates the turnover time of carbon over land ecosystems (tau_ctotal) based on the analysis of Carvalhais et al. (2014). In summary, it provides an overview on:
Comparisons of global distributions of tau_ctotal from all models against observation and other models
Variation of tau_ctotal across latitude (zonal distributions)
Variation of association of tau_ctotal and climate across latitude (zonal correlations)
metrics of global tau_ctotal and correlations
Calculation of turnover time
First, the total carbon content of land ecosystems is calculated as,
where \(cSoil\) and \(cVeg\) are the carbon contents in soil and vegetation. Note that this is not fully consistent with `Carvalhais et al. (2014)`_, in which `ctotal` includes all carbon storages that respire to the atmosphere. Due to inconsistency across models, it resulted in having different carbon storage components in calculation of ctotal for different models.
The turnover time of carbon is then calculated as,
where ctotal and gpp are temporal means of total carbon content and gross primary productivity, respectively. The equation is valid for steady state, and is only applicable when both ctotal and gpp are long-term averages. Therefore, the recipe should always include the mean operator of climate_statistics in preprocessor.
Available recipes and diagnostics
Recipes are stored in recipes/
recipe_carvalhais14nat.yml
Diagnostics are stored in diag_scripts/
land_carbon_cycle/diag_global_turnover.py
land_carbon_cycle/diag_zonal_turnover.py
land_carbon_cycle/diag_zonal_correlation.py
User settings in recipe
Preprocessor
climate_statistics
: {mean} - calculate the mean over full time period.
regrid
: {nearest} - nearest neighbor regridding to the selected observation resolution.
mask_landsea
: {sea} - mask out all the data points from sea.
multi_model_statistics
: {median} - calculate and include the multimodel median.
Script land_carbon_cycle/diag_global_turnover.py
Required settings:
obs_variable
: {str
} list of the variable(s) to be read from the observation filesOptional settings:
ax_fs
: {float
, 7.1} - fontsize in the figure.
fill_value
: {float
, nan} - fill value to be used in analysis and plotting.
x0
: {float
, 0.02} - X - coordinate of the left edge of the figure.
y0
: {float
, 1.0} Y - coordinate of the upper edge of the figure.
wp
: {float
, 1 / number of models} - width of each map.
hp
: {float
, = wp} - height of each map.
xsp
: {float
, 0} - spacing betweeen maps in X - direction.
ysp
: {float
, -0.03} - spacing between maps in Y -direction. Negative to reduce the spacing below default.
aspect_map
: {float
, 0.5} - aspect of the maps.
xsp_sca
: {float
, wp / 1.5} - spacing between the scatter plots in X - direction.
ysp_sca
: {float
, hp / 1.5} - spacing between the scatter plots in Y - direction.
hcolo
: {float
, 0.0123} - height (thickness for horizontal orientation) of the colorbar .
wcolo
: {float
, 0.25} - width (length) of the colorbar.
cb_off_y
: {float
, 0.06158} - distance of colorbar from top of the maps.
x_colo_d
: {float
, 0.02} - X - coordinate of the colorbar for maps along the diagonal (left).
x_colo_r
: {float
, 0.76} - Y - coordinate of the colorbar for ratio maps above the diagonal (right).
y_colo_single
: {float
, 0.1086} - Y-coordinate of the colorbar in the maps per model (separate figures).
correlation_method
: {str
, spearman | pearson} - correlation method to be used while calculating the correlation displayed in the scatter plots.
tx_y_corr
: {float
, 1.075} - Y - coordinate of the inset text of correlation.
valrange_sc
: {tuple
, (2, 256)} - range of turnover times in X - and Y - axes of scatter plots.
obs_global
: {float
, 23} - global turnover time, provided as additional info for map of the observation. For models, they are calculated within the diagnostic.
gpp_threshold
: {float
, 0.01} - The threshold of gpp in kg m^{-2} yr^{-1} below which the grid cells are masked.
Script land_carbon_cycle/diag_zonal_turnover.py
Required settings:
obs_variable
: {str
} list of the variable(s) to be read from the observation filesOptional settings:
ax_fs
: {float
, 7.1} - fontsize in the figure.
fill_value
: {float
, nan} - fill value to be used in analysis and plotting.
valrange_x
: {tuple
, (2, 1000)} - range of turnover values in the X - axis.
valrange_y
: {tuple
, (-70, 90)} - range of latitudes in the Y - axis.
bandsize
: {float
, 9.5} - size of the latitudinal rolling window in degrees. One latitude row if set toNone
.
gpp_threshold
: {float
, 0.01} - The threshold of gpp in kg m^{-2} yr^{-1} below which the grid cells are masked.
Script land_carbon_cycle/diag_zonal_correlation.py
Required settings:
obs_variable
: {str
} list of the variable(s) to be read from the observation filesOptional settings:
ax_fs
: {float
, 7.1} - fontsize in the figure.
fill_value
: {float
, nan} - fill value to be used in analysis and plotting.
correlation_method
: {str
, pearson | spearman} - correlation method to be used while calculating the zonal correlation.
min_points_frac: {``float
, 0.125} - minimum fraction of valid points within the latitudinal band for calculation of correlation.
valrange_x
: {tuple
, (-1, 1)} - range of correlation values in the X - axis.
valrange_y
: {tuple
, (-70, 90)} - range of latitudes in the Y - axis.
bandsize
: {float
, 9.5} - size of the latitudinal rolling window in degrees. One latitude row if set toNone
.
gpp_threshold
: {float
, 0.01} - The threshold of gpp in kg m^{-2} yr^{-1} below which the grid cells are masked.
Required Variables
tas (atmos, monthly, longitude, latitude, time)
pr (atmos, monthly, longitude, latitude, time)
gpp (land, monthly, longitude, latitude, time)
cVeg (land, monthly, longitude, latitude, time)
cSoil (land, monthly, longitude, latitude, time)
Observations
The observations needed in the diagnostics are publicly available for download from the Data Portal of the Max Planck Institute for Biogeochemistry after registration.
Due to inherent dependence of the diagnostic on uncertainty estimates in observation, the data needed for each diagnostic script are processed at different spatial resolutions (as in Carvalhais et al., 2014), and provided in 11 different resolutions (see Table 1). Note that the uncertainties were estimated at the resolution of the selected models, and, thus, only the pre-processed observed data can be used with the recipe. It is not possible to use regridding functionalities of ESMValTool to regrid the observational data to other spatial resolutions, as the uncertainty estimates cannot be regridded.
Table 1. A summary of the observation datasets at different resolutions.
Reference |
target_grid |
grid_label* |
---|---|---|
Observation |
0.5x0.5 |
gn |
NorESM1-M |
2.5x1.875 |
gr |
bcc-csm1-1 |
2.812x2.813 |
gr1 |
CCSM4 |
1.25x0.937 |
gr2 |
CanESM2 |
2.812x2.813 |
gr3 |
GFDL-ESM2G |
2.5x2.0 |
gr4 |
HadGEM2-ES |
1.875x1.241 |
gr5 |
inmcm4 |
2.0x1.5 |
gr6 |
IPSL-CM5A-MR |
2.5x1.259 |
gr7 |
MIROC-ESM |
2.812x2.813 |
gr8 |
MPI-ESM-LR |
1.875x1.875 |
gr9 |
* The grid_label is suffixed with z for data in zonal/latitude coordinates: the zonal turnover and zonal correlation.
To change the spatial resolution of the evaluation, change {grid_label} in obs_details and the corresponding {target_grid} in regrid preprocessor of the recipe.
At each spatial resolution, four data files are provided:
tau_ctotal_fx_Carvalhais2014_BE_gn.nc
- global data of tau_ctotal
tau_ctotal_fx_Carvalhais2014_BE_gnz.nc
- zonal data of tau_ctotal
r_tau_ctotal_tas_fx_Carvalhais2014_BE_gnz.nc
- zonal correlation of tau_ctotal and tas, controlled for pr
r_tau_ctotal_pr_fx_Carvalhais2014_BE_gnz.nc
- zonal correlation of tau_ctotal and pr, controlled for tas.
The data is produced in obs4MIPs standards, and provided in netCDF4 format. The filenames use the convention:
{variable}_{frequency}_{source_label}_{variant_label}_{grid_label}.nc
{variable}: variable name, set in every diagnostic script as obs_variable
{frequency}: temporal frequency of data, set from obs_details
{source_label}: observational source, set from obs_details
{variant_label}: observation variant, set from obs_details
{grid_label}: temporal frequency of data, set from obs_details
Refer to the Obs4MIPs Data Specifications for details of the definitions above.
All data variables have additional variables ({variable}_5 and {variable}_95) in the same file. These variables are necessary for a successful execution of the diagnostics.
References
Carvalhais, N., et al. (2014), Global covariation of carbon turnover times with climate in terrestrial ecosystems, Nature, 514(7521), 213-217, doi: 10.1038/nature13731.