Computing C Stock for the IT-Cp2 site in SamplingYear
http://www.icos-etc.eu/icos/
info@icos-etc.eu
Possible issues
Rock fragments
Warning: The name of the attribute in the database has changed in 2020. The \(`sosmW30s`\) variable is now \(`sosmW105s`\). Therefore, we have 2 ways for computing the RF.
Before 2020, the RF was computed in the following way:
\[RF_{30} = \frac{sosmW30s_{sp2}} {sosmW30s_{sp2}+sosmW30e_{sp2} }\]
After 2020, RF is computed using the weight of the coarse elements dried at 105°C:
\[RF_{105} = \frac{sosmW105s_{sp2}} {sosmW105s_{sp2}+sosmW30e_{sp2} }\]
Load and curate the data
This file is gathering the results for the site \(IT-Cp2\)
Extract the soil data
As a first step, we load and prepare the data. They are extracted from the ICOS soil database located in the French soil information system (DONESOL), which contains all the data from all sites. These files came from a SQL query.
Then, I extract the data and the sampling year for the selected site.
Extract coordinates and site stratification details
To compute design-based estimates of soil properties, we rely on spatial stratification parameters derived from the ETC’s pre-sampling analysis.
Using the spcosa
package and KMZ files (which contain
spatial layers), we extract:
\(idstratum\): Stratum identifier (ranging from 1 to 10).
\(H\): Total number of strata.
\(n_h\): Sample size (number of SP-I plots) per stratum.
\(nSites\): Total sample size (sum of all SP-I plots across strata).
\(stratumArea\): Area of each stratum (in pixels).
\(a_h\): Relative area per stratum.
Note: For KML files, extraction from the KMZ archive is required—this can be done using Windows.
Extract the soil depth limits
Accurate soil depth limits are essential for BADM quality control by ETC-Soil. While some errors may evade automated checks during C portal submission, uncorrected depth values directly impact derived calculations (e.g., soil stock estimates).
Impact on Downstream Calculations
Soil Stock Errors: Uncorrected thickness values bias carbon stock estimates.
ETC Feedback: Proactive corrections reduce revision requests post-submission.
Protocol Definitions
Standard Layer Depths
Layer type | Description | Order |
---|---|---|
O (undifferentiated) | WRB 2022 classification | -4 |
Oi (initial decomposition) | WRB 2022 classification | -3 |
Oe (intermediate) | WRB 2022 classification | -2 |
Oa (advanced) | WRB 2022 classification | -1 |
0 - 5 cm | ICOS standard depth | 1 |
5 - 15 cm | ICOS standard depth | 2 |
15 - 30 cm | ICOS standard depth | 3 |
30- 60 cm | ICOS standard depth | 4 |
60 - 100 cm | ICOS standard depth | 5 |
Exceptions
Peatlands and wetlands: May have not standard depths due to hydromorphic conditions.
Rocky Soils: Often exhibit shallow profiles with non-standard final layers.
Key Rules
To compute the mean and uncertainties accurately, we need to harmonize the soil layers as follow:
If the depth of the last layer is incomplete and varies across observations (e.g., extends only to 80 cm instead of the full 100 cm), we apply a frequency-weighted mean to harmonize this layer.
For non-standard layer intervals, we apply a spline model to interpolate the variables at the standard ICOS depth.
We correct organic layer ordering (Oa → Oe → Oi). If stratification is unclear, we aggregate the O layers into a single one (O layer).
Within a single SP-I plot, all associated SP-II units must share the same classification for the O layer.
The thickness (cm) of the O layer within an SP-I plot is assumed to be the average of the corresponding SP-II measurements.
Note: If you notice any inconsistencies in your depth limits, please contact ETC-Soil to update your BADM accordingly.
In this site, the PI implemented the following depths:
The soil depth limits were:
Soil properties and Quality Control
In this section, we outline the procedures used to compute the key soil properties necessary for calculating carbon and nitrogen stocks. Variables such as bulk density and fine soil stock are derived from standardized field measurements and imputed where missing values are detected.
Data quality control focuses on identifying and addressing missing and negative values. With the exception of SIC content, negative values are not expected in the dataset. Negative values are replaced with \(NA\), which are followed by imputation using the layer-specific average.
Checking the soil organic carbon (SOC) content
Checking for negative and missing values in SOC content. If the table is not empty, it means that SOC content is negative or missing.
Negative and missing values of SOC content are imputed using the
layer-specific averages.
The following graph shows the organic carbon content frequency \(SOC_{layer}\) distribution across soil layers, following imputation of missing values using the layer-specific averages.
Checking the total nitrogen (NT) content
Checking for negative and missing values in NT content.
Negative values are replaced with \(NA\) and the missing values of NT are imputed using the layer-specific averages.
The following graph shows the NT content frequency \(NT_{layer}\) distribution across soil layers, following imputation of missing values using the layer-specific averages.
Compute the soil inorganic carbon (SIC) content
Soil inorganic carbon (SIC; g.kg-1) was calculated as the product of the result of the calcimetry analysis (CaCO3; g.kg-1 equivalent) multiplied by 0.12.
Checking for missing values in inorganic carbon content.
Note: Negative values of carbonates are not replaced with the mean because they represent the detection threshold of the laboratory analysis.
The following graph shows the \(SIC_{layer}\) content frequency distribution across soil layers
Compute residual water content using the wet-basis approach
We compute the residual water content (\(RW^l_{ik}\)) using the wet based approach as follow :
For mineral layers at SP-I level:
\[ RW^l_{ik} = \frac{SOSM\_WX30\_E^l_{ik} - SOSM\_WX105\_E^l_{ik}}{SOSM\_WX30\_E^l_{ik}} \]
For organic layers at SP-I level:
SOSM_W30_E
is considered as a dry mass because residual
water content is assumed to be negligible.
In order to check the data quality, missing and negative values of soil water mass at 30 and 105°C are listed in the two tables below:
If the table below is not empty, it means that either or both
SOSM_WX30_E
or SOSM_WX105_E
are missing:
If the table below is not empty, it means that the residual water is
negative, that is, SOSM_WX30_E
<
SOSM_WX105_E
.
The negative values are replaced with \(NA\).
Negative values are replaced with \(NA\) and the missing values of \(RW^l_{ik}\) are imputed using the layer-specific averages.
The following graph shows the \(RW^l_{ik}\) frequency distribution across soil layers, following imputation of missing values using the layer-specific averages.
Compute the density and mass of soil fractions for SP-II plots
Bulk density
\[ BD^l_{ik} = \frac{ \left( SOSM\_W30\_E^{l}_{ik}\times (1 - RW^{l}_{ik}) \right) + SOSM\_W105\_S^{l}_{ik} + SOSM\_W70\_R^{l}_{ik} }{SOSM\_VOLUME^{l}_{ik}} \]
In order to check the data quality of bulk density, missing values are tracked in the following table.
If the following table is not empty, it means that one of the
following variables contain missing values: SOSM_W30_E
,
SOSM_W105_S
(or SOSM_W30_S
in previous
versions), SOSM_W70_R
, or SOSM_VOLUME
.
The missing values of \(BD^l_{ik}\) are imputed using the layer-specific averages.
The following graph shows the \(BD^l_{ik}\) frequency distribution across soil layers, following imputation of missing values using the layer-specific averages.
Coarse organic fragments
As coarse organic fragments is mostly composed by root fragments, this variable is named \(RD^l_{ik}\), that denotes root density.
\[ RD^l_{ik} = \frac{SOSM\_W70\_R^{l}_{ik}}{SOSM\_VOLUME^{l}_{ik}} \]
In order to check the data quality of \(RD^l_{ik}\), missing values are tracked in the following table.
If the table is not empty, it means that one of the following
properties contains missing values: SOSM_W30_E
,
SOSM_W105S
(or SOSM_W30_S
in previous
versions), SOSM_W70_R
, or SOSM_VOLUME
.
The missing values of \(RD^l_{ik}\) are imputed using the layer-specific averages.
The following graph shows the \(RD^l_{ik}\) frequency distribution across soil layers, following imputation of missing values using the layer-specific averages.
Fine soil stock for mineral layers
Fine soil stock (FSS) is equivalent to mass of fine earth (FE), as commonly defined in scientific literature.
\[ FSS^l_{ik} = \frac{ (SOSM\_LD^{l}_{ik} -SOSM\_UD^{l}_{ik}) \times (SOSM\_W30\_E^l_{ik}) \times (1 - RW ^l_ik)}{SOSM\_VOLUME^{l}_{ik}} \]
In order to check the \(FSS^l_{ik}\) quality, missing data are tracked in the following table.
If the table is not empty, it means that either or both
SOSM_W30_E
or SOSM_VOLUME
are missing:
Missing values of \(FSS^l_{ik}\) are imputed using the layer-specific averages.
The following graph shows the fine soil stock frequency \(FSS^l_{ik}\) distribution across soil layers, following imputation of missing values using the layer-specific averages.
Organic material (OM) mass in O layers
This fraction represents the organic material in the O horizon after removing stones and living material.
\[ OM^l_{ik} = \frac{ SOSM\_W30^l_{ik} \times (1 - residWater^l_{ik})}{SOSM\_AREA^l_{ik}} \]
Coarse mineral elements (rock fragments)
\[ RF^l_{ik} = \frac { SOSM\_W105\_S^l_{ik}}{ SOSM\_W105\_S^l_{ik} + SOSM\_W30\_E^l_{ik}} \]
Warning: In the version 20200319 of
the “Instruction for SOIL SAMPLING AND PREPARATION”, the drying
temperature of coarse elements was set to 105°C instead of 30 °C.
Therefore, the variable name of rock fragments changed from
SOSM_W30_S
to SOSM_W105_S
in the BADM.
In order to check the \(RF^l_{ik}\) quality, missing data are tracked in the following table.
The following graph shows the \(RF^l_{ik}\) distribution across soil layers, following imputation of missing values using the layer-specific averages.
Compute the SP-I data
Here we compute the stock \(z_{i}^l\) for the monitored properties using the formula described in the protocol. The data are aggregated at SP-I level.
We now check if all the observations and layers are present.
Specifically, we compute:
- The number of SP-I plots in \(IT-Cp2\) is \(20\).
- The number of available SP-I plots should total 20.
Stratum ID | nb. of SP-I |
---|---|
1 | 2 |
2 | 2 |
3 | 2 |
4 | 2 |
5 | 2 |
6 | 2 |
7 | 2 |
8 | 2 |
9 | 2 |
10 | 2 |
- The number of SP-I plots per stratum should total 2.
sp1 | nb. of soil layer |
---|---|
SP-I_01 | 8 |
SP-I_02 | 8 |
SP-I_03 | 8 |
SP-I_04 | 8 |
SP-I_05 | 8 |
SP-I_06 | 8 |
SP-I_07 | 8 |
SP-I_08 | 8 |
SP-I_09 | 8 |
SP-I_10 | 8 |
SP-I_11 | 8 |
SP-I_12 | 8 |
SP-I_13 | 8 |
SP-I_14 | 8 |
SP-I_15 | 8 |
SP-I_16 | 8 |
SP-I_17 | 8 |
SP-I_18 | 8 |
SP-I_19 | 8 |
SP-I_20 | 8 |
The number of layers per SP-I plot, which should total between 5 (only mineral) or 7 (mineral + organic)
The number of observations is \(160\).
Profile plot of the data
Using the package aqp
, it is possible to plot the
collection of profiles.
Horizon-level attributes can be symbolized with color.
Note to PI: If the profile plot present some anomaly (e.g; incomplete depth limits), please contact ETC-Soil for verification.
We plot here the bulk density
We plot here the fine soil stock
We plot here the organic carbon content
We plot here the soil inorganic carbon content
We plot here the total nitrogen content
We plot here the organic carbon stocks
We plot here the soil inorganic carbon stocks
And finally we plot here the total nitrogen stocks
Plot of the relation C/N
Some Maps to visualize the raw data at SP-I site
In this section, we provide a set of maps per soil layer for the different monitored parameters.
The dots represent the value measured on the SP-I plots.
Bulk density
The map shows the bulk density per layer.
Rock fragments
The map shows the rock fragments per layer.
Fine soil stock
The map shows the fine soil stock per mineral layer.
Mass of organic layers
The map shows the organic material mass per organic layer.
Soil organic carbon content
The map shows the organic carbon content per layer.
Total N content
The map shows the content of nitrogen per layer.
Soil inorganic carbon content
The map shows the content of nitrogen per layer.
C to N ratio
The map shows the C to N ratio per layer.
Soil organic carbon stock
The map shows the organic carbon stock per layer.
Total nitrogen stock
The map shows the total nitrogen stock per layer.
Inorganic carbon stock
The map shows the inorganic carbon stock per layer.
Design-based estimates of the different statistical quantity
We compute design-based estimates of two types of quantity :
- The mean and the sampling variance of the different target variables: FSS, RF, C and N content, the \(C/N\) and the carbon and nitrogen stocks for the ICOS site for each layer.
- The total and the sampling variance of the stock of nitrogen and carbon for each layer and for the whole profile
These estimates are based on the design-based theory detailed in the webpage here
Mean of the soil variables
The plot displaying the estimates for the mean and its 95 % confidence interval are given below for each variables and layer.
Note: Negative confidence intervals are often related to the low number of observation for a given variable (e.g., often observed in SIC and rock fragments)
Bulk density
DB estimates of the mean and its CIs for the bulk density per layer
Fine soil stock
DB estimates of the mean and its CIs for the fine soil stock per layer
Coarse plant fragments
DB estimates of the mean and its CIs for the coarse plant fragment density per layer
Rock fragments
DB estimates of the mean and its CIs for the rock fragment percentage per layer
Organic carbon content
DB estimates of the mean and its CIs for the organic C content per layer
Nitrogen content
The following plot presents the DB estimates of the mean of the total nitrogen content per layer and the 95 % confidence intervals.
DB estimates of the mean and its CIs for the total N content per layer
Inorganic carbon content
DB estimates of the mean and its CIs for the inorganic C content per layer
C/N ratio
The following plot presents the DB estimates of the mean of the CN ratio per layer and the 95 % confidence intervals.
DB estimates of the mean and its CIs for the C:N ratio per layer
Mean of the stock per layer
We may now compute the estimates of the mean C and N stock per layer. Please, see the notes 1 and 2 above mentioned.
Organic carbon stock
DB estimates of the mean and its CIs for the SOC stocks per layer
Inorganic carbon stock
DB estimates of the mean and its CIs for the SIC stocks per layer
Nitrogen stock
DB estimates of the mean and its CIs for the NT stocks per layer
Mean of the total Stock for Carbon and Nitrogen
To compute the cumulative C and N stocks up to the deepest soil layer (\(\hat{ \overline{t}}\)), we first sum the stock of all layers within each SP-I and then we estimate the mean of the total stock.
Organic carbon stock
DB estimates of the total SOC stocks and its CIs
Inorganic carbon stock
DB estimates of the total SIC stocks and its CIs
N stock
DB estimates of the total NT stocks and its CIs
Total stocks within the target area
This part needs the area of the plot coming from the KMZ files. If \(`NA`\), it means we do not have the KMZ file from ETC.
For this site, the area is \(2.90789\times 10^{5}\) m^2
The following CSV files are available for download.
Soil organic carbon
Soil inorganic Carbon
Total Nitrogen
Export of the level II data
Three files can be requested:
SP-I raw and elaborated data
It is possible to export here the raw C and N data and the averages of FSS and rock fragments data. The computed stock are also provided. The variable names and units are as follows:
Description | Variable | Unit |
---|---|---|
SP-I identifier | Name | Categorical |
Layer type | MinOrg | Categorical |
Organic layer type and mineral layer intervals | depth_horizon | Categorical |
Layer order | layer | Ordinal |
Upper sampling depth | SOSM_UD | cm |
Lower sampling depth | SOSM_LD | cm |
Soil bulk density | SOIL_CHEM_BD | g cm-3 |
Soil fine soil stock | SOIL_CHEM_FSS | g cm-2 |
Soil rock fragments content | SOIL_TEX_ROCK | % |
Soil coarse plants fragments density | SOIL_CHEM_RESIDUES_DENSITY | g cm-3 |
Soil total carbon content | SOIL_CHEM_C_ORG | g C kg soil-1 |
Soil total inorganic carbon content | SOIL_CHEM_C_INO | g C kg soil-1 |
Soil total nitrogen content | SOIL_CHEM_N_TOT | g N kg soil-1 |
soil C:N ratio | SOIL_CHEM_CN_RATIO | g C g N-1 |
Soil total carbon stock | SOIL_STOCK_C_ORG | g C m-2 |
Soil total inorganic carbon stock | SOIL_STOCK_C_INO | g IC m-2 |
Soil total nitrogen stock | SOIL_STOCK_N_TOT | g N m-2 |
DB estimate of the sampling means per layer and standard deviations
These data are also part of the ETC L2 products and are available on the Carbon Portal. They are included in the ancillary file within the ETC L2 archive, which can be accessed here or via the link on the homepage.
Note: Please be aware that if you compute the mean and uncertainty metrics yourself from the raw data, the results may differ from those presented here because the ICOS calculation is based on a design-based approach.
Description | Variable | Unit |
---|---|---|
Layer order | layer | Ordinal |
Weighted mean based on DB approach | “Mean” prefix | g m-2 |
Weighted standard deviation based on DB approach | “SD” prefix | g m-2 |
DB estimate of the sampling means for the whole soil and standard deviations
These data refer to the mean of the sum the stock of all layers within each SP-I, split into Mineral and Organic horizons.
Note (1): Please be aware that if you compute the mean and uncertainty metrics yourself from the raw data, the results may differ from those presented here because the ICOS calculation is based on a design-based approach.
Note (2): These data are not also part of the ETC L2 products and are available on the Carbon Portal. PThe L2 total stock in C portal is a weighted average across combined mineral and organic layers, while here we show weighted averages separately by layer. Differences in SP-I number per mineral and organic layers may cause the sum of means to differ from the combined pooled average.
Description | Variable | Unit |
---|---|---|
Layer type | MinOrg | Categorical |
Minimum top limit layer | SOSM_UD | cm |
Maximum bottom limit layer | SOSM_LD | cm |
Weighted mean based on DB approach | “Mean” prefix | g m-2 |
Weighted standard deviation based on DB approach | “SD” prefix | g m-2 |
wider format
Description | Variable | Unit |
---|---|---|
Variable | List of variable used to compute the stocks (OC, N and IC) | Categorical |
Layer type | MinOrg | Categorical |
Weighted mean of total carbon based on DB approach | Mean | g m-2 |
Weighted standard deviation of total carbon based on DB approach | SD | g m-2 |
longer format
That’s all !
Credits
This document has been created using RStudio and Rmarkdown and large number of R packages !
## R version 4.3.1 (2023-06-16 ucrt)
## Platform: x86_64-w64-mingw32/x64 (64-bit)
## Running under: Windows 11 x64 (build 26100)
##
## Matrix products: default
##
##
## locale:
## [1] LC_COLLATE=French_France.utf8 LC_CTYPE=French_France.utf8 LC_MONETARY=French_France.utf8
## [4] LC_NUMERIC=C LC_TIME=French_France.utf8
##
## time zone: Europe/Paris
## tzcode source: internal
##
## attached base packages:
## [1] stats graphics grDevices utils datasets methods base
##
## other attached packages:
## [1] readxl_1.4.2 viridisLite_0.4.2 data.table_1.14.8 DT_0.28 here_1.0.1
## [6] cols4all_0.8 raster_3.6-20 conflicted_1.2.0 terra_1.8-29 purrr_1.0.1
## [11] tibble_3.2.1 knitr_1.43 lubridate_1.9.2 aqp_1.42 forcats_1.0.0
## [16] kableExtra_1.4.0 RColorBrewer_1.1-3 tmap_4.1 stars_0.6-1 sf_1.0-13
## [21] abind_1.4-5 sp_1.6-1 crayon_1.5.2 spcosa_0.4-2 rJava_1.0-6
## [26] readr_2.1.4 ggplot2_3.4.2 dplyr_1.1.2 tidyr_1.3.0 rmdformats_1.0.4
## [31] prettydoc_0.4.1 stringr_1.5.0 foreach_1.5.2 rmarkdown_2.22
##
## loaded via a namespace (and not attached):
## [1] DBI_1.1.3 tmaptools_3.1-1 s2_1.1.4 logger_0.3.0
## [5] rlang_1.1.1 magrittr_2.0.3 e1071_1.7-13 compiler_4.3.1
## [9] mgcv_1.8-42 png_0.1-8 systemfonts_1.0.4 vctrs_0.6.3
## [13] pkgconfig_2.0.3 wk_0.7.3 fastmap_1.1.1 ellipsis_0.3.2
## [17] lwgeom_0.2-13 leafem_0.2.4 labeling_0.4.2 utf8_1.2.3
## [21] tzdb_0.4.0 spacesXYZ_1.6-0 tinytex_0.45 xfun_0.39
## [25] cachem_1.0.8 jsonlite_1.8.5 highr_0.10 parallel_4.3.1
## [29] cluster_2.1.4 R6_2.5.1 bslib_0.5.0 stringi_1.7.12
## [33] cellranger_1.1.0 jquerylib_0.1.4 Rcpp_1.0.14 bookdown_0.34
## [37] iterators_1.0.14 base64enc_0.1-3 leaflet.providers_2.0.0 Matrix_1.5-4.1
## [41] splines_4.3.1 timechange_0.2.0 tidyselect_1.2.0 rstudioapi_0.14
## [45] dichromat_2.0-0.1 yaml_2.3.7 maptiles_0.10.0 codetools_0.2-19
## [49] lattice_0.21-8 leafsync_0.1.0 plyr_1.8.8 withr_2.5.0
## [53] evaluate_0.21 units_0.8-2 proxy_0.4-27 xml2_1.3.4
## [57] pillar_1.9.0 rsconnect_1.1.1 KernSmooth_2.23-21 generics_0.1.3
## [61] rprojroot_2.0.3 hms_1.1.3 munsell_0.5.0 scales_1.2.1
## [65] class_7.3-22 glue_1.6.2 tools_4.3.1 leaflegend_1.2.1
## [69] webshot_0.5.5 XML_3.99-0.14 grid_4.3.1 crosstalk_1.2.0
## [73] colorspace_2.1-0 nlme_3.1-162 cli_3.6.1 fansi_1.0.4
## [77] svglite_2.1.1 gtable_0.3.3 sass_0.4.6 digest_0.6.31
## [81] classInt_0.4-9 htmlwidgets_1.6.2 farver_2.1.1 memoise_2.0.1
## [85] htmltools_0.5.5 lifecycle_1.0.3 leaflet_2.2.2