BB.30_1 Dataset

Description

  • Target Soil Properties: SOC, pH, Clay

  • Groups of Features: DEM, ERa, pH-ISE, VI

  • Sample size: 30

  • Number of Features: 8

  • Coordinates: With coordinates (EPSG: 25833)

  • Location: Brandenburg, Germany

  • Sampling Design: Multi criteria sampling (Bönecke et al. 2021) based on quantile coverage of sensing features (ERa and pH-ISE), clustering of large and low values of sensing features and spatial coverage

  • Study Area Size: 19 ha

  • Geological Setting: Pleistocene young morainic landscape of the Weichselian glaciation with predominantly glacial sand

  • Previous Data Publication: Target soil properties published but under embargo in Vogel et al. 2022

  • Contact Information:
    • Sebastian Vogel (SVogel@atb-potsdam.de), Leibniz Institute for Agricultural Engineering and Bioeconomy (ATB)

  • License: CC BY-SA 4.0

  • Publication/Modification Date (d/m/y): 28.02.25, version 1.0

  • Changelog:
    • Version 1.0 (28.02.25): Initial release

Details

Dataset

The dataset contains the following target soil properties and features:

Target Soil Properties:

SOC - Soil Organic Carbon
  • Code: SOC_target

  • Unit: %

  • Protocol: Measured CO₂ release during dry combustion after removing inorganic carbon with an acid (DIN ISO 10694)

  • Sampling Date: August and October 2017

  • Sampling Depth: 0 - 30 cm

pH
  • Code: pH_target

  • Unit: Unitless

  • Protocol: Measured in CaCl₂ suspension with a glass electrode with a 5:1 liquid:soil volumetric ratio (DIN ISO 10390)

  • Sampling Date: August and October 2017

  • Sampling Depth: 0 - 30 cm

Clay
  • Code: Clay_target

  • Unit: %

  • Protocol: Sieve-Pipette method, measured through fractioning the soil into the sand fractions by sieving, and the silt and clay fractions by sedimentation in water, German adaptation (DIN ISO 11277)

  • Sampling Date: August and October 2017

  • Sampling Depth: 0 - 30 cm

Groups of Features:

DEM – Digital Elevation Model and Terrain Parameters
  • Number of Features: 2

  • Code(s): Altitude, Slope

  • Unit: Altitude in m, Slope in °

  • Sensing: Digital elevation model raster (5 m) based on LiDAR and photogrammetry from “GeoBasis-DE/LGB”

  • Processing: Calculating Slope with terrain function of the raster R-package, extracting DEM values from raster at soil sampling locations

  • Sampling Date: LiDAR March 2011, images for photogrammetry May 2022

ERa – Apparent Electrical Resistivity
  • Number of Features: 1

  • Code(s): ERa

  • Unit: Ω m

  • Sensing: EC Surveyor (VERIS Technologies, Salinas, USA) from VerisMSP3 with exploration depth of 0 - 30 cm, in-situ

  • Processing: Ordinary Kriging to align sensing- with soil sampling locations

  • Sampling Date: August 2017

pH-ISE – Ion Selective Electrodes for pH Determination
  • Number of Features: 1

  • Code(s): pH-ISE

  • Unit: Unitless

  • Sensing: Soil pH Manager (VERIS Technologies, Salinas, USA) from VerisMSP3, in-situ

  • Processing: Ordinary Kriging to align sensing- with soil sampling locations

  • Sampling Date: August 2017

VI - Vegetation Indices
  • Number of Features: 1

  • Code(s): NDVI

  • Unit: Unitless

  • Sensing: Sentinel-2 image during vegetative period (Level-2A) from “Copernicus Open Access Hub”

  • Processing: Calculating NDVI as (B08 - B04) / (B08 + B04), extracting VI values from raster at soil sampling locations

  • Sampling Date: May 2017

Examples

from LimeSoDa import load_dataset, split_dataset
from sklearn.linear_model import LinearRegression
from sklearn.metrics import r2_score, mean_squared_error
import numpy as np

# Load and explore the dataset
data = load_dataset("BB.30_1")
dataset = data["Dataset"]
folds = data["Folds"]
coords = data["Coordinates"]

# Split into train/test using fold 1
X_train, X_test, y_train, y_test = split_dataset(
    data=data,
    fold=1,
    targets=["pH_target", "SOC_target", "Clay_target"]
)

# Fit model and get predictions
model = LinearRegression()
model.fit(X_train, y_train)
predictions = model.predict(X_test)

# Calculate performance metrics
r2 = r2_score(y_test, predictions)
rmse = np.sqrt(mean_squared_error(y_test, predictions))
print(f"R-squared: {r2:.7f}")
print(f"RMSE: {rmse:.7f}")

References

Vogel S., Bönecke E., Kling C., Kramer E., Lück K., Nagel A., Philipp G., Rühlmann J., Schröter I. & Gebbers, R. (2022), Base neutralizing capacity from agricultural fields in the quaternary landscape of North-East Germany, BONARES Repository, https://doi.org/10.20387/bonares-zh3x-nd80

Bönecke, E., Meyer, S., Vogel, S., Schröter, I., Gebbers, R., Kling, C., Kramer, E., Lück, K., Nagel A., Philipp, G., Gerlach F., Palme S., Scheibe D., Ziegler K. & Rühlmann, J. (2021). Guidelines for precise lime management based on high-resolution soil pH, texture and SOM maps generated from proximal soil sensing data. Precision Agriculture, 22, 493-523.