Computing C Stock for one ICOS Site


http://www.icos-etc.eu/icos/

Back to index

Click here to come back to the index

the report is also available in pdf here

Possible issues

Rock fragments

Warning The name of the attribute in the database has changed in 2020. \(`sosmW30s`\) to \(`sosmW105s`\)

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, it is computed using the weight of the coarse elements dried at 105°C:

\[RF_{105} = \frac{sosmW105s_{sp2}} {sosmW105s_{sp2}+sosmW30e_{sp2} }\]

For the available sites, only \(`sosmW30s`\) is populated

Load and curate the data

This file is gathering the results for the site \(CH-Dav\)

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. This files came from a sql query.

Then, I extract the data for the selected site

## [1] 382  48

In the protocol, the layer depth are defined as follow for mineral layer :

  • Layer 1 : 0-5 cm ,
  • Layer 2 : 5-15 cm ,
  • Layer 3 : 15-30 cm ,
  • Layer 4 : 30-60 cm ,
  • Layer 5 : 60-100 cm.

For the organic layer, it is named O#.

In this file, the PI implemented the following depth:

layerSamp n
-0.5 - 0 3
-0.6 - 0 2
-0.8 - 0 6
-1 - 0 11
-1.2 - 0 9
-1.3 - 0 3
-1.4 - 0 3
-1.5 - 0 3
-1.8 - -0.8 3
-1.8 - 0 3
-10 - -9 3
-11 - -1 3
-11.7 - -5.6 3
-13.1 - -6.6 2
-15.8 - -7.8 1
-2 - 0 3
-26 - -11 3
-26.8 - -1.8 1
-3 - 0 3
-3.1 - -1 3
-3.7 - -1.2 1
-4 - -1 1
-4.2 - -1 2
-4.4 - -3.1 1
-4.6 - -1.8 3
-4.7 - -1.5 3
-5.2 - -1.2 2
-5.6 - -1.2 3
-6.6 - -0.8 3
-7.8 - -0.8 3
-8 - -4 1
-8.4 - -4.6 3
-9.2 - -5.2 2
-9.7 - -4.7 1
0 - 5 53
15 - 25 3
16 - 26 6
17 - 27 15
18 - 28 6
19 - 29 3
20 - 30 18
30 - 40 24
32 - 42 11
33 - 43 3
34 - 45 3
35 - 40 3
35 - 45 6
45 - 55 24
45 - 60 10
48 - 58 5
5 - 15 54
50 - 60 9
60 - 68 1
60 - 70 8
60 - 72 1
60 - 80 1
65 - 75 2
70 - 80 1
71 - 80 1
75 - 90 1
80 - 89 1
80 - 90 4
80 - 92 1
85 - 95 4

Extract the Coordinates

We use the kmz file that is produced by ETC and contains 7 layers to extract the coordinates of the SPI sites that are taken from layer 5 and reproduced below. For this, it is needed to extract the kml file from the kmz using windows.

Compute residual water content

The first step is to compute the residual water content \(residWater\) for as follow :

for mineral layers:

\(residWater = \frac{sosmWx30e_{sp1}-sosmWx105e_{sp1}}{sosmWx30e_{sp1}}\)

for organic layers:

\(sosmW30\) is considered as a dry mass because residual water content is assumed to be negligible.

Here is the histogram of the residual water content data for all samples :

Histogram of Residual Water

Histogram of Residual Water

In order to check the data quality, missing and negative residual water content are listed in the two tables below.

If the table below is not empty, it means that sosm_wx30E < sosm_wx105E :

no_profil_sp2 sosm_wx30e_sp1 sosm_wx105e_sp1 residWater

If the table below is not empty, it means that either or both sosm_wx30e or sosm_wx105e are missing:

no_profil_sp2 sosm_wx30e_sp1 sosm_wx105e_sp1 residWater
CH-Dav/SP-II_06-01 NA NA NA
CH-Dav/SP-II_06-03 NA NA NA
CH-Dav/SP-II_09-01 NA NA NA
CH-Dav/SP-II_09-02 NA NA NA
CH-Dav/SP-II_09-03 NA NA NA
CH-Dav/SP-II_20-02 NA NA NA
CH-Dav/SP-II_20-03 NA NA NA
CH-Dav/SP-II_20-03 NA NA NA

