Cloud gap-filling with deep learning for improved grassland monitoring
Creators
- 1. National Observatory of Athens, Operational Unit BEYOND Centre for Earth Observation Research and Satellite Remote Sensing, Institute for Astronomy, Astrophysics, Space Applications and Remote Sensing
- 2. Image Processing Laboratory (IPL), Parc Científic, Universitat de València
Description
Uninterrupted optical image time series are crucial for the timely monitoring of agricultural land changes, particularly in grasslands. However, the continuity of such time series is often disrupted by clouds. In response to this challenge, we propose an innovative deep learning method that integrates cloud-free optical (Sentinel-2) observations and weather-independent (Sentinel-1) Synthetic Aperture Radar (SAR) data. Our approach utilizes a combined Convolutional Neural Network (CNN)-Recurrent Neural Network (RNN) architecture to generate continuous Normalized Difference Vegetation Index (NDVI) time series, emphasizing the contribution of NDVI input component in the SAR-NDVI synergy. We demonstrate the significance of observation continuity by assessing the impact of the generated NDVI time series on the downstream task of grassland mowing event detection. We conducted our study in Lithuania, a country characterized by extensive cloud coverage, and compared our approach with alternative interpolation techniques (i.e., linear, Akima, quadratic). Our method outperformed these techniques, achieving an average Mean Absolute Error (MAE) of 0.024 and a coefficient of determination (R^2) of 0.92. Additionally, our analysis revealed enhanced performance in the subsequent mowing event detection. Evaluation based on widely applied mowing detection methodologies demonstrated a significant improvement in detection accuracy, with F1-score values of up to 84%. Furthermore, our method effectively mitigated sudden shifts and noise originating from cloudy observations, which are often missed by conventional cloud masks and adversely affect mowing detection precision.
Technical info (English)
The dataset_cloud_gap_filling.zip
file contains data from selected scenes. Below is an analysis of the included dataset.
mowing_detection_photo_interpretation_data.h5
This H5 file includes data of the actual measurements of the fields assessed through photo-interpretation.
Dataset Name | Data Type | Shape | Description | Units |
---|---|---|---|---|
ndvi |
Float32/64 | (N, T_optical,) | Normalized Difference Vegetation Index values over time. | Dimensionless |
backscatter_vv_norm |
Float32/64 | (N, T_sar,) | Normalized SAR backscatter coefficient in vertical-vertical (VV) polarization. | Dimensionless |
backscatter_vh_norm |
Float32/64 | (N, T_sar,) | Normalized SAR backscatter coefficient in vertical-horizontal (VH) polarization. | Dimensionless |
coherence_vv_norm |
Float32/64 | (N, T_sar,) | Normalized SAR coherence in vertical-vertical (VV) polarization. | Dimensionless |
coherence_vh_norm |
Float32/64 | (N, T_sar,) | Normalized SAR coherence in vertical-horizontal (VH) polarization. | Dimensionless |
parcel_id |
String | (N,) | Unique identifiers for geographic parcels. | None |
pixel_id |
String | (N,) | Unique identifiers for individual pixels within parcels. | None |
study_regions |
String | (N,) | Names identifying the study regions. | None |
dates_ndvi |
String | (T_optical,) | Dates corresponding to the NDVI measurements in ISO 8601 format (YYYY-MM-DD). | None |
dates_SAR |
String | (T_sar,) | Dates corresponding to the SAR measurements in ISO 8601 format (YYYY-MM-DD). | None |
cloud_gap_filling_data.h5
This H5 file contains the feature space data used for training and evaluating the SF model.
Dataset Name | Data Type | Shape | Description |
---|---|---|---|
X |
Float32/64 | (N, D, F) | Feature matrix used for training and evaluating the SF model. |
y |
Float32/64 | (N, D,) | Target NDVI variable used for training the SF model. |
training_weights |
Float32/64 | (N, D,) | Temporal weights assigned to training instances, aiding model training. |
artificial_cloud_absense |
Depends | (N, D,) | Masks indicating artificial absence of cloud cover. |
actual_cloud_absense |
Depends | (N, D,) | Masks indicating actual absence of cloud cover. |
parcel_id |
String | (N,) | Unique identifiers for geographic parcels. |
pixel_id |
String | (N,) | Unique identifiers for individual pixels within parcels. |
study_regions |
String | (N,) | Names identifying the study regions. |
training_instances |
Int32 | (N_train,) | Numeric identifiers for training instances. |
validation_instances |
Int32 | (N_val,) | Numeric identifiers for validation instances. |
features |
String | (F,) | Features corresponding to the names of the feature space. |
dates |
String | (D,) | Dates corresponding to the data observations. |
grassland_geometries.geojson schema
This GEOJSON file contains the geometries of the grassland parcel assessed for NDVI recontruction from the SF model and the subsequent mowing event detection downstream task.
Column Name | Data Type | Description |
---|---|---|
parcel_id |
String | Unique identifier for each parcel. |
region |
String | Name of the region where the parcel is located. |
geometry |
Geometry | Geospatial polygon describing the boundary of the parcel in WKT (Well-Known Text) format. |
photo_interpretation_assessment.csv schema
This CSV file contains the final photo-interpretation results from three experts for the downstream task of detecting subsequent mowing events.
Column Name | Data Type | Description |
---|---|---|
parcel_id |
String | Unique identifier for each parcel. |
region |
String | Name of the region where the parcel is located. |
mow_n |
Integer | Number indicating the total number of mowing events as interpreted by the experts. |
m1_dstart |
Date | Start date of mowing event 1 in ISO 8601 format (YYYY-MM-DD). |
m1_dend |
Date | End date of mowing event 1 in ISO 8601 format (YYYY-MM-DD). |
m1_dgap |
Integer | Interval in days between consecutive mowing events 1 and 2. |
m2_dstart |
Date | Start date of mowing event 2 in ISO 8601 format (YYYY-MM-DD). |
m2_dend |
Date | End date of mowing event 2 in ISO 8601 format (YYYY-MM-DD). |
m2_dgap |
Integer | Interval in days between consecutive mowing events 2 and 3. |
m3_dstart |
Date | Start date of mowing event 3 in ISO 8601 format (YYYY-MM-DD). |
m3_dend |
Date | End date of mowing event 3 in ISO 8601 format (YYYY-MM-DD). |
m3_dgap |
Integer | Interval in days between consecutive mowing events 3 and 4. |
m4_dstart |
Date | Start date of mowing event 4 in ISO 8601 format (YYYY-MM-DD). |
m4_dend |
Date | End date of mowing event 4 in ISO 8601 format (YYYY-MM-DD). |
m4_dgap |
Integer | Interval in days between the last mowing event and subsequent observations. |
Files
dataset_cloud_gap_filling.zip
Additional details
Dates
- Updated
-
2024-06