Dataset Card for Amfitrite-Open-Waters-HAB-Sentinel2
This dataset contains multispectral Sentinel-2 satellite imagery tiles focused on open water and coastal marine environments, classified by the potential presence of Harmful Algal Blooms (HABs). It is designed to train Machine or Deep Learning models (like CNNs) for large-scale environmental monitoring and ocean anomaly detection.
Dataset Details
Dataset Description
Amfitrite-Open-Waters-HAB-Sentinel2 is a specialized dataset designed for the detection and classification of Harmful Algal Blooms (HABs) in open waters. The dataset consists of 2,982 multispectral image tiles derived from Sentinel-2 satellite imagery. It features a carefully balanced and curated collection of imagery:
- 1,445 HAB tiles
- 1,317 non-HAB tiles
- 110 pure cloud distractors (>99% of pixels labeled as clouds in the SCL map)
- 110 pure land distractors (>99% of pixels labeled as land in the SCL map)
The annotation methodology integrates in-situ cell count measurements from 9 different global datasets, spatial grid sampling to mitigate coordinate inaccuracies, predictions from the CyFi tool and cross-validation against 4 distinct Deep Learning models previously trained on the [Amfitrite Inland Water dataset]((https://huggingface.co/datasets/kostaspic/amfitrite-inland-waters-hab-sentinel2) (including model AMFITRITE-Sentinel2-HAB-RDNet which was the most robust of the ensemble) . This work supports the dAIEDGE project's goal of enabling distributed, trustworthy, and efficient AI at the edge.
- Curated by: Konstantinos Pikounis
- Funded by: dAIEDGE Project (A Network of Excellence for Distributed, Trustworthy, Efficient and Scalable AI at the Edge).
- Shared by: AMFITRITE Project
- Language(s) (NLP): English (Metadata), French (a few columns in the
amfitrite_open_waters_master.csv) - License: Creative Commons Attribution 4.0 International (CC BY 4.0)
Dataset Sources
Uses
Direct Use
- AI Training: Training ML/DL models to detect marine and coastal HABs.
- Edge AI Deployment: Training lightweight Convolutional Neural Networks (CNNs) for deployment on edge devices (e.g. aboard satellites) to detect marine HABs in real-time.
- Environmental Monitoring: Developing algorithms to detect early-stage algal blooms in open waters.
- Robust Feature Learning: The inclusion of pure cloud and pure land tiles could potentially help models learn resilient feature extraction and reduces false positives on non-water bodies.
Dataset Structure
The dataset is organized into individual folders, each corresponding to a unique geographical area and satellite acquisition date. These folders are tracked and detailed in a summary csv file.
Folder Structure per Sample
Each sample is contained within its own directory. The name of each folder is derived from the ID column in the master CSV, followed by an underscore (_) and a suffix denoting its classification: "HAB", "nonHAB", "land" or "clouds" (e.g. 104_HAB or 55_clouds).
- Raw Spectral Bands (*_raw.tif): 12 spectral bands from Sentinel-2 (B01-B08, B8A, B09, B11, B12).
- Scene Classification Map (SCL_raw.tif): A map classifying pixels into 11 categories (e.g., water, clouds, vegetation, snow) based on the Sen2Cor processor.
- AOT Map (AOT_raw.tif): An Aerosol Optical Thickness map, based on the Sen2Cor processor.
- WVP Map (WVP_raw.tif): The Water Vapour Product map that estimates the total amount of water vapor in the atmospheric column
- CyFi Prediction Map (cyfi_prediction_map.png): A composite visualization used for visual verification, displaying the RGB imagery overlaid with the CyFi prediction grid (color-coded points green: Low, orange: Moderate and red: High concertation of cyanobacteria).
- Metadata (metadata.json): A JSON file containing comprehensive details about the image acquisition and predictions.
sat_item: The unique Sentinel-2 product identifier (from ESA/Planetary Computer).date: The date of the satellite acquisition (YYYY-MM-DD).center_lat: The latitude coordinate of the tile center.center_lon: The longitude coordinate of the tile center.num_pixels: Total number of pixels in the tile (typically 65536).water_pixels: The total number of pixels classified as water (SCL class 6).per_clouds: The percentage of the tile covered by clouds (derived from SCL mask), rounded to two decimal places.High counts/Moderate counts/Low counts: The number of grid points classified into each severity level by the CyFi tool for this specific tile. The grid is constructed every 10 pixels classified as water in the SCL map, so the maximum number is 676 (if all pixels in the tile are classified as water)
Master CSV Summary File (amfitrite_open_waters_master.csv)
This master file contains all the necessary information to track each tile back to its original satellite acquisition and the specific in-situ ground truth dataset it was derived from.
Core Tile Information (Filled for all records):
ID: An ascending numeric identifier. ThisIDforms the base of the folder name where the image files are stored (e.g., 1_HAB, 2_nonHAB).tile_is_hab: A boolean value (True or False) indicating whether the image tile contains a Harmful Algal Bloom (True) or not (False).
Spatial & Acquisition Information (Filled for all HAB and non-HAB tiles; blank for Land/Cloud distractors):
center_lat: The latitude coordinate of the center of the image tile.center_lon: The longitude coordinate of the center of the image tile.date: The acquisition date of the satellite imagery (YYYY-MM-DD).sat_item: The unique Sentinel-2 Level-2A product identifier from the Planetary Computer from which this tile was extracted.dataset: The short name of the specific in-situ dataset the ground-truth measurement was sourced from. (for more information about the datasets see below)HAEDAT→ HAEDAT (Harmful Algal Event Database) datasetOBIS_HAB_Med→ OBIS-HAB Mediterranean datasetNAA_plankton→ North American Arctic Microbial Plankton datasetCalHABMAP→ SCCOOS / CalHABMAP datasetHABSOS_NOAA→ NOAA HABSOS datasetAlgal_Blooms_Sweden→ Algal Blooms Sweden datasetREPHY→ SEANOE REPHY datasetDAIEDGE_compiled→ Dataset Compiled by the dAIEDGE consortium dataset
tile_status: Describes the relationship between the tile and the in situ measurement:on_measurment: The tile encompasses the exact location of the in-situ measurement.near_measurment: The tile is adjacent to a measurement (part of the 3x3 spatial grid strategy).imputed: The tile was generated through temporal imputation (downloading imagery from a different date at a known location) primarily to find clean non-HAB cases for class balancing. Note: While mostly non-HABs, 18 imputed tiles revealed HABs upon visual/model inspection and were labeled as such.land: A heavily curated distractor tile containing >99% land pixels (SCL map classes: 4 - Vegetation, 5 - Bare soil and 11 - Snow/Ice).clouds: A heavily curated distractor tile containing >99% cloud pixels (SCL map classes: 3 - Shadows, 8 - Med Cloud, 9 - High Cloud and 10 - Cirrus).
Original Dataset Tracing Columns: To allow trace back to the exact in-situ measurement used to validate the tile, the CSV includes columns specific to the original source datasets. These columns are only populated for the rows associated with that particular dataset:
- Mapped columns for
HAEDAT:id_x,eventDate,decimalLatitude,decimalLongitude. - Mapped columns for
OBIS_HAB_Med:id_x,eventDate,decimalLatitude,decimalLongitude. - Mapped columns for
Florida_HABs:id_x,eventDate,decimalLatitude,decimalLongitude,HAB_ID. - Mapped columns for
NAA_plankton:eventDate,decimalLatitude,decimalLongitude. - Mapped columns for
CalHABMAP:eventDate,decimalLatitude,decimalLongitude,SampleID,Location_Code. - Mapped columns for
HABSOS_NOAA:id_x,eventDate,decimalLatitude,decimalLongitude,STATE_ID,DESCRIPTION. - Mapped columns for
Algal_Blooms_Sweden:eventDate,decimalLatitude,decimalLongitude,report_id,algae_overview_photo,algae_detail_photo,place. - Mapped columns for
REPHY:eventDate,decimalLatitude,decimalLongitude,SampleID,Lieu de surveillance : Entité de classement : Libellé,Lieu de surveillance : Identifiant,Lieu de surveillance : Mnémonique,Lieu de surveillance : Libellé,Passage : Identifiant interne,Passage : Date de validation,Passage : Niveau de qualité. - Mapped columns for
DAIEDGE_compiled:eventDate,decimalLatitude,decimalLongitude,num,Country,Location,Incident,Company.
Dataset Creation
Curation Rationale
Harmful Algal Blooms pose a significant threat to public health and ecosystems. This dataset was created as a means to train Deep Learning tools to identify HABs using satellite images, with a focus on light weight models compatible with edge devices onboard satellites for creating early warning systems.
Source Data
The source data consists of multispectral optical satellite imagery acquired by the Sentinel-2 mission, which is part of the Copernicus Programme operated by the European Space Agency (ESA). Also 9 different global datasets concerning HABs and phytoplankton with insitu measurments.
Who are the source data producers?
- Satellite Imagery: European Space Agency (ESA) Copernicus Sentinel-2 mission via the Microsoft Planetary Computer.
- In-Situ Measurements: Data was aggregated from 9 independent global marine/phytoplankton databases, including:
- NOAA HABSOS (Harmful Algal BloomS Observing System): Physical and biological data collected along the Gulf coasts in the Gulf of Mexico (NODC Accession 0120767).
- Florida FWC HAB Events Database: Historic Harmful Algal Bloom Events spatial database managed by the Florida Fish and Wildlife Conservation Commission (FWC).
- SCCOOS / CalHABMAP: California Harmful Algal Bloom Monitoring and Alert Program pier-based microscopy sampling network, hosted via the Southern California Coastal Ocean Observing System (SCCOOS) ERDDAP server.
- HAEDAT (Harmful Algal Event Database): Global harmful algal event dataset managed via OBIS and IOC-UNESCO.
- OBIS-HAB Mediterranean: Occurrences of HAB species in the Mediterranean dataset.
- North American Arctic Microbial Plankton: Microbial plankton occurrence database in the North American Arctic region (Zenodo).
- Algal Blooms Sweden: Additional aggregated phytoplankton measurements.
- SEANOE REPHY dataset: French Observation and Monitoring program for Phytoplankton and Hydrology in coastal waters (Metropolitan data).
- Dataset Compiled by the dAIEDGE consortium: Dataset with known HABs around the world with exact dates and GPS coordinates.
Annotation Logic, Data Collection and Processing
-
In-situ Sourcing & Thresholds: Data (latitude, longitude, date) was sourced from the 9 different global datasets mentioned above concerning HABs and phytoplankton. In cases where the specific phytoplankton species was mentioned in the source data, only species known to cause Harmful Algal Blooms (HABs) were selected while harmless species were excluded. Ground-truth cell counts were then used to define baseline severity, compatible with the Tick Tick Bloom categorization:
- Potential HAB (High): Cell counts > 100,000 cells/mL (blooms "thick" enough to be potentially visible from space).
- Non-HAB (Low): Cell counts < 10,000 cells/mL (even if a minor bloom exists, its optical signature is unlikely to be satellite-detectable).
-
The 3x3 Spatial Grid Strategy: Marine datasets are prone to erroneous or drifting GPS coordinates. Additonaly, an event recorded at a specific point ant time may have drifted by the time the satellite passes over. To capture the true bloom, a 3x3 grid of 256x256 pixel tiles (~3.5km - 5km coverage) was generated centered around the original measurement coordinates.
-
Multi-Model Verification & Manual Assessment: Each tile in the grid was processed using the CyFi tool and an ensemble of 4 distinct Deep Learning models previously trained on the Amfitrite Inland Water dataset (the more robust of which was AMFITRITE-Sentinel2-HAB-RDNet. This had the highest weight in the final decision of the ensemble)
- Every tile underwent rigorous manual assessment, comparing the visual output of the CyFi map and DL model confidence against the in-situ expectations.
- Because point measurements are localized, a point labeled "non-HAB" might sit adjacent to a HAB in the 2560x2560m tile. If CyFi, the DL models, and the manual visual check confirmed a HAB in a nominally "non-HAB" tile, it was relabeled as a HAB or excluded from the final dataset.
-
Temporal Imputation for Class Balancing: The 3x3 spatial grid and relabeling strategy naturally resulted in a higher number of HAB tiles compared to the nonHAB ones. To balance the dataset, HAB locations that lacked a clean non-HAB counterpart in their adjacent grid were temporally sampled. New imagery from the exact same locations but at different dates was downloaded, passed through the identical CyFi + DL pipeline, and manually verified to secure additional non-HAB tiles and balance the dataset.
-
Distractor Samples: 110 purely cloudy tiles and 110 purely land tiles were heavily curated and injected into the dataset, these samples could be used when training ML / DL models as tiles that should not be flagged as HABs.
Bias, Risks, and Limitations
- Model-Assisted Annotation Bias: The manual verification heavily relied on CyFi and 4 inland-trained DL models which were trained on the Amfitrite-Inland-Waters-HAB-Sentinel2 dataset also relying on CyFi for it's annotation. While visually verified, the dataset inherently reflects the spectral sensitivities and biases of those models.
Recommendations
- Train models using Scene Classification Layer (SCL) mask: Even with the inclusion of pure land distractors, users could utilize the provided Scene Classification Layer (SCL) to mask out non-water pixels during training to prevent the model from learning irrelevant coastal or terrestrial features.
References
Dorne, E., Wetstone, K., Cerquera, T. B., and Gupta, S. (2024). Cyanobacteria detection in small, inland water bodies with cyfi. In Proceedings of the 23rd Python in Science Conference, pages 154–173.
@inproceedings{dorne_cyfi_2024,
author = {Dorne, E. and Wetstone, K. and Cerquera, T. B. and Gupta, S.},
title = {Cyanobacteria detection in small, inland water bodies with CyFi},
booktitle = {Proceedings of the 23rd Python in Science Conference},
pages = {154--173},
year = {2024},
doi = {10.25080/pdhk7238}
}
Source Data Attribution
This dataset contains modified Copernicus Sentinel data. Original data provided by the European Space Agency (ESA) via the Microsoft Planetary Computer. Use of Sentinel data is subject to the ESA Legal Notice.
The in-situ measurement ground truths were derived from the following public datasets and publications:
- NOAA HABSOS: Physical and biological data collected as part of the Harmful Algal BloomS Observing System (NODC Accession 0120767). Access Dataset
- Florida FWC: Historic Harmful Algal Bloom Events. Access Dataset
- SCCOOS / CalHABMAP: Phytoplankton and Harmful Algal Bloom (HAB) monitoring data collected at California piers. Data provided by the California Harmful Algal Bloom Monitoring and Alert Program (CalHABMAP) and accessed via the Southern California Coastal Ocean Observing System (SCCOOS) ERDDAP node. Access Dataset
- HAEDAT (Harmful Algal Event Database): Harmful Algal Event Database (HAEDAT). Access Dataset
- OBIS-HAB Mediterranean: Occurrences of HAB species in the Mediterranean. Access Dataset
- North American Arctic Microbial Plankton: Microbial plankton occurrence database in the North American Arctic region. Zenodo. DOI: 10.5281/zenodo.10557176
- Algal Blooms Sweden: DOI: 10.5281/zenodo.7551670
- SEANOE REPHY dataset: REPHY dataset - French Observation and Monitoring program for Phytoplankton and Hydrology in coastal waters. SEANOE. DOI: 10.17882/47248