Typical Marine Ecological Environment Feature Dataset Standard
This project uses a manifest-driven dataset layout for marine ecological environment feature recognition. It is designed to keep different patch sizes, satellites, sensors, spatial resolutions, and fusion states instead of forcing everything into one fixed tile format.
Scope
Target feature families:
green_tide: Enteromorpha / green tide / seaweed.red_tide: red tide / harmful algal bloom.golden_tide: Sargassum / golden tide.aquaculture: aquaculture area, rafts, cages, ponds, or related facilities.water: valid water background.land: land or non-water hard negative.invalid: black border, no-data, saturated, missing, or otherwise unusable pixels.cloud_shadow: cloud, haze, cloud shadow, or bright atmospheric interference.other: valid but not assigned to the categories above.
No external coastline, land-mask vector, or GIS mask is assumed to exist. Land, invalid area, and water/background handling must be represented by dataset labels, hard-negative samples, or image-derived validity rules.
Canonical Directory Layout
data_marine_features/
manifests/
assets_raw.jsonl
samples.jsonl
splits/
train.txt
val.txt
test.txt
images/
<asset_id>.<ext> # optional symlink or copied tile
masks/
<sample_id>.<ext> # optional symlink or copied mask
previews/
<sample_id>.png
reports/
asset_inventory.csv
The canonical source of truth is manifests/samples.jsonl. Files may remain in
their original locations; images/ and masks/ are optional conveniences.
samples.jsonl Schema
Each line is one image sample or tile.
{
"sample_id": "gf6_20250604_green_tide_000001",
"element": "green_tide",
"task_type": "semantic_segmentation",
"image_path": "D:/.../image.tif",
"mask_path": "D:/.../mask.tif",
"annotation_path": null,
"annotation_format": "mask",
"label_encoding": {"0": "background", "1": "green_tide"},
"satellite": "GF6",
"sensor": "PMS",
"resolution_m": 2.0,
"patch_size": 256,
"bands": ["blue", "green", "red", "nir"],
"band_count": 4,
"dtype": "uint16",
"fusion": {
"state": "fused_product",
"method": "unknown_vendor_product",
"sources": [
{"role": "MSS", "path": null, "resolution_m": 8.0},
{"role": "PAN", "path": null, "resolution_m": 2.0}
],
"target_resolution_m": 2.0,
"native_multispectral_resolution_m": 8.0,
"persisted": true,
"reproducible": false,
"spectral_preservation": "unknown",
"notes": "Fused image supplied as a finished raster; source PAN/MSS not guaranteed."
},
"acquired_at": "2025-06-04",
"source_project": "EntGreenTide",
"source_dataset": "GF6_PMS_E121.1_N33.6_20250604_L1A1420584616",
"split": "train",
"quality_flags": ["valid_image"],
"notes": ""
}
Required fields:
sample_idelementtask_typeimage_pathsatellitesensorpatch_sizeband_countfusionsource_project
Recommended fields:
mask_pathannotation_pathannotation_formatresolution_mbandsdtypeacquired_atsplitquality_flags
Multi-Scale Policy
Patch sizes such as 128, 256, 512, and full-scene windows are all valid. They are not merged destructively. Training code should sample them with metadata-aware transforms:
- Keep
patch_sizein the manifest. - Resize only inside the training transform when the model requires it.
- Preserve the original spatial resolution in
resolution_m. - For full-scene inference, use sliding windows whose size is a runtime parameter.
Multi-Sensor And Fusion Policy
Different satellites and sensors are expected:
- GF1, GF2, GF6, and other optical satellites can coexist.
- Fused PMS/MUX products and raw PAN+MSS products can coexist.
- If PAN+MSS are available, keep both paths in
fusion.sources. - Do not assume band order from the filename alone; record
bandswhen known.
Fusion must be represented explicitly. A boolean such as is_fused=true is not
enough because it loses the source products, method, target resolution, and
reproducibility.
Recommended fusion object for an already fused raster:
{
"state": "fused_product",
"method": "unknown_vendor_product",
"sources": [
{"role": "MSS", "path": "D:/.../MSS2.tiff", "resolution_m": 8.0},
{"role": "PAN", "path": null, "resolution_m": 2.0}
],
"target_resolution_m": 2.0,
"native_multispectral_resolution_m": 8.0,
"persisted": true,
"reproducible": false,
"spectral_preservation": "unknown",
"notes": "Fused image supplied as a finished raster; original PAN is unavailable."
}
Recommended fusion object for streaming PAN+MSS fusion:
{
"state": "runtime_fusion",
"method": "additive_component_substitution",
"sources": [
{"role": "MSS", "path": "D:/.../MSS2.tiff", "resolution_m": 8.0},
{"role": "PAN", "path": "D:/.../PAN2.tiff", "resolution_m": 2.0}
],
"target_resolution_m": 2.0,
"native_multispectral_resolution_m": 8.0,
"persisted": false,
"reproducible": true,
"tile_aligned": true,
"notes": "Fusion is performed per inference tile and is not written as a full-scene raster."
}
Allowed fusion.state values:
none: native product, no fusion.fused_product: fused raster exists on disk.runtime_fusion: fusion happens during training/inference.unknown: insufficient information; do not pretend it is native.
Label Policy
The final model should not be binary seaweed/background. It should learn ecological elements and scene context. A recommended unified semantic target is:
| Class ID | Name |
|---|---|
| 0 | other/background |
| 1 | invalid |
| 2 | water |
| 3 | land |
| 4 | cloud_shadow |
| 5 | green_tide |
| 6 | red_tide |
| 7 | golden_tide |
| 8 | aquaculture |
When legacy binary masks are imported, they should be represented as task-specific labels plus metadata. Do not silently treat unlabeled pixels as true negatives for all other ecological elements.
Quality Gate Policy
Discovered samples are not automatically training samples. A sample may enter
accepted_samples.jsonl only after an explicit adapter verifies:
- the data source is relevant to marine or coastal remote sensing;
- image and label assets are reliably paired;
- label semantics map to a registry element card;
- label format is parsed successfully, such as mask, polygon, GeoJSON, SHP, or RLE;
- box-only labels are rejected from SAMPoly-style polygon training because they cannot supervise true vertices or boundaries;
- unusable images, empty labels, unknown elements, and ambiguous licenses are rejected or kept for manual review;
- quality flags record why the sample was accepted.
Unknown or unpaired samples must not be treated as negative samples.
Inventory Rules
The inventory scanner should:
- Preserve original file paths.
- Infer element type from directory names and known project folders.
- Infer satellite/sensor/acquisition date from filenames when possible.
- Infer fusion state from filenames such as
fuse,PAN, andMSS, but mark uncertain products asunknowninstead of guessing method details. - Pair image and mask files by stem when masks exist.
- Record unpaired full-scene images as inference assets.
- Flag ambiguous data instead of guessing labels.