From dc463ae575b8766a96073caf5f4725bfff52d107 Mon Sep 17 00:00:00 2001 From: "veda-ingest-ui[bot]" <248557473+veda-ingest-ui[bot]@users.noreply.github.com> Date: Mon, 4 May 2026 20:41:23 +0000 Subject: [PATCH 1/4] Create ingestion-data/staging/dataset-config/opera-distalert-daily.json --- .../dataset-config/opera-distalert-daily.json | 196 ++++++++++++++++++ 1 file changed, 196 insertions(+) create mode 100644 ingestion-data/staging/dataset-config/opera-distalert-daily.json diff --git a/ingestion-data/staging/dataset-config/opera-distalert-daily.json b/ingestion-data/staging/dataset-config/opera-distalert-daily.json new file mode 100644 index 0000000..eb8c287 --- /dev/null +++ b/ingestion-data/staging/dataset-config/opera-distalert-daily.json @@ -0,0 +1,196 @@ +{ + "collection": "opera-distalert-daily", + "title": "OPERA DIST-ALERT Daily", + "description": "OPERA disturbance alert products including vegetation and generic disturbance status and anomaly layers.", + "license": "CC0-1.0", + "stac_version": "1.0.0", + "dashboard:is_periodic": false, + "dashboard:time_density": "day", + "dashboard:time_interval": "P1D", + "links": [], + "spatial_extent": { + "xmin": -125, + "ymin": 24, + "xmax": -66, + "ymax": 49 + }, + "temporal_extent": { + "startdate": "2020-01-01T00:00:00Z", + "enddate": null + }, + "discovery_items": [ + { + "discovery": "s3", + "prefix": "ProgramData/OPERA/DistAlert/", + "bucket": "nasa-disasters-staging", + "filename_regex": ".*_day\\.tif$", + "datetime_range": "day", + "id_regex": ".*(\\d{4}-\\d{2}-\\d{2})_day\\.tif$", + "id_template": "opera-distalert-daily-{}", + "disasters:extract_event_name": true, + "disasters:monty": true, + "disasters:add_product": true, + "disasters:add_providers": true, + "cogify": false, + "dry_run": false, + "use_multithreading": false, + "assets": { + "veg-anom-max": { + "title": "Sentinel-2 ARIA OPERA Disturbance Alert (VEG ANOM MAX)", + "description": "S2 ARIA OPERA disturbance alert maximum vegetation anomaly value.", + "regex": ".*VEG-ANOM-MAX.*\\.tif$" + }, + "veg-dist-status": { + "title": "Sentinel-2 ARIA OPERA Disturbance Alert (VEG DIST STATUS)", + "description": "S2 ARIA OPERA vegetation disturbance status.", + "regex": ".*VEG-DIST-STATUS.*\\.tif$" + }, + "gen-anom-max": { + "title": "Sentinel-2 ARIA OPERA Disturbance Alert (GEN ANOM MAX)", + "description": "Generic disturbance maximum anomaly value.", + "regex": ".*GEN-ANOM-MAX.*\\.tif$" + }, + "gen-dist-status": { + "title": "Sentinel-2 ARIA OPERA Disturbance Alert (GEN DIST STATUS)", + "description": "Generic disturbance status.", + "regex": ".*GEN-DIST-STATUS.*\\.tif$" + } + }, + "collection": "opera-distalert-daily" + } + ], + "data_type": "cog", + "stac_extensions": [ + "https://stac-extensions.github.io/render/v1.0.0/schema.json", + "https://stac-extensions.github.io/item-assets/v1.0.0/schema.json" + ], + "renders": { + "dashboard": { + "assets": [ + "veg-dist-status" + ], + "bidx": [ + 1 + ], + "nodata": 0, + "colormap_name": "ylorrd", + "rescale": [ + [ + 0, + 255 + ] + ] + }, + "veg-anom-max": { + "assets": [ + "veg-anom-max" + ], + "bidx": [ + 1 + ], + "nodata": 0, + "colormap_name": "ylorrd", + "rescale": [ + [ + 0, + 100 + ] + ] + }, + "veg-dist-status": { + "assets": [ + "veg-dist-status" + ], + "bidx": [ + 1 + ], + "nodata": 0, + "colormap_name": "ylorrd", + "rescale": [ + [ + 0, + 255 + ] + ] + }, + "gen-anom-max": { + "assets": [ + "gen-anom-max" + ], + "bidx": [ + 1 + ], + "nodata": 0, + "colormap_name": "ylorrd", + "rescale": [ + [ + 0, + 100 + ] + ] + }, + "gen-dist-status": { + "assets": [ + "gen-dist-status" + ], + "bidx": [ + 1 + ], + "nodata": 0, + "colormap_name": "ylorrd", + "rescale": [ + [ + 0, + 255 + ] + ] + } + }, + "providers": [ + { + "name": "NASA Disasters Program", + "roles": [ + "host" + ], + "url": "https://disasters.openveda.cloud" + } + ], + "item_assets": { + "veg-anom-max": { + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "roles": [ + "data", + "layer" + ], + "title": "Sentinel-2 ARIA OPERA Disturbance Alert (VEG ANOM MAX)", + "description": "S2 ARIA OPERA disturbance alert maximum vegetation anomaly value." + }, + "veg-dist-status": { + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "roles": [ + "data", + "layer" + ], + "title": "Sentinel-2 ARIA OPERA Disturbance Alert (VEG DIST STATUS)", + "description": "S2 ARIA OPERA vegetation disturbance status." + }, + "gen-anom-max": { + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "roles": [ + "data", + "layer" + ], + "title": "Sentinel-2 ARIA OPERA Disturbance Alert (GEN ANOM MAX)", + "description": "Generic disturbance maximum anomaly value." + }, + "gen-dist-status": { + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "roles": [ + "data", + "layer" + ], + "title": "Sentinel-2 ARIA OPERA Disturbance Alert (GEN DIST STATUS)", + "description": "Generic disturbance status." + } + } +} \ No newline at end of file From 8e321d2d1d388726effec6f648ba2818605c974f Mon Sep 17 00:00:00 2001 From: "veda-ingest-ui[bot]" <248557473+veda-ingest-ui[bot]@users.noreply.github.com> Date: Mon, 4 May 2026 20:49:25 +0000 Subject: [PATCH 2/4] update via UI --- .../dataset-config/opera-distalert-daily.json | 84 +++++++++---------- 1 file changed, 42 insertions(+), 42 deletions(-) diff --git a/ingestion-data/staging/dataset-config/opera-distalert-daily.json b/ingestion-data/staging/dataset-config/opera-distalert-daily.json index eb8c287..5b35977 100644 --- a/ingestion-data/staging/dataset-config/opera-distalert-daily.json +++ b/ingestion-data/staging/dataset-config/opera-distalert-daily.json @@ -33,7 +33,6 @@ "disasters:add_providers": true, "cogify": false, "dry_run": false, - "use_multithreading": false, "assets": { "veg-anom-max": { "title": "Sentinel-2 ARIA OPERA Disturbance Alert (VEG ANOM MAX)", @@ -56,6 +55,7 @@ "regex": ".*GEN-DIST-STATUS.*\\.tif$" } }, + "use_multithreading": false, "collection": "opera-distalert-daily" } ], @@ -64,10 +64,48 @@ "https://stac-extensions.github.io/render/v1.0.0/schema.json", "https://stac-extensions.github.io/item-assets/v1.0.0/schema.json" ], + "item_assets": { + "veg-anom-max": { + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "roles": [ + "data", + "layer" + ], + "title": "Sentinel-2 ARIA OPERA Disturbance Alert (VEG ANOM MAX)", + "description": "S2 ARIA OPERA disturbance alert maximum vegetation anomaly value." + }, + "veg-dist-status": { + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "roles": [ + "data", + "layer" + ], + "title": "Sentinel-2 ARIA OPERA Disturbance Alert (VEG DIST STATUS)", + "description": "S2 ARIA OPERA vegetation disturbance status." + }, + "gen-anom-max": { + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "roles": [ + "data", + "layer" + ], + "title": "Sentinel-2 ARIA OPERA Disturbance Alert (GEN ANOM MAX)", + "description": "Generic disturbance maximum anomaly value." + }, + "gen-dist-status": { + "type": "image/tiff; application=geotiff; profile=cloud-optimized", + "roles": [ + "data", + "layer" + ], + "title": "Sentinel-2 ARIA OPERA Disturbance Alert (GEN DIST STATUS)", + "description": "Generic disturbance status." + } + }, "renders": { "dashboard": { "assets": [ - "veg-dist-status" + "gen-anom-max" ], "bidx": [ 1 @@ -77,7 +115,7 @@ "rescale": [ [ 0, - 255 + 100 ] ] }, @@ -154,43 +192,5 @@ ], "url": "https://disasters.openveda.cloud" } - ], - "item_assets": { - "veg-anom-max": { - "type": "image/tiff; application=geotiff; profile=cloud-optimized", - "roles": [ - "data", - "layer" - ], - "title": "Sentinel-2 ARIA OPERA Disturbance Alert (VEG ANOM MAX)", - "description": "S2 ARIA OPERA disturbance alert maximum vegetation anomaly value." - }, - "veg-dist-status": { - "type": "image/tiff; application=geotiff; profile=cloud-optimized", - "roles": [ - "data", - "layer" - ], - "title": "Sentinel-2 ARIA OPERA Disturbance Alert (VEG DIST STATUS)", - "description": "S2 ARIA OPERA vegetation disturbance status." - }, - "gen-anom-max": { - "type": "image/tiff; application=geotiff; profile=cloud-optimized", - "roles": [ - "data", - "layer" - ], - "title": "Sentinel-2 ARIA OPERA Disturbance Alert (GEN ANOM MAX)", - "description": "Generic disturbance maximum anomaly value." - }, - "gen-dist-status": { - "type": "image/tiff; application=geotiff; profile=cloud-optimized", - "roles": [ - "data", - "layer" - ], - "title": "Sentinel-2 ARIA OPERA Disturbance Alert (GEN DIST STATUS)", - "description": "Generic disturbance status." - } - } + ] } \ No newline at end of file From 969bf0e5cbc5829a831b28a78867bb6b92c8b11b Mon Sep 17 00:00:00 2001 From: "veda-ingest-ui[bot]" <248557473+veda-ingest-ui[bot]@users.noreply.github.com> Date: Mon, 11 May 2026 19:33:25 +0000 Subject: [PATCH 3/4] update via UI --- .../dataset-config/opera-distalert-daily.json | 146 +++++++++++++++--- 1 file changed, 128 insertions(+), 18 deletions(-) diff --git a/ingestion-data/staging/dataset-config/opera-distalert-daily.json b/ingestion-data/staging/dataset-config/opera-distalert-daily.json index 5b35977..ac22313 100644 --- a/ingestion-data/staging/dataset-config/opera-distalert-daily.json +++ b/ingestion-data/staging/dataset-config/opera-distalert-daily.json @@ -1,7 +1,7 @@ { "collection": "opera-distalert-daily", - "title": "OPERA DIST-ALERT Daily", - "description": "OPERA disturbance alert products including vegetation and generic disturbance status and anomaly layers.", + "title": "OPERA DIST-ALERT", + "description": "Researchers working with the Global Land Analysis & Discovery (GLAD) at University of Maryland, College Park, Maryland and Advanced Rapid Imaging and Analysis (ARIA) and Observational Products for End-Users from Remote Sensing Analysis (OPERA) teams at NASA's Jet Propulsion Laboratory, Pasadena, California, created maps of surface disturbance using the OPERA Disturbance Alert from Harmonized Landsat Sentinel-2 (DIST-ALERT-HLS) products.\nThe results posted here are preliminary results, primarily intended to aid the field response and people who wanted to have a rough first look at the impacted areas. All information is provisional for use under emergency response guidelines. These data are provided with absolutely no warranty of any kind. Use at your own risk.\nOPERA DIST-ALERT-HLS\nThe Disturbance product (DIST) maps per pixel vegetation disturbance (specifically, vegetation cover loss) from the Harmonized Landsat Sentinel-2 (HLS) scenes. We provide the (1) maximum vegetation anomaly value (VEG-ANOM-MAX) layer and (2) vegetation disturbance status (VEG-DIST-STATUS). \nVEG-ANOM-MAX:\nDifference between historical and current year observed vegetation cover at the date of maximum decrease (vegetation loss of 0-100%). This layer can be used to threshold vegetation disturbance per a given sensitivity (e.g. disturbance of ≥20% vegetation cover loss). The sum of the historical percent vegetation and the anomaly value will be the vegetation cover estimate for the current year.\nVEG-DIST-STATUS:\nIndication of vegetation cover loss (vegetation disturbance). The status label is based on the maximum anomaly value, confidence level, and whether it is ongoing or finished. \"First\" means the pixel has had an anomaly detection but no subsequent observations whether anomalous or not. \"Provisional\" means there have been two consecutive disturbance detections but not yet with high confidence. \"Confirmed\" means that vegetation disturbance is detected with high confidence. The label \"finished\" is applied to confirmed disturbances that have had two consecutive no-anomaly observations or one 15 days or more after the last anomaly detection. If a new disturbance is detected, it will overwrite those in a \"finished\" state. These labels are reported for both above and below the 50% disturbance threshold based on the maximum anomaly value.", "license": "CC0-1.0", "stac_version": "1.0.0", "dashboard:is_periodic": false, @@ -36,12 +36,12 @@ "assets": { "veg-anom-max": { "title": "Sentinel-2 ARIA OPERA Disturbance Alert (VEG ANOM MAX)", - "description": "S2 ARIA OPERA disturbance alert maximum vegetation anomaly value.", + "description": "S2 ARIA OPERA disturbance alert maximum vegetation anomaly value. VEG-ANOM-MAX: Difference between historical and current year observed vegetation cover at the date of maximum decrease (vegetation loss of 0-100%). This layer can be used to threshold vegetation disturbance per a given sensitivity (e.g. disturbance of ≥20% vegetation cover loss). The sum of the historical percent vegetation and the anomaly value will be the vegetation cover estimate for the current year.", "regex": ".*VEG-ANOM-MAX.*\\.tif$" }, "veg-dist-status": { "title": "Sentinel-2 ARIA OPERA Disturbance Alert (VEG DIST STATUS)", - "description": "S2 ARIA OPERA vegetation disturbance status.", + "description": "S2 ARIA OPERA vegetation disturbance status. VEG-DIST-STATUS: Indication of vegetation cover loss (vegetation disturbance). The status label is based on the maximum anomaly value, confidence level, and whether it is ongoing or finished. \"First\" means the pixel has had an anomaly detection but no subsequent observations whether anomalous or not. \"Provisional\" means there have been two consecutive disturbance detections but not yet with high confidence. \"Confirmed\" means that vegetation disturbance is detected with high confidence. The label \"finished\" is applied to confirmed disturbances that have had two consecutive no-anomaly observations or one 15 days or more after the last anomaly detection. If a new disturbance is detected, it will overwrite those in a \"finished\" state. These labels are reported for both above and below the 50% disturbance threshold based on the maximum anomaly value.", "regex": ".*VEG-DIST-STATUS.*\\.tif$" }, "gen-anom-max": { @@ -72,7 +72,7 @@ "layer" ], "title": "Sentinel-2 ARIA OPERA Disturbance Alert (VEG ANOM MAX)", - "description": "S2 ARIA OPERA disturbance alert maximum vegetation anomaly value." + "description": "Maximum vegetation anomaly value representing the difference between historical and current year observed vegetation cover at the date of maximum decrease (vegetation loss of 0-100%)." }, "veg-dist-status": { "type": "image/tiff; application=geotiff; profile=cloud-optimized", @@ -81,7 +81,7 @@ "layer" ], "title": "Sentinel-2 ARIA OPERA Disturbance Alert (VEG DIST STATUS)", - "description": "S2 ARIA OPERA vegetation disturbance status." + "description": "Vegetation disturbance status indicating vegetation cover loss based on maximum anomaly value, confidence level, and whether disturbance is ongoing or finished." }, "gen-anom-max": { "type": "image/tiff; application=geotiff; profile=cloud-optimized", @@ -110,8 +110,8 @@ "bidx": [ 1 ], - "nodata": 0, - "colormap_name": "ylorrd", + "nodata": 255, + "colormap_name": "reds", "rescale": [ [ 0, @@ -126,8 +126,8 @@ "bidx": [ 1 ], - "nodata": 0, - "colormap_name": "ylorrd", + "nodata": 255, + "colormap_name": "reds", "rescale": [ [ 0, @@ -142,14 +142,69 @@ "bidx": [ 1 ], - "nodata": 0, - "colormap_name": "ylorrd", + "nodata": 255, "rescale": [ [ 0, + 8 + ] + ], + "colormap": { + "0": [ + 18, + 18, + 18, + 255 + ], + "1": [ + 0, + 85, + 85, + 255 + ], + "2": [ + 137, + 127, + 78, + 255 + ], + "3": [ + 222, + 224, + 67, + 255 + ], + "4": [ + 0, + 136, + 136, + 255 + ], + "5": [ + 228, + 135, + 39, + 255 + ], + "6": [ + 224, + 27, + 7, + 255 + ], + "7": [ + 119, + 119, + 119, + 255 + ], + "8": [ + 221, + 221, + 221, 255 ] - ] + } }, "gen-anom-max": { "assets": [ @@ -158,8 +213,8 @@ "bidx": [ 1 ], - "nodata": 0, - "colormap_name": "ylorrd", + "nodata": 255, + "colormap_name": "reds", "rescale": [ [ 0, @@ -174,14 +229,69 @@ "bidx": [ 1 ], - "nodata": 0, - "colormap_name": "ylorrd", + "nodata": 255, "rescale": [ [ 0, + 8 + ] + ], + "colormap": { + "0": [ + 18, + 18, + 18, + 255 + ], + "1": [ + 0, + 85, + 85, + 255 + ], + "2": [ + 137, + 127, + 78, + 255 + ], + "3": [ + 222, + 224, + 67, + 255 + ], + "4": [ + 0, + 136, + 136, + 255 + ], + "5": [ + 228, + 135, + 39, + 255 + ], + "6": [ + 224, + 27, + 7, + 255 + ], + "7": [ + 119, + 119, + 119, + 255 + ], + "8": [ + 221, + 221, + 221, 255 ] - ] + } } }, "providers": [ From 5125362eb92351d76d20c6f8df446a6f3cd20e1e Mon Sep 17 00:00:00 2001 From: "veda-ingest-ui[bot]" <248557473+veda-ingest-ui[bot]@users.noreply.github.com> Date: Mon, 11 May 2026 19:36:31 +0000 Subject: [PATCH 4/4] update via UI --- .../staging/dataset-config/opera-distalert-daily.json | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/ingestion-data/staging/dataset-config/opera-distalert-daily.json b/ingestion-data/staging/dataset-config/opera-distalert-daily.json index ac22313..71648e2 100644 --- a/ingestion-data/staging/dataset-config/opera-distalert-daily.json +++ b/ingestion-data/staging/dataset-config/opera-distalert-daily.json @@ -110,7 +110,7 @@ "bidx": [ 1 ], - "nodata": 255, + "nodata": 0, "colormap_name": "reds", "rescale": [ [ @@ -126,7 +126,7 @@ "bidx": [ 1 ], - "nodata": 255, + "nodata": 0, "colormap_name": "reds", "rescale": [ [ @@ -142,7 +142,7 @@ "bidx": [ 1 ], - "nodata": 255, + "nodata": 0, "rescale": [ [ 0, @@ -213,7 +213,7 @@ "bidx": [ 1 ], - "nodata": 255, + "nodata": 0, "colormap_name": "reds", "rescale": [ [ @@ -229,7 +229,7 @@ "bidx": [ 1 ], - "nodata": 255, + "nodata": 0, "rescale": [ [ 0,