To fix this issue, we replace \(`NA`\) and negative values by the mean of residual humidity per layer (the effect on the soil stock calculation is supposed to be small)

Compute the Bulk density and Fine soil stock for SP2 plots

In a second step, we compute the Bulk density and fine soil stock for the sp2 plots the BD.

Bulk density

Here is the histogram of the computed \(BD_{layer}\) for all layers.

Similarly as for the residual water content, in order to check the bulk density quality, missing data are tracked in the following table.

If the following table is not empty, it means that one of the following properties contains no data: sosm_w30e, sosm_w30s (or sosm_105s in previous versions), sosm_w70r, or sosm_volume

In the following, the missing values of bulk density are replaced by the mean bulk density in each layer.

The table lists the estimated bulk density in the SP2 locations where it was missing

The following graph shows the histogram of the bulk density for each soil layer after replacing missing values by averages.

Coarse plants fragments density

Here is the histogram of the computed coarse plants fragments density \(RD_{layer}\) for all layers.

Similarly as for the residual water content, in order to check the bulk density quality, missing data are tracked in the following table.

If the following table is not empty, it means that one of the following properties contains no data: sosm_w30e, sosm_w30s (or sosm_105s in previous versions), sosm_w70r, or sosm_volume

In the following, the missing values of bulk density are replaced by the mean bulk density in each layer.

The table lists the estimated bulk density in the SP2 locations where it was missing

The following graph shows the histogram of the bulk density for each soil layer after replacing missing values by averages (.

Fine soil stock for mineral layers

Here is the histogram of the computed \(FSS_{layer}\) for all layers in \(g.cm^{-2}\).

\[\begin{equation} FSS^l_{ik} = \frac{ ( ProfBottom^{l}_{ik} -ProfTop^{l}_{ik} ) * (sosmW30E^l_{ik}) * (100 - residWater^l_ik)/100}{SosmVolume^{l}_{ik}} \end{equation}\]

For organic layer

\[\begin{equation} FSS^l_{ik} = \frac{ sosmW30^l_{ik} * (100 - residWater^l_ik) / 100}{SosmSurface^{l}_{ik}} \end{equation}\]

Similarly as for the residual water content and bulk density, in order to check the FSS quality, missing data are tracked in the following table.

If the table is not empty, it means that either or both sosm_w30e or sosm_volume are missing:

Missing values of fine soil stocks are replaced by the mean fine soil stock in each layer.

The table lists the estimated fine soil stock in the SP2 locations where it was missing

The following graph shows the fine soil stock frequency distribution in each soil layer after filling for the missing values.

Compute rock fragments fraction for SP2 plots

Third step consists in checking the quality of the rock fragments fraction data.

Warning The name of the attribute in the database has changed in 2020. \(`sosmW30s`\) to \(`sosmW105s`\)

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, it is computed using the weight of the coarse elements dried at 105°C:

\[RF_{105} = \frac{sosmW105s_{sp2}} {sosmW105s_{sp2}+sosmW30e_{sp2} }\] for organic layer, it can be computed as follow:

\[RF_{105} = \frac{sosmW105s_{sp2}} {sosmW105s_{sp2}+sosmW30s_{sp2} }\]

The following graph shows the histogram of the rock weights and rock fraction among all SP2.

Raw Rock fragments and Weight of the coarse elements dried for SP2 plots

Raw Rock fragments and Weight of the coarse elements dried for SP2 plots

Now, we can compute the \(RF_{30}\) for the sp2 sites.

We check if some data are missing.

We estimate the missing \(RF\) using \(\overline{RF}\) per layer listed in the following table if missing values are present.

The following graph shows the histogram of the rock frament for each soil layer after replacing missing values by averages.

Compute the stock of soil inorganic carbon (SIC)

Soil inorganic carbon (SIC; g.kg^(-1)) was calculated as the product of the result of the calcimetry analysis (CaCO_3 ; g.kg-1 equivalent) multiplied by 0.12.

Compute the id of the strata

To compute the design-based estimates of the soil properties, I have to first guess the stratum id. I assume here 2 sites per stratum and that site are ordered in the file by stratum.

We may now check if all the observations are there. First, we can compute the number of available SPI sites.

Compute the SPI data

Here we compute the stock \(z_{i}^l\) for the monitored properties using the formula described in the protocol.

This number of SPI sites is \(153\). The maximim should be 100.

Here I compute the number of data per stratum x layer. We should have 10 times the 10 observations as we have 5 layers and 2 sI1 per stratum and, 10 Strata

## # A tibble: 10 × 3
##    idstratum     n nprof
##        <int> <int> <int>
##  1         1    18    10
##  2         2    20    10
##  3         3    17    10
##  4         4    17    10
##  5         5    17    10
##  6         6    14     8
##  7         7    18    10
##  8         8    10    10
##  9         9    10    10
## 10        10    12     9

The number of SP I is 18`

Profil 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.

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 stock of organic carbon

we plot here the stock of Coarse plant fragments density

we plot here the sotck of soil inorganic carbon.

And finally the stock of nitrogen

Plot of the relation C/N

Some Maps to visualize the raw data at spI 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 spI sites.

Bulk density

The map shows the bulk density per layer.

Fine soil stock

The map shows the Fine soil stock per layer.

Total N content

The map shows the content of nitrogen per layer.

Total organic carbon

The map shows the content of carbon per layer.

C to N ratio

The map shows the C to N ratio per layer.

Rock fragments

The map shows the rock fragments per layer.

Organic carbon Stock

The map shows the carbon stock per layer.

Inorganic Carbon Stock

The map shows the carbon stock per layer.

Nitrogen Stock

The map shows the nitrogen 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 designed-based theory explicated in the page here

Mean content per layer

We may now compute the estimate of the means of the diffrent parameters per layer (BD, FSS, RF, C , N, Stock C and Stock N)

\[\hat{ \overline{z^l} }\]

and its sampling variance \[\hat V (\hat{ \overline{z^l} } )\]

Bulk density

The following plot presents the DB estimates of the mean of the bulk density per layer and the 95 % confidence interval.

Fine soil stock

The following plot presents the DB estimates of the mean of the fine soil stock per layer and the 95 % confidence interval.

Rock fragments

The following plot presents the DB estimates of the mean of the rock fragments per layer and the 95 % confidence interval.

Organic carbon content

The estimates for the mean of the carbon content with its 95 % confidence interval are given below.

DB estimates of the mean and its CI for the C content per layer

DB estimates of the mean and its CI for the C content per layer

Inorganic carbon content

The estimates for the mean of the carbon content with its 95 % confidence interval are given below.

DB estimates of the mean and its CI for the C content per layer

DB estimates of the mean and its CI for the C content per layer

Nitrogen content

The estimates for the nitrogen content with its 95 % confidence interval are given below.

DB estimates of the mean and its CI for the N content per layer

DB estimates of the mean and its CI for the N content per layer

C/N ratio

The estimates for the C-to-N ratio with its 95 % confidence interval are given below.

Mean of the stock per layer

We may now compute the estimates of the mean C and N stock per layer

Organic Carbon stock

The estimates for mean C stock per layer with its 95 % confidence interval are given below.

Inorganic carbon stock

The estimates for mean incorganic C stock per layer with its 95 % confidence interval are given below.

Nitrogen stock

The estimates for total N stock per layer with its 95 % confidence interval are given below.

Mean of the total Stock for Carbon and Nitrogen

To compute the sum of the stock \(\hat{ \overline{t}}\), we first sum the sum of the stock over the different layers for each spI and then estimate the total stock.

Organic carbon stock

We plot here as a result the average of the total stock over the profile.

Inorganic carbon stock

We plot here as a result the average of the total stock over the profile.

N stock

To compute the sum of the N stock \(\hat{ \overline{t}}\), we first sum the sum of the N stock over the different layers for each spI and then estimate the mean total stock.

We plot here as a result the average of the total stock over the whole profile.

Total Stock

To compute the total stock, we need the total area of the plot extrated from the kml files

For this site, the area is \(1.5642\times 10^{5}\) m^2

Organic carbon

This part needs the area of the plot coming from the kmz files. If \(`NA`\), it means I do not have the kmz file from ETC.

The total C stock of the footprint is \(2.7556803\times 10^{9}\) (see graphe for unit) for an area of \(1.5642\times 10^{5}\) m^2. The 95 % confidence interval is [ \(2.3916795\times 10^{9}\) , \(3.1196811\times 10^{9}\) ]

Inorganic Carbon

This part needs the area of the plot coming from the kmz files. If \(`NA`\), it means I do not have the kmz file from ETC.

The total C stock of the footprint is \(2.0411294\times 10^{8}\) (see graphe for the unit) for an area of \(1.5642\times 10^{5}\) m^2. The 95 % confidence interval is [ \(2.4888483\times 10^{9}\) , \(3.0225123\times 10^{9}\) ]

Nitrogen

This part needs the area of the plot coming from the kmz files. If \(`NA`\), it means I do not have the kmz file from ETC.

The total C stock of the footprint is \(1.1467002\times 10^{8}\) kg of N for an area of \(1.5642\times 10^{5}\) m^2. The 95 % confidence interval is [ \(2.7412452\times 10^{9}\) , \(2.7701154\times 10^{9}\) ]

Export of the level II data

Three files could be exported for PI:

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

You may use the available formats.

The variable names and units are as follows:

Name attribute unit
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_INORG 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_INORG 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

You may use the available formats.

DB estimate of the sampling means for the whole soil and standard deviations


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 10 x64 (build 19045)
## 
## 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] aqp_1.42           forcats_1.0.0      kableExtra_1.3.4   DT_0.28            RColorBrewer_1.1-3
##  [6] tmap_3.3-3         sf_1.0-13          ggplot2_3.4.2      dplyr_1.1.2        tidyr_1.3.0       
## [11] RODBC_1.3-20       rmdformats_1.0.4   prettydoc_0.4.1    stringr_1.5.0      foreach_1.5.2     
## [16] rmarkdown_2.22    
## 
## loaded via a namespace (and not attached):
##  [1] tidyselect_1.2.0   viridisLite_0.4.2  farver_2.1.1       fastmap_1.1.1      leaflet_2.1.2     
##  [6] XML_3.99-0.14      digest_0.6.31      lifecycle_1.0.3    cluster_2.1.4      ellipsis_0.3.2    
## [11] terra_1.7-37       magrittr_2.0.3     compiler_4.3.1     rlang_1.1.1        sass_0.4.6        
## [16] tools_4.3.1        utf8_1.2.3         yaml_2.3.7         data.table_1.14.8  knitr_1.43        
## [21] labeling_0.4.2     htmlwidgets_1.6.2  sp_1.6-1           classInt_0.4-9     plyr_1.8.8        
## [26] xml2_1.3.4         abind_1.4-5        KernSmooth_2.23-21 withr_2.5.0        purrr_1.0.1       
## [31] leafsync_0.1.0     grid_4.3.1         fansi_1.0.4        e1071_1.7-13       leafem_0.2.0      
## [36] colorspace_2.1-0   scales_1.2.1       iterators_1.0.14   tinytex_0.45       dichromat_2.0-0.1 
## [41] cli_3.6.1          generics_0.1.3     rstudioapi_0.14    httr_1.4.6         tmaptools_3.1-1   
## [46] DBI_1.1.3          cachem_1.0.8       proxy_0.4-27       splines_4.3.1      stars_0.6-1       
## [51] rvest_1.0.3        parallel_4.3.1     s2_1.1.4           base64enc_0.1-3    vctrs_0.6.3       
## [56] Matrix_1.5-4.1     webshot_0.5.5      jsonlite_1.8.5     bookdown_0.34      systemfonts_1.0.4 
## [61] crosstalk_1.2.0    jquerylib_0.1.4    units_0.8-2        glue_1.6.2         lwgeom_0.2-13     
## [66] codetools_0.2-19   stringi_1.7.12     gtable_0.3.3       raster_3.6-20      munsell_0.5.0     
## [71] tibble_3.2.1       pillar_1.9.0       htmltools_0.5.5    R6_2.5.1           wk_0.7.3          
## [76] evaluate_0.21      lattice_0.21-8     highr_0.10         png_0.1-8          bslib_0.5.0       
## [81] class_7.3-22       Rcpp_1.0.10        nlme_3.1-162       svglite_2.1.1      mgcv_1.8-42       
## [86] xfun_0.39          pkgconfig_2.0.3

  1. INRAe Infosol, nicolas.saby[at]inrae.fr↩︎

  2. INRAe Ecosys, [at]inrae.fr↩︎

  3. University of Tuscia, [at]unitus.it↩︎

  4. INRAe Infosol, [at]inrae.fr↩︎

  5. INRAe Bordeaux↩︎