it4lia/soil_moisture_dataset
Soil Moisture Dataset Dataset Description A dataset of soil moisture measurements collected from on-field tensiometers and volumetric sensors, correlated with irrigation records, weather observations, satellite-derived vegetation indices, and static soil and crop characterisation. Covers an anonymised agricultural area in Trentino, Italy, across three regional consortiums. Producer: Fondazione Bruno Kessler (FBK) — OpenIoT research unit Project ID:… See the full description on the dataset page: https://huggingface.co/datasets/it4lia/soil_moisture_dataset.
Soil Moisture Dataset
Dataset Description
A dataset of soil moisture measurements collected from on-field tensiometers and volumetric sensors, correlated with irrigation records, weather observations, satellite-derived vegetation indices, and static soil and crop characterisation. Covers an anonymised agricultural area in Trentino, Italy, across three regional consortiums.
- Producer: Fondazione Bruno Kessler (FBK) — OpenIoT research unit
- Project ID:
fbk.aif.soil_moisture_dataset - Repository: it4lia/soil_moisture_dataset
- Access: Openly accessible via HuggingFace;
pandasis sufficient to read all Parquet files - Useful for: agronomists, irrigation managers, researchers, and developers working on irrigation decision-support and crop water management
Dataset Structure
Repository file tree
soil_moisture_dataset/
├── field_sensor_data_consortium{0,1,2}.parquet # IoT sensor measurements
├── irrigation_data_consortium{0,1,2}.parquet # Irrigation data
├── locations_ids_consortium{0,1,2}.parquet # Location reference
├── historical_weather_data_consortium{0,1,2}.parquet # Historical weather data
├── forecasted_weather_data_consortium{0,1,2}.parquet # 7-day weather forecast
├── weather_data_consortium{0,1}.parquet # On-site weather station
├── soil_type_data_consortium{0,1}.parquet # Soil properties
├── remote_sensing_data_final_consortium{0,1}.parquet # Satellite spectral
└── crop_type_data_consortium{0,1,2}.pickle # Crop informationConsortium summary:
Join keys
Dataset Creation
Data sources (from data provider)
Collection
- Provider: Fondazione Bruno Kessler (FBK), OpenIoT research unit, Trentino, Italy
- Geographic coverage: Anonymised agricultural area in Trentino (exact locations not disclosed)
- Temporal coverage: 2023 and 2024 growing seasons
- Frequency: Daily
- Format: Apache Parquet (tabular data) + Python Pickle (crop model objects)
Observed date ranges (from files)
Dataset Statistics
Row counts
File sizes (compressed Parquet on disk)
Limitations
- Geographic coverage is a single Italian region (Trentino). Generalisation to other climates is not validated.
- Exact field locations are anonymised; coordinates cannot be used for spatial analysis.
- Sensor placement reflects operational decisions of the FBK OpenIoT unit, which may introduce selection bias toward actively managed fields.
- Crop model parameters (
crop_type_data) are defined at consortium level, not per location.
Usage
import pandas as pd
import glob
# Load and concatenate field sensor data across all consortiums
# Note: cast ground_offset to float to handle int64 vs float64 difference in C2
dfs = []
for f in sorted(glob.glob("field_sensor_data_consortium*.parquet")):
df = pd.read_parquet(f)
df["ground_offset"] = df["ground_offset"].astype(float)
dfs.append(df)
sensors = pd.concat(dfs)
# Filter to Water Content sensors only (not available in C1)
wc = sensors[sensors["sensor_type"] == "Water Content"]
# Load historical weather (note: datastream_name is the last column)
weather = pd.concat([
pd.read_parquet(f) for f in sorted(glob.glob("historical_weather_data_consortium*.parquet"))
])
# Load remote sensing (columns are lowercase: ndvi, grvi, etc.)
rs = pd.concat([
pd.read_parquet(f) for f in sorted(glob.glob("remote_sensing_data_final_consortium*.parquet"))
])
# Replace Inf before use
import numpy as np
rs = rs.replace([np.inf, -np.inf], np.nan)For crop model objects (requires `aquacrop`):
import pickle
with open("crop_type_data_consortium0.pickle", "rb") as f:
crop = pickle.load(f)