cuibinge commited on
Commit
823a45d
·
verified ·
1 Parent(s): 2227bb5

Update HF dataset discovery tooling

Browse files
README.md CHANGED
@@ -82,6 +82,8 @@ See [docs/dataset_standard.md](docs/dataset_standard.md).
82
 
83
  - `scripts/build_marine_feature_dataset.py`: scan local or server-side data roots
84
  and write normalized manifests.
 
 
85
  - `scripts/compose_task_profile.py`: compose Markdown capability cards into a
86
  JSON task profile.
87
  - `scripts/infer_whole_scene.py`: sliding-window whole-scene inference with
@@ -102,3 +104,16 @@ The target architecture is a unified, explainable, multi-task model:
102
 
103
  Current legacy green-tide weights can still be loaded for candidate generation,
104
  but final products should come from the registry-driven multi-task framework.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
82
 
83
  - `scripts/build_marine_feature_dataset.py`: scan local or server-side data roots
84
  and write normalized manifests.
85
+ - `scripts/search_hf_marine_datasets.py`: search Hugging Face datasets and write
86
+ normalized `hf://` manifest references without downloading full repositories.
87
  - `scripts/compose_task_profile.py`: compose Markdown capability cards into a
88
  JSON task profile.
89
  - `scripts/infer_whole_scene.py`: sliding-window whole-scene inference with
 
104
 
105
  Current legacy green-tide weights can still be loaded for candidate generation,
106
  but final products should come from the registry-driven multi-task framework.
107
+
108
+ ## Hugging Face Dataset Discovery
109
+
110
+ HF dataset search and standardization results are summarized in
111
+ [docs/hf_dataset_discovery.md](docs/hf_dataset_discovery.md). The generated local
112
+ manifests are under:
113
+
114
+ ```text
115
+ C:\Users\HUAWEI\Documents\New project 2\hf_marine_feature_dataset
116
+ ```
117
+
118
+ The discovery output is conservative: unknown elements and unpaired HF assets are
119
+ kept for review and are not treated as training negatives.
configs/profiles/profiles/gf2_green_tide_stream_fusion_2m.json ADDED
@@ -0,0 +1,197 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "profile_id": "green_tide_GF2_PMS_STREAM_FUSION_2m",
3
+ "cards": {
4
+ "elements": {
5
+ "kind": "elements",
6
+ "id": "green_tide",
7
+ "path": "C:\\Users\\HUAWEI\\Documents\\New project 2\\seaweed-detection\\docs\\registry\\elements\\green_tide.md",
8
+ "meta": {
9
+ "id": "green_tide",
10
+ "type": "element",
11
+ "name": "Green tide / Enteromorpha",
12
+ "task_types": [
13
+ "semantic_segmentation",
14
+ "polygon_extraction"
15
+ ],
16
+ "preferred_heads": [
17
+ "validity",
18
+ "context",
19
+ "semantic_segmentation"
20
+ ],
21
+ "label_formats": [
22
+ "mask",
23
+ "polygon",
24
+ "geojson",
25
+ "shp"
26
+ ],
27
+ "positive_label": "green_tide",
28
+ "negative_policy": "unlabeled_is_ignore",
29
+ "typical_sensors": [
30
+ "PMS",
31
+ "MUX",
32
+ "MSS"
33
+ ],
34
+ "typical_resolutions_m": [
35
+ 2,
36
+ 8,
37
+ 10
38
+ ]
39
+ },
40
+ "body": "# Green Tide / Enteromorpha\n\nGreen tide is a floating-algae target. It can be confused with land vegetation,\naquaculture structures, cloud edges, turbid water, sunglint, and black/no-data\nregions if the model is trained as a simple foreground/background classifier.\n\n## Required Context\n\n- Validity handling: black borders and no-data pixels must not be interpreted as green tide.\n- Context handling: land and water context should be learned or provided as labels/hard negatives.\n- Do not assume a coastline vector or external land mask exists.\n\n## Recommended Output\n\n- Per-pixel probability map for green tide.\n- Binary candidate mask after validity/context filtering.\n- Optional polygon extraction for product delivery.\n\n## Failure Modes\n\n- Land vegetation is often spectrally similar to algae.\n- Black borders can be falsely predicted when labels do not include invalid regions.\n- Single-element binary models overpredict on unknown ecological elements."
41
+ },
42
+ "satellites": {
43
+ "kind": "satellites",
44
+ "id": "GF2",
45
+ "path": "C:\\Users\\HUAWEI\\Documents\\New project 2\\seaweed-detection\\docs\\registry\\satellites\\GF2.md",
46
+ "meta": {
47
+ "id": "GF2",
48
+ "type": "satellite",
49
+ "name": "Gaofen-2",
50
+ "country": "China",
51
+ "supported_sensors": [
52
+ "PMS"
53
+ ],
54
+ "typical_products": [
55
+ "MSS",
56
+ "PAN",
57
+ "fused"
58
+ ]
59
+ },
60
+ "body": "# GF2\n\nGF2 PMS scenes commonly provide paired PAN and MSS products. For models targeting\n2 m products, stream PAN+MSS fusion tile-by-tile instead of saving a full fused\nscene to disk.\n\n## Notes\n\n- Keep both `pan_path` and `image_path` in the manifest.\n- Preserve sensor geometry metadata when available."
61
+ },
62
+ "sensors": {
63
+ "kind": "sensors",
64
+ "id": "PMS",
65
+ "path": "C:\\Users\\HUAWEI\\Documents\\New project 2\\seaweed-detection\\docs\\registry\\sensors\\PMS.md",
66
+ "meta": {
67
+ "id": "PMS",
68
+ "type": "sensor",
69
+ "name": "Panchromatic and Multispectral Sensor",
70
+ "modalities": [
71
+ "optical",
72
+ "pan",
73
+ "multispectral"
74
+ ],
75
+ "common_bands": [
76
+ "blue",
77
+ "green",
78
+ "red",
79
+ "nir",
80
+ "pan"
81
+ ],
82
+ "supports_streaming_fusion": true
83
+ },
84
+ "body": "# PMS\n\nPMS data may provide separate PAN and MSS products or a fused product. For\nhigh-resolution ecological extraction, prefer stream fusion when PAN and MSS are\nboth available."
85
+ },
86
+ "resolutions": {
87
+ "kind": "resolutions",
88
+ "id": "2m",
89
+ "path": "C:\\Users\\HUAWEI\\Documents\\New project 2\\seaweed-detection\\docs\\registry\\resolutions\\2m.md",
90
+ "meta": {
91
+ "id": "2m",
92
+ "type": "resolution",
93
+ "resolution_m": 2,
94
+ "scale_group": "high",
95
+ "recommended_patch_sizes": [
96
+ 256,
97
+ 512,
98
+ 1024
99
+ ]
100
+ },
101
+ "body": "# 2 m Resolution\n\nUse for fine optical extraction. Floating algae texture, aquaculture structures,\nand small ships may be visible. Full-scene inference must use tiled/striped IO."
102
+ },
103
+ "fusion": {
104
+ "kind": "sensors",
105
+ "id": "STREAM_FUSION",
106
+ "path": "C:\\Users\\HUAWEI\\Documents\\New project 2\\seaweed-detection\\docs\\registry\\sensors\\STREAM_FUSION.md",
107
+ "meta": {
108
+ "id": "STREAM_FUSION",
109
+ "type": "sensor",
110
+ "name": "Streaming PAN+MSS fusion",
111
+ "modalities": [
112
+ "optical",
113
+ "pan",
114
+ "multispectral",
115
+ "fused_runtime"
116
+ ],
117
+ "common_bands": [
118
+ "blue",
119
+ "green",
120
+ "red",
121
+ "nir"
122
+ ],
123
+ "supports_streaming_fusion": true,
124
+ "fusion_state": "runtime_fusion",
125
+ "requires_fusion_metadata": true
126
+ },
127
+ "body": "# Streaming PAN+MSS Fusion\n\nStreaming fusion means the fused tile is produced in memory during inference or\ntraining and is not stored as a full-scene raster.\n\n## Required Fusion Metadata\n\n- `fusion_state`: `runtime_fusion`.\n- `fusion_method`: method used by the implementation.\n- `fusion_sources`: at minimum `pan_path` and `mss_path`.\n- `target_resolution_m`: usually the PAN product resolution.\n- `native_resolution_m`: original MSS resolution.\n- `fusion_persisted`: `false`.\n- `fusion_reproducible`: `true` if the source images and code are available.\n- `tile_aligned`: whether PAN and MSS windows are aligned consistently.\n\n## Notes\n\n- Prefer this for very large GF2/GF1-like scenes to avoid writing full fused\n products.\n- Fusion seams and model tile seams are separate problems; use overlap-weighted\n inference after fusion."
128
+ }
129
+ },
130
+ "task": {
131
+ "element": "green_tide",
132
+ "task_types": [
133
+ "semantic_segmentation",
134
+ "polygon_extraction"
135
+ ],
136
+ "preferred_heads": [
137
+ "validity",
138
+ "context",
139
+ "semantic_segmentation"
140
+ ],
141
+ "label_formats": [
142
+ "mask",
143
+ "polygon",
144
+ "geojson",
145
+ "shp"
146
+ ],
147
+ "negative_policy": "unlabeled_is_ignore"
148
+ },
149
+ "input": {
150
+ "satellite": "GF2",
151
+ "sensor": "PMS",
152
+ "resolution_m": 2,
153
+ "modalities": [
154
+ "optical",
155
+ "pan",
156
+ "multispectral"
157
+ ],
158
+ "common_bands": [
159
+ "blue",
160
+ "green",
161
+ "red",
162
+ "nir",
163
+ "pan"
164
+ ],
165
+ "recommended_patch_sizes": [
166
+ 256,
167
+ 512,
168
+ 1024
169
+ ]
170
+ },
171
+ "fusion": {
172
+ "card": "STREAM_FUSION",
173
+ "state": "runtime_fusion",
174
+ "modalities": [
175
+ "optical",
176
+ "pan",
177
+ "multispectral",
178
+ "fused_runtime"
179
+ ],
180
+ "supports_streaming_fusion": true,
181
+ "requires_fusion_metadata": true,
182
+ "required_manifest_fields": [
183
+ "state",
184
+ "method",
185
+ "sources",
186
+ "target_resolution_m",
187
+ "native_multispectral_resolution_m",
188
+ "persisted",
189
+ "reproducible",
190
+ "spectral_preservation"
191
+ ]
192
+ },
193
+ "constraints": {
194
+ "do_not_assume_external_coastline_or_land_mask": true,
195
+ "unlabeled_elements_are_ignore_not_negative": true
196
+ }
197
+ }
configs/profiles/profiles/gf6_green_tide_fused_2m.json ADDED
@@ -0,0 +1,197 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "profile_id": "green_tide_GF6_PMS_FUSED_OPTICAL_2m",
3
+ "cards": {
4
+ "elements": {
5
+ "kind": "elements",
6
+ "id": "green_tide",
7
+ "path": "C:\\Users\\HUAWEI\\Documents\\New project 2\\seaweed-detection\\docs\\registry\\elements\\green_tide.md",
8
+ "meta": {
9
+ "id": "green_tide",
10
+ "type": "element",
11
+ "name": "Green tide / Enteromorpha",
12
+ "task_types": [
13
+ "semantic_segmentation",
14
+ "polygon_extraction"
15
+ ],
16
+ "preferred_heads": [
17
+ "validity",
18
+ "context",
19
+ "semantic_segmentation"
20
+ ],
21
+ "label_formats": [
22
+ "mask",
23
+ "polygon",
24
+ "geojson",
25
+ "shp"
26
+ ],
27
+ "positive_label": "green_tide",
28
+ "negative_policy": "unlabeled_is_ignore",
29
+ "typical_sensors": [
30
+ "PMS",
31
+ "MUX",
32
+ "MSS"
33
+ ],
34
+ "typical_resolutions_m": [
35
+ 2,
36
+ 8,
37
+ 10
38
+ ]
39
+ },
40
+ "body": "# Green Tide / Enteromorpha\n\nGreen tide is a floating-algae target. It can be confused with land vegetation,\naquaculture structures, cloud edges, turbid water, sunglint, and black/no-data\nregions if the model is trained as a simple foreground/background classifier.\n\n## Required Context\n\n- Validity handling: black borders and no-data pixels must not be interpreted as green tide.\n- Context handling: land and water context should be learned or provided as labels/hard negatives.\n- Do not assume a coastline vector or external land mask exists.\n\n## Recommended Output\n\n- Per-pixel probability map for green tide.\n- Binary candidate mask after validity/context filtering.\n- Optional polygon extraction for product delivery.\n\n## Failure Modes\n\n- Land vegetation is often spectrally similar to algae.\n- Black borders can be falsely predicted when labels do not include invalid regions.\n- Single-element binary models overpredict on unknown ecological elements."
41
+ },
42
+ "satellites": {
43
+ "kind": "satellites",
44
+ "id": "GF6",
45
+ "path": "C:\\Users\\HUAWEI\\Documents\\New project 2\\seaweed-detection\\docs\\registry\\satellites\\GF6.md",
46
+ "meta": {
47
+ "id": "GF6",
48
+ "type": "satellite",
49
+ "name": "Gaofen-6",
50
+ "country": "China",
51
+ "supported_sensors": [
52
+ "PMS",
53
+ "MUX",
54
+ "WFV"
55
+ ],
56
+ "typical_products": [
57
+ "MSS",
58
+ "PAN",
59
+ "fused"
60
+ ]
61
+ },
62
+ "body": "# GF6\n\nGF6 fused PMS/MUX products can be used directly for full-scene sliding-window\ninference. Large scenes may exceed tens of GB, so stream inference and output by\nstripe.\n\n## Notes\n\n- Use overlap-weighted windows to reduce tile seams.\n- Do not write full probability rasters unless explicitly needed."
63
+ },
64
+ "sensors": {
65
+ "kind": "sensors",
66
+ "id": "PMS",
67
+ "path": "C:\\Users\\HUAWEI\\Documents\\New project 2\\seaweed-detection\\docs\\registry\\sensors\\PMS.md",
68
+ "meta": {
69
+ "id": "PMS",
70
+ "type": "sensor",
71
+ "name": "Panchromatic and Multispectral Sensor",
72
+ "modalities": [
73
+ "optical",
74
+ "pan",
75
+ "multispectral"
76
+ ],
77
+ "common_bands": [
78
+ "blue",
79
+ "green",
80
+ "red",
81
+ "nir",
82
+ "pan"
83
+ ],
84
+ "supports_streaming_fusion": true
85
+ },
86
+ "body": "# PMS\n\nPMS data may provide separate PAN and MSS products or a fused product. For\nhigh-resolution ecological extraction, prefer stream fusion when PAN and MSS are\nboth available."
87
+ },
88
+ "resolutions": {
89
+ "kind": "resolutions",
90
+ "id": "2m",
91
+ "path": "C:\\Users\\HUAWEI\\Documents\\New project 2\\seaweed-detection\\docs\\registry\\resolutions\\2m.md",
92
+ "meta": {
93
+ "id": "2m",
94
+ "type": "resolution",
95
+ "resolution_m": 2,
96
+ "scale_group": "high",
97
+ "recommended_patch_sizes": [
98
+ 256,
99
+ 512,
100
+ 1024
101
+ ]
102
+ },
103
+ "body": "# 2 m Resolution\n\nUse for fine optical extraction. Floating algae texture, aquaculture structures,\nand small ships may be visible. Full-scene inference must use tiled/striped IO."
104
+ },
105
+ "fusion": {
106
+ "kind": "sensors",
107
+ "id": "FUSED_OPTICAL",
108
+ "path": "C:\\Users\\HUAWEI\\Documents\\New project 2\\seaweed-detection\\docs\\registry\\sensors\\FUSED_OPTICAL.md",
109
+ "meta": {
110
+ "id": "FUSED_OPTICAL",
111
+ "type": "sensor",
112
+ "name": "Fused optical product",
113
+ "modalities": [
114
+ "optical",
115
+ "multispectral",
116
+ "fused"
117
+ ],
118
+ "common_bands": [
119
+ "blue",
120
+ "green",
121
+ "red",
122
+ "nir"
123
+ ],
124
+ "supports_streaming_fusion": false,
125
+ "fusion_state": "fused_product",
126
+ "requires_fusion_metadata": true
127
+ },
128
+ "body": "# Fused Optical Product\n\nA fused optical product is not simply \"multispectral\". It is a derived product\nwhose spatial grid, spectral consistency, and artifacts depend on the fusion\nsource and method.\n\n## Required Fusion Metadata\n\nRecord these fields whenever a fused image is used:\n\n- `fusion_state`: `fused_product`.\n- `fusion_method`: known method name, or `unknown_vendor_product`.\n- `fusion_sources`: source product roles such as `PAN` and `MSS`.\n- `target_resolution_m`: output resolution after fusion.\n- `native_resolution_m`: original multispectral resolution if known.\n- `fusion_persisted`: `true` when the fused image exists on disk.\n- `fusion_reproducible`: `true` only if the source PAN/MSS and method are available.\n- `spectral_preservation`: `unknown`, `low`, `medium`, or `high`.\n\n## Notes\n\n- Do not assume fused products are radiometrically equivalent across satellites\n or vendors.\n- If the fusion method is unknown, preserve that uncertainty in the profile and\n dataset manifest."
129
+ }
130
+ },
131
+ "task": {
132
+ "element": "green_tide",
133
+ "task_types": [
134
+ "semantic_segmentation",
135
+ "polygon_extraction"
136
+ ],
137
+ "preferred_heads": [
138
+ "validity",
139
+ "context",
140
+ "semantic_segmentation"
141
+ ],
142
+ "label_formats": [
143
+ "mask",
144
+ "polygon",
145
+ "geojson",
146
+ "shp"
147
+ ],
148
+ "negative_policy": "unlabeled_is_ignore"
149
+ },
150
+ "input": {
151
+ "satellite": "GF6",
152
+ "sensor": "PMS",
153
+ "resolution_m": 2,
154
+ "modalities": [
155
+ "optical",
156
+ "pan",
157
+ "multispectral"
158
+ ],
159
+ "common_bands": [
160
+ "blue",
161
+ "green",
162
+ "red",
163
+ "nir",
164
+ "pan"
165
+ ],
166
+ "recommended_patch_sizes": [
167
+ 256,
168
+ 512,
169
+ 1024
170
+ ]
171
+ },
172
+ "fusion": {
173
+ "card": "FUSED_OPTICAL",
174
+ "state": "fused_product",
175
+ "modalities": [
176
+ "optical",
177
+ "multispectral",
178
+ "fused"
179
+ ],
180
+ "supports_streaming_fusion": false,
181
+ "requires_fusion_metadata": true,
182
+ "required_manifest_fields": [
183
+ "state",
184
+ "method",
185
+ "sources",
186
+ "target_resolution_m",
187
+ "native_multispectral_resolution_m",
188
+ "persisted",
189
+ "reproducible",
190
+ "spectral_preservation"
191
+ ]
192
+ },
193
+ "constraints": {
194
+ "do_not_assume_external_coastline_or_land_mask": true,
195
+ "unlabeled_elements_are_ignore_not_negative": true
196
+ }
197
+ }
docs/hf_dataset_discovery.md ADDED
@@ -0,0 +1,81 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Hugging Face Dataset Discovery
2
+
3
+ This report summarizes the Hugging Face dataset discovery pass for typical
4
+ marine ecological environment feature recognition.
5
+
6
+ Generated manifests are stored locally at:
7
+
8
+ ```text
9
+ C:\Users\HUAWEI\Documents\New project 2\hf_marine_feature_dataset\
10
+ manifests\
11
+ hf_assets_raw.jsonl
12
+ samples.jsonl
13
+ samples_ready.jsonl
14
+ samples_review.jsonl
15
+ reports\
16
+ hf_dataset_inventory.csv
17
+ hf_dataset_summary.json
18
+ hf_dataset_discovery.md
19
+ ```
20
+
21
+ The manifests use `hf://datasets/<repo>/<path>` references. Full image files are
22
+ not downloaded by the discovery script.
23
+
24
+ ## Current Discovery Result
25
+
26
+ - Repositories reviewed: 108
27
+ - HF assets indexed: 18,781
28
+ - Standardized sample references: 6,915
29
+ - Training-ready samples: 0
30
+ - Review samples: 6,915
31
+
32
+ Samples by inferred element:
33
+
34
+ | Element | Samples |
35
+ | --- | ---: |
36
+ | aquaculture | 1,869 |
37
+ | ship | 641 |
38
+ | sea_ice | 52 |
39
+ | green_tide | 2 |
40
+ | unknown / needs review | 4,351 |
41
+
42
+ ## Why Training-Ready Is Zero
43
+
44
+ The script is intentionally conservative. A sample is marked training-ready only
45
+ when all of these are true:
46
+
47
+ - the target element is known;
48
+ - an image is present;
49
+ - a paired mask is present;
50
+ - the pair can be matched from repository file paths without guessing.
51
+
52
+ Most Hugging Face repositories found in this pass store labels as CSV, parquet,
53
+ YOLO text, RLE, archives, or custom benchmark structures. Those assets are
54
+ indexed in `hf_assets_raw.jsonl`, but they require dataset-specific adapters
55
+ before they should be used for training.
56
+
57
+ ## High-Value Adapter Targets
58
+
59
+ - `datadrivenscience/ship-detection`: ship imagery with tabular annotation
60
+ assets; likely needs CSV/RLE or detection-format conversion.
61
+ - `reglab/aquaculture_detection`: aquaculture orthophoto images; likely needs
62
+ object-detection label parsing.
63
+ - `paperupload/seaicebench_sample` and `paperupload/SEAICEBENCH`: sea-ice
64
+ benchmark assets with multi-band image products and tabular data.
65
+ - `cuibinge/marine-ecological-feature-dataset`: current project assets and GF
66
+ scene inputs; already follows the no-external-coastline assumption.
67
+ - `cuibinge/Multimodal-Sea-Land`: large archive asset useful for land/sea
68
+ context, but it should be unpacked and mapped by an explicit adapter.
69
+
70
+ ## Exclusions
71
+
72
+ The discovery script excludes obvious false positives such as medical vessel
73
+ segmentation, retinal images, legal/text datasets, anime image datasets, and
74
+ health/community datasets that happen to contain words like `vessel`, `ocean`,
75
+ or `oil spill`.
76
+
77
+ ## Policy
78
+
79
+ Unknown elements and unpaired assets are not treated as negatives. They remain in
80
+ `samples_review.jsonl` until a card or adapter gives them explicit semantics.
81
+ No coastline vector, land-mask vector, or external GIS prior is assumed.
docs/registry/registry/README.md ADDED
@@ -0,0 +1,95 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Markdown Capability Registry
2
+
3
+ This directory stores composable Markdown capability cards. A card is a small
4
+ human-readable configuration unit with YAML front matter and operational notes.
5
+
6
+ Cards are intentionally separated by concern:
7
+
8
+ - `elements/`: target feature or object type, such as green tide, ship, oil spill, sea ice.
9
+ - `satellites/`: satellite/platform assumptions.
10
+ - `sensors/`: sensor or product type assumptions.
11
+ - `resolutions/`: spatial-resolution policies.
12
+
13
+ Extraction and training jobs should compose the cards they need instead of using
14
+ a single fixed class list. For example:
15
+
16
+ ```powershell
17
+ python scripts/compose_task_profile.py `
18
+ --element green_tide `
19
+ --satellite GF6 `
20
+ --sensor PMS `
21
+ --resolution 2m `
22
+ --output configs/profiles/gf6_green_tide_2m.json
23
+ ```
24
+
25
+ For already fused GF6-like products, inject a fused product card:
26
+
27
+ ```powershell
28
+ python scripts/compose_task_profile.py `
29
+ --element green_tide `
30
+ --satellite GF6 `
31
+ --sensor PMS `
32
+ --fusion FUSED_OPTICAL `
33
+ --resolution 2m `
34
+ --output configs/profiles/gf6_green_tide_fused_2m.json
35
+ ```
36
+
37
+ For raw PAN+MSS products where fusion should happen tile by tile during
38
+ inference, inject the streaming fusion card:
39
+
40
+ ```powershell
41
+ python scripts/compose_task_profile.py `
42
+ --element green_tide `
43
+ --satellite GF2 `
44
+ --sensor PMS `
45
+ --fusion STREAM_FUSION `
46
+ --resolution 2m `
47
+ --output configs/profiles/gf2_green_tide_stream_fusion_2m.json
48
+ ```
49
+
50
+ ## Card Format
51
+
52
+ Each card starts with YAML front matter:
53
+
54
+ ```markdown
55
+ ---
56
+ id: green_tide
57
+ type: element
58
+ task_types: [semantic_segmentation]
59
+ preferred_heads: [validity, context, semantic_segmentation]
60
+ label_formats: [mask, polygon]
61
+ ---
62
+
63
+ # Green Tide
64
+
65
+ Human-readable notes, rules, constraints, and known failure modes.
66
+ ```
67
+
68
+ The front matter is parsed by `scripts/compose_task_profile.py`. The Markdown body
69
+ is kept in the output profile so that training/inference logs preserve the
70
+ reasoning and caveats behind the selected cards.
71
+
72
+ ## Fused Image Expression
73
+
74
+ Fused imagery is represented as a derived observation, not as a plain
75
+ multispectral image and not as a boolean flag. The selected profile and dataset
76
+ manifest must keep a `fusion` object with:
77
+
78
+ - `state`: `none`, `fused_product`, `runtime_fusion`, or `unknown`.
79
+ - `method`: known method, implementation method, or `unknown_vendor_product`.
80
+ - `sources`: source roles and paths such as PAN and MSS.
81
+ - `target_resolution_m`: output grid resolution.
82
+ - `native_multispectral_resolution_m`: original multispectral resolution.
83
+ - `persisted`: whether the fused image exists on disk.
84
+ - `reproducible`: whether the source data and method can reproduce it.
85
+ - `spectral_preservation`: known or estimated spectral preservation risk.
86
+
87
+ This keeps GF6 supplied fused rasters, GF1/GF2 tile-wise fusion, and future
88
+ fusion algorithms comparable without pretending they are identical inputs.
89
+
90
+ ## Hard Constraint
91
+
92
+ Do not assume coastline vectors, land-mask vectors, or external GIS layers are
93
+ available. If a task needs land, water, invalid, or cloud handling, it must be
94
+ expressed as context labels, hard-negative samples, validity rules, or model
95
+ heads.
docs/registry/registry/elements/aquaculture.md ADDED
@@ -0,0 +1,24 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ id: aquaculture
3
+ type: element
4
+ name: Aquaculture area and facilities
5
+ task_types: [semantic_segmentation, instance_segmentation, change_detection, polygon_extraction]
6
+ preferred_heads: [validity, context, semantic_segmentation, instance, change_detection]
7
+ label_formats: [mask, bbox, polygon, coco, geojson, shp]
8
+ positive_label: aquaculture
9
+ negative_policy: unlabeled_is_ignore
10
+ typical_sensors: [PMS, MUX, MSI, SAR]
11
+ typical_resolutions_m: [1, 2, 10]
12
+ ---
13
+
14
+ # Aquaculture
15
+
16
+ Aquaculture may appear as dense rafts, cages, ponds, lines, grids, or coastal
17
+ facilities. It is not only a semantic segmentation problem; some datasets may
18
+ require instance, polygon, or change-detection heads.
19
+
20
+ ## Required Context
21
+
22
+ - Ships, docks, land structures, and waves are hard negatives.
23
+ - Scale is critical; preserve resolution and patch-size metadata.
24
+
docs/registry/registry/elements/golden_tide.md ADDED
@@ -0,0 +1,24 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ id: golden_tide
3
+ type: element
4
+ name: Golden tide / Sargassum
5
+ task_types: [semantic_segmentation, polygon_extraction]
6
+ preferred_heads: [validity, context, semantic_segmentation]
7
+ label_formats: [mask, polygon]
8
+ positive_label: golden_tide
9
+ negative_policy: unlabeled_is_ignore
10
+ typical_sensors: [PMS, MUX, MSS, MSI]
11
+ typical_resolutions_m: [2, 10]
12
+ ---
13
+
14
+ # Golden Tide / Sargassum
15
+
16
+ Golden tide is a floating vegetation-like target. It shares confusion sources
17
+ with green tide but may have different color, texture, and morphology.
18
+
19
+ ## Required Context
20
+
21
+ - Treat unlabeled ecological elements as ignore, not as negatives.
22
+ - Keep original scale metadata because raft-like texture and floating patches
23
+ change strongly with resolution.
24
+
docs/registry/registry/elements/green_tide.md ADDED
@@ -0,0 +1,37 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ id: green_tide
3
+ type: element
4
+ name: Green tide / Enteromorpha
5
+ task_types: [semantic_segmentation, polygon_extraction]
6
+ preferred_heads: [validity, context, semantic_segmentation]
7
+ label_formats: [mask, polygon, geojson, shp]
8
+ positive_label: green_tide
9
+ negative_policy: unlabeled_is_ignore
10
+ typical_sensors: [PMS, MUX, MSS]
11
+ typical_resolutions_m: [2, 8, 10]
12
+ ---
13
+
14
+ # Green Tide / Enteromorpha
15
+
16
+ Green tide is a floating-algae target. It can be confused with land vegetation,
17
+ aquaculture structures, cloud edges, turbid water, sunglint, and black/no-data
18
+ regions if the model is trained as a simple foreground/background classifier.
19
+
20
+ ## Required Context
21
+
22
+ - Validity handling: black borders and no-data pixels must not be interpreted as green tide.
23
+ - Context handling: land and water context should be learned or provided as labels/hard negatives.
24
+ - Do not assume a coastline vector or external land mask exists.
25
+
26
+ ## Recommended Output
27
+
28
+ - Per-pixel probability map for green tide.
29
+ - Binary candidate mask after validity/context filtering.
30
+ - Optional polygon extraction for product delivery.
31
+
32
+ ## Failure Modes
33
+
34
+ - Land vegetation is often spectrally similar to algae.
35
+ - Black borders can be falsely predicted when labels do not include invalid regions.
36
+ - Single-element binary models overpredict on unknown ecological elements.
37
+
docs/registry/registry/elements/oil_spill.md ADDED
@@ -0,0 +1,25 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ id: oil_spill
3
+ type: element
4
+ name: Oil spill
5
+ task_types: [semantic_segmentation, anomaly_detection]
6
+ preferred_heads: [validity, context, semantic_segmentation]
7
+ label_formats: [mask, polygon]
8
+ positive_label: oil_spill
9
+ negative_policy: unlabeled_is_ignore
10
+ typical_sensors: [SAR, MSI, OLI]
11
+ typical_resolutions_m: [10, 30]
12
+ ---
13
+
14
+ # Oil Spill
15
+
16
+ Oil spill extraction is often sensor-specific. SAR imagery is especially useful,
17
+ but dark slicks can be confused with low wind, biogenic films, rain cells, and
18
+ calm water.
19
+
20
+ ## Required Context
21
+
22
+ - Sensor type must be explicit.
23
+ - Use hard negatives for natural dark water phenomena.
24
+ - Do not treat unlabeled water anomalies as definite negatives.
25
+
docs/registry/registry/elements/red_tide.md ADDED
@@ -0,0 +1,29 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ id: red_tide
3
+ type: element
4
+ name: Red tide / harmful algal bloom
5
+ task_types: [semantic_segmentation, classification]
6
+ preferred_heads: [validity, context, semantic_segmentation]
7
+ label_formats: [mask, polygon, image_label]
8
+ positive_label: red_tide
9
+ negative_policy: unlabeled_is_ignore
10
+ typical_sensors: [PMS, MUX, MSS, MSI, OLI]
11
+ typical_resolutions_m: [10, 30]
12
+ ---
13
+
14
+ # Red Tide
15
+
16
+ Red tide is often a broad water-color anomaly rather than a sharp object. It may
17
+ need both local texture/color features and broader context.
18
+
19
+ ## Required Context
20
+
21
+ - Water background and turbid-water hard negatives are important.
22
+ - Clouds, haze, sunglint, and sensor striping should be explicit context or ignored.
23
+ - Do not assume external water/land masks.
24
+
25
+ ## Recommended Output
26
+
27
+ - Pixel-level red-tide probability for segmentation data.
28
+ - Scene or patch-level likelihood when only weak labels are available.
29
+
docs/registry/registry/elements/sea_ice.md ADDED
@@ -0,0 +1,23 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ id: sea_ice
3
+ type: element
4
+ name: Sea ice
5
+ task_types: [semantic_segmentation, classification, change_detection]
6
+ preferred_heads: [validity, context, semantic_segmentation, change_detection]
7
+ label_formats: [mask, polygon, image_label]
8
+ positive_label: sea_ice
9
+ negative_policy: unlabeled_is_ignore
10
+ typical_sensors: [SAR, MSI, OLI]
11
+ typical_resolutions_m: [10, 30]
12
+ ---
13
+
14
+ # Sea Ice
15
+
16
+ Sea ice can be mapped from optical or SAR data, but the feature appearance changes
17
+ with sensor, illumination, weather, and season.
18
+
19
+ ## Required Context
20
+
21
+ - Clouds, snow, bright land, and sea ice must not be collapsed into one class.
22
+ - Sensor-specific normalization and augmentations are required.
23
+
docs/registry/registry/elements/ship.md ADDED
@@ -0,0 +1,24 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ id: ship
3
+ type: element
4
+ name: Ship
5
+ task_types: [detection, instance_segmentation, oriented_detection]
6
+ preferred_heads: [validity, context, detection, instance]
7
+ label_formats: [bbox, rotated_bbox, polygon, coco, dota]
8
+ positive_label: ship
9
+ negative_policy: unlabeled_is_ignore
10
+ typical_sensors: [PMS, PAN, SAR]
11
+ typical_resolutions_m: [0.5, 1, 2, 3, 10]
12
+ ---
13
+
14
+ # Ship
15
+
16
+ Ships are object targets and should not be forced into a pure semantic
17
+ segmentation class. Use detection, oriented detection, or instance segmentation
18
+ when annotations support it.
19
+
20
+ ## Required Context
21
+
22
+ - Ports, aquaculture grids, bridges, and bright wave wakes are hard negatives.
23
+ - SAR and optical ship extraction should be sensor-aware.
24
+
docs/registry/registry/resolutions/10m.md ADDED
@@ -0,0 +1,13 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ id: 10m
3
+ type: resolution
4
+ resolution_m: 10
5
+ scale_group: medium
6
+ recommended_patch_sizes: [128, 256, 512]
7
+ ---
8
+
9
+ # 10 m Resolution
10
+
11
+ Common for Sentinel-2 optical products and some ecological element monitoring
12
+ tasks. Good for broad blooms and sea-ice context; limited for small ships.
13
+
docs/registry/registry/resolutions/2m.md ADDED
@@ -0,0 +1,13 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ id: 2m
3
+ type: resolution
4
+ resolution_m: 2
5
+ scale_group: high
6
+ recommended_patch_sizes: [256, 512, 1024]
7
+ ---
8
+
9
+ # 2 m Resolution
10
+
11
+ Use for fine optical extraction. Floating algae texture, aquaculture structures,
12
+ and small ships may be visible. Full-scene inference must use tiled/striped IO.
13
+
docs/registry/registry/resolutions/30m.md ADDED
@@ -0,0 +1,13 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ id: 30m
3
+ type: resolution
4
+ resolution_m: 30
5
+ scale_group: coarse
6
+ recommended_patch_sizes: [128, 256]
7
+ ---
8
+
9
+ # 30 m Resolution
10
+
11
+ Use for broad-scale monitoring. Object-level targets such as small ships or
12
+ aquaculture details are usually unsuitable at this scale.
13
+
docs/registry/registry/resolutions/8m.md ADDED
@@ -0,0 +1,13 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ id: 8m
3
+ type: resolution
4
+ resolution_m: 8
5
+ scale_group: medium
6
+ recommended_patch_sizes: [128, 256, 512]
7
+ ---
8
+
9
+ # 8 m Resolution
10
+
11
+ Use for multispectral products where spatial detail is coarser. Small objects may
12
+ be missed, but broad ecological elements can still be detected.
13
+
docs/registry/registry/satellites/GF1.md ADDED
@@ -0,0 +1,19 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ id: GF1
3
+ type: satellite
4
+ name: Gaofen-1
5
+ country: China
6
+ supported_sensors: [PMS, WFV]
7
+ typical_products: [MSS, PAN, fused]
8
+ ---
9
+
10
+ # GF1
11
+
12
+ GF1 data may include multispectral and panchromatic products depending on the
13
+ sensor and acquisition package. Do not assume a PAN image exists for every scene.
14
+
15
+ ## Notes
16
+
17
+ - Preserve the original product metadata and RPB/XML side files when available.
18
+ - If PAN is missing, do not run pan-sharpened inference.
19
+
docs/registry/registry/satellites/GF2.md ADDED
@@ -0,0 +1,20 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ id: GF2
3
+ type: satellite
4
+ name: Gaofen-2
5
+ country: China
6
+ supported_sensors: [PMS]
7
+ typical_products: [MSS, PAN, fused]
8
+ ---
9
+
10
+ # GF2
11
+
12
+ GF2 PMS scenes commonly provide paired PAN and MSS products. For models targeting
13
+ 2 m products, stream PAN+MSS fusion tile-by-tile instead of saving a full fused
14
+ scene to disk.
15
+
16
+ ## Notes
17
+
18
+ - Keep both `pan_path` and `image_path` in the manifest.
19
+ - Preserve sensor geometry metadata when available.
20
+
docs/registry/registry/satellites/GF6.md ADDED
@@ -0,0 +1,20 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ id: GF6
3
+ type: satellite
4
+ name: Gaofen-6
5
+ country: China
6
+ supported_sensors: [PMS, MUX, WFV]
7
+ typical_products: [MSS, PAN, fused]
8
+ ---
9
+
10
+ # GF6
11
+
12
+ GF6 fused PMS/MUX products can be used directly for full-scene sliding-window
13
+ inference. Large scenes may exceed tens of GB, so stream inference and output by
14
+ stripe.
15
+
16
+ ## Notes
17
+
18
+ - Use overlap-weighted windows to reduce tile seams.
19
+ - Do not write full probability rasters unless explicitly needed.
20
+
docs/registry/registry/satellites/SAR_Generic.md ADDED
@@ -0,0 +1,14 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ id: SAR_Generic
3
+ type: satellite
4
+ name: Generic SAR platform
5
+ supported_sensors: [SAR]
6
+ typical_products: [GRD, SLC, calibrated_backscatter]
7
+ ---
8
+
9
+ # Generic SAR Platform
10
+
11
+ Use this card when the platform is not yet modeled as a dedicated satellite card
12
+ but the source is SAR. SAR-specific normalization and speckle handling are
13
+ required.
14
+
docs/registry/registry/satellites/Sentinel2.md ADDED
@@ -0,0 +1,19 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ id: Sentinel2
3
+ type: satellite
4
+ name: Sentinel-2
5
+ country: EU
6
+ supported_sensors: [MSI]
7
+ typical_products: [L1C, L2A]
8
+ ---
9
+
10
+ # Sentinel-2
11
+
12
+ Sentinel-2 MSI provides multispectral optical data with mixed 10 m, 20 m, and
13
+ 60 m bands. Resampling policy must be explicit in the task profile.
14
+
15
+ ## Notes
16
+
17
+ - Record which bands are used and their native resolutions.
18
+ - Cloud/haze handling is important for optical ecological elements.
19
+
docs/registry/registry/sensors/FUSED_OPTICAL.md ADDED
@@ -0,0 +1,37 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ id: FUSED_OPTICAL
3
+ type: sensor
4
+ name: Fused optical product
5
+ modalities: [optical, multispectral, fused]
6
+ common_bands: [blue, green, red, nir]
7
+ supports_streaming_fusion: false
8
+ fusion_state: fused_product
9
+ requires_fusion_metadata: true
10
+ ---
11
+
12
+ # Fused Optical Product
13
+
14
+ A fused optical product is not simply "multispectral". It is a derived product
15
+ whose spatial grid, spectral consistency, and artifacts depend on the fusion
16
+ source and method.
17
+
18
+ ## Required Fusion Metadata
19
+
20
+ Record these fields whenever a fused image is used:
21
+
22
+ - `fusion_state`: `fused_product`.
23
+ - `fusion_method`: known method name, or `unknown_vendor_product`.
24
+ - `fusion_sources`: source product roles such as `PAN` and `MSS`.
25
+ - `target_resolution_m`: output resolution after fusion.
26
+ - `native_resolution_m`: original multispectral resolution if known.
27
+ - `fusion_persisted`: `true` when the fused image exists on disk.
28
+ - `fusion_reproducible`: `true` only if the source PAN/MSS and method are available.
29
+ - `spectral_preservation`: `unknown`, `low`, `medium`, or `high`.
30
+
31
+ ## Notes
32
+
33
+ - Do not assume fused products are radiometrically equivalent across satellites
34
+ or vendors.
35
+ - If the fusion method is unknown, preserve that uncertainty in the profile and
36
+ dataset manifest.
37
+
docs/registry/registry/sensors/MSS.md ADDED
@@ -0,0 +1,14 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ id: MSS
3
+ type: sensor
4
+ name: Multispectral scanner/product
5
+ modalities: [optical, multispectral]
6
+ common_bands: [blue, green, red, nir]
7
+ supports_streaming_fusion: true
8
+ ---
9
+
10
+ # MSS
11
+
12
+ MSS products are usually lower resolution than PAN. If the target model expects a
13
+ PAN-scale product, pair with a PAN card/product and fuse during tile inference.
14
+
docs/registry/registry/sensors/MUX.md ADDED
@@ -0,0 +1,14 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ id: MUX
3
+ type: sensor
4
+ name: Multispectral camera
5
+ modalities: [optical, multispectral]
6
+ common_bands: [blue, green, red, nir]
7
+ supports_streaming_fusion: false
8
+ ---
9
+
10
+ # MUX
11
+
12
+ MUX-like products are multispectral. If already fused to a high-resolution grid,
13
+ they can be used directly; otherwise record the native spatial resolution.
14
+
docs/registry/registry/sensors/PAN.md ADDED
@@ -0,0 +1,15 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ id: PAN
3
+ type: sensor
4
+ name: Panchromatic product
5
+ modalities: [optical, panchromatic]
6
+ common_bands: [pan]
7
+ supports_streaming_fusion: true
8
+ ---
9
+
10
+ # PAN
11
+
12
+ PAN products provide spatial detail but not the multispectral information needed
13
+ by most ecological element heads. Use as a fusion source, not as a direct
14
+ four-band model input.
15
+
docs/registry/registry/sensors/PMS.md ADDED
@@ -0,0 +1,15 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ id: PMS
3
+ type: sensor
4
+ name: Panchromatic and Multispectral Sensor
5
+ modalities: [optical, pan, multispectral]
6
+ common_bands: [blue, green, red, nir, pan]
7
+ supports_streaming_fusion: true
8
+ ---
9
+
10
+ # PMS
11
+
12
+ PMS data may provide separate PAN and MSS products or a fused product. For
13
+ high-resolution ecological extraction, prefer stream fusion when PAN and MSS are
14
+ both available.
15
+
docs/registry/registry/sensors/SAR.md ADDED
@@ -0,0 +1,15 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ id: SAR
3
+ type: sensor
4
+ name: Synthetic Aperture Radar
5
+ modalities: [radar]
6
+ common_bands: [vv, vh, hh, hv]
7
+ supports_streaming_fusion: false
8
+ ---
9
+
10
+ # SAR
11
+
12
+ SAR is useful for ships, oil spills, sea ice, and all-weather monitoring. It
13
+ requires sensor-specific normalization and is not interchangeable with optical
14
+ four-band products.
15
+
docs/registry/registry/sensors/STREAM_FUSION.md ADDED
@@ -0,0 +1,34 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ id: STREAM_FUSION
3
+ type: sensor
4
+ name: Streaming PAN+MSS fusion
5
+ modalities: [optical, pan, multispectral, fused_runtime]
6
+ common_bands: [blue, green, red, nir]
7
+ supports_streaming_fusion: true
8
+ fusion_state: runtime_fusion
9
+ requires_fusion_metadata: true
10
+ ---
11
+
12
+ # Streaming PAN+MSS Fusion
13
+
14
+ Streaming fusion means the fused tile is produced in memory during inference or
15
+ training and is not stored as a full-scene raster.
16
+
17
+ ## Required Fusion Metadata
18
+
19
+ - `fusion_state`: `runtime_fusion`.
20
+ - `fusion_method`: method used by the implementation.
21
+ - `fusion_sources`: at minimum `pan_path` and `mss_path`.
22
+ - `target_resolution_m`: usually the PAN product resolution.
23
+ - `native_resolution_m`: original MSS resolution.
24
+ - `fusion_persisted`: `false`.
25
+ - `fusion_reproducible`: `true` if the source images and code are available.
26
+ - `tile_aligned`: whether PAN and MSS windows are aligned consistently.
27
+
28
+ ## Notes
29
+
30
+ - Prefer this for very large GF2/GF1-like scenes to avoid writing full fused
31
+ products.
32
+ - Fusion seams and model tile seams are separate problems; use overlap-weighted
33
+ inference after fusion.
34
+
typical-marine-ecological-feature-recognition-source.zip CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:9bdb0199f1f362178a058128bb6d577612bd3a5600ce5083cb563bbf3acdd81f
3
- size 426619
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:9289bdcbd466df83de2b014697ced6d50bfbb2123ecf074449e5ade894602939
3
+ size 434189