- Dataset Availability
- 2023-04-04T04:37:01Z–2026-02-23T23:59:36Z
- Dataset Producer
- NASA JPL
- Tags
Description
This dataset contains Level-3 Dynamic OPERA surface water extent product version 1. The data are validated surface water extent observations beginning April 2023. Known issues and caveats on usage are described in the product documentation. The input dataset for generating each product is the Harmonized Landsat-8 and Sentinel-2A/B/C (HLS) product version 2.0. HLS products provide surface reflectance (SR) data from the Operational Land Imager (OLI) aboard the Landsat 8 satellite and the MultiSpectral Instrument (MSI) aboard the Sentinel-2A/B/C satellite.
Documentation:
Bands
Pixel Size
30 meters
Bands
| Name | Pixel Size | Description |
|---|---|---|
WTR_Water_classification |
meters | Water Classification - This represents pixel-wise classification into one of three water classes (not water, open water, and partial surface water), snow/ice, cloud/cloud shadow and adjacent to cloud/cloud shadow, ocean masked, or no data classes as a result of processing the diagnostic (DIAG) layer through all intermediate steps/layers |
BWTR_Binary_water |
meters | The binary water map is derived from the WTR layer as a union of water classes (open water and partial surface water) into a binary map indicating areas with and without water. This layer is meant to provide users with a quick view for water/no-water. Invalid data classes (snow/ice, cloud/cloud shadow along with adjacent to cloud/cloud shadow, ocean masked, and fill value) are also provided to indicate areas in which the binary classification does not provide water/no-water classification. |
CONF_Confidence |
meters | A representation of the confidence associated with the WTR classification that is based on a combination of DIAG results and quality assurance information provided with the input HLS data. For example, the Open water class of the WTR layer is split into two classes: High Confidence and Moderate Confidence while WTR Partial surface water class pixels of WTR are flagged as either partial surface water conservative or partial surface water aggressive, with the latter exhibiting less certainty. As in the WTR and BWTR layers, pixels for which water retrievals are difficult or impossible due to snow/ice, cloud/shadow, or fill values are also noted in the CONF layer. |
DIAG_diagnostic |
meters | A layer coded to indicate which of five initial DSWx-HLS tests were positive for water detection on a per-pixel basis. Values range from 0 (i.e, 00000), indicating that none of the five DSWx-HLS tests returned a positive result, to 11111, denoting that all tests resulted positive. The tests are described in DSWX-HLS ATBD and Jones, John W. 2019 are used to derive the confidence layer above. The combination of positive tests for a particular class determines its confidence value. The Fill value (no data) is represented by the number 65535. |
WTR1_Interpretation_of_diagnostic_layer_into_water_classes |
meters | Classification of the DIAG layer results in open water, partial surface water, and no-water. This layer is further refined through the application of masks resulting in Layers 6 (WTR-2) and 1 (WTR). |
WTR2_Refined_WTR1_given_HLS_FMASK |
meters | The WTR-2 layer is derived from the WTR-1 (Layer 5) outcome by applying additional tests based on land cover and terrain shadow information, and aerosol overcorrection mitigation, as described in DSWX-HLS ATBD and Jones, John W. 2019 to mask (eliminate) false-positive water detections. |
LAND_land_cover_classification |
meters | Land cover thematic layer used to determine where additional testing is performed to potentially mask WTR-1 layer water detections to produce the intermediate WTR-2 layer. |
SHAD_terrain_shadow |
meters | Mask used to eliminate likely locations of terrain-induced shadow based on a classification of shadow areas generated for the capture date/time of the input HLS image from Digital Elevation Model data. This is used in the creation of the intermediate layer WTR-2. |
HLS_CLOUD_SNOW_FMASK_classification |
meters | Cloud, cloud-shadow, and snow/ice classification layer from HLS input. |
WTR_Water_classification Class Table
| Value | Color | Description |
|---|---|---|
| 0 | #ffffff | Not water - An area with valid reflectance data that is not water, snow/ice, cloud/cloud shadow, or ocean mask, a landcover masked may be applied. |
| 1 | #0000ff | Open water - an area that is entirely water and unobstructed to the sensor, including obstructions by vegetation, terrain, and buildings. |
| 2 | #0088ff | Partial surface water - an inundated area that is at least 20% and less than 100% open water. This may be referred to as "subpixel inundation" when referring to a pixel’s area. Examples include wetlands, water bodies with emergent vegetation, and pixels bisected by coastlines. |
| 252 | #f2f2f2 | Snow/ice - an area identified as snow/ice according to input HLS Fmask quality assurance (QA) data. |
| 253 | #dfdfdf | Cloud/cloud shadow - an area identified as cloud, cloud shadow, or adjacent to those features according to input HLS Fmask quality assurance (QA) data. |
| 254 | #da00ff | Ocean masked - an area identified as ocean using a shoreline database with an added margin. |
BWTR_Binary_water Class Table
| Value | Color | Description |
|---|---|---|
| 0 | #ffffff | Not water - an area with valid reflectance data that is not water (class 1) and not snow/ice (class 252), cloud/cloud shadow (class 253), or ocean masked (class 254). |
| 1 | #0000ff | Water - an area classified as "open water" or "partial surface water" (see WTR layer). |
| 252 | #f2f2f2 | Snow/ice - an area identified as snow/ice according to input HLS Fmask quality assurance (QA) data. |
| 253 | #dfdfdf | Cloud/cloud shadow - an area identified as cloud or cloud shadow or adjacent to cloud/cloud shadow according to input HLS Fmask quality assurance (QA) data. |
| 254 | #da00ff | Ocean masked - an area identified as ocean using a shoreline database with an added margin |
CONF_Confidence Class Table
| Value | Color | Description |
|---|---|---|
| 0 | #ffffff | Not water - an area with valid reflectance data that is not water or ocean masked (class 254) and is not identified as snow/ice, cloud/cloud shadow, adjacent to cloud/cloud shadow, or snow/ice in the input HLS Fmask quality assurance (QA) data. "not water" (class 0) also exists where terrain shadow and/or land cover masking is applied. |
| 1 | #0000ff | Open water high-confidence - an area that is entirely water with high-confidence that has not also been ocean masked (class 254) and is not identified as snow/ice, cloud/cloud shadow, adjacent to cloud/cloud shadow, or snow/ice in the input HLS Fmask quality assurance (QA) data. |
| 2 | #0088ff | Open water moderate-confidence - an area that is entirely water with moderate-confidence that has not also been ocean masked (class 254) and is not identified as snow/ice, or cloud/cloud shadow, adjacent to cloud/cloud shadow, or snow/ice in the input HLS Fmask quality assurance (QA) data. |
| 3 | #66a3ff | Partial surface water conservative - an inundated area that is at least approximately 50% and less than 100% open water with a conservative classification that has not also been ocean masked (class 254) and is not identified as snow/ice, cloud/cloud shadow' |
| 4 | #b3d9ff | Partial surface water aggressive - an inundated area that is at least approximately 20% and less than 100% open water with an aggressive classification that has not also been ocean masked (class 254) and is not identified as snow/ice, cloud/cloud shadow |
| 10 | #cccccc | Not water - an area with valid reflectance data that is not water or ocean masked (class 254) but is potentially obstructed by cloud/cloud shadow according to the input HLS Fmask |
| 11 | #0000ff | Open water high-confidence - an area that is entirely water with high-confidence that has not also been ocean masked (class 254) but is potentially obstructed by cloud/cloud shadow according to the input HLS Fmask. |
| 12 | #00aaff | Open water moderate-confidence - an area that is entirely water with moderate-confidence that has not also been ocean masked (class 254) but is potentially obstructed by cloud/cloud shadow according to the input HLS Fmask. |
| 13 | #2244ff | Partial surface water conservative - an inundated area that is at least approximately 50% and less than 100% open water with a conservative classification that has not also been ocean masked (class 254) but is potentially obstructed by cloud/cloud shadow according to the input HLS Fmask. |
| 14 | #6644ff | Partial surface water aggressive - an inundated area that is at least 20% and less than approximately 50% open water and less than 100% open water with a less strict classification that has not also been ocean masked (class 254) but is potentially obstructed by cloud/cloud shadow according to the input HLS Fmask. |
| 20 | #ffffff | Not water - an area with valid reflectance data that is not water, that is marked as snow/ice according to the input HLS Fmask, but not obstructed by cloud/cloud shadow according to the input HLS Fmask and is not ocean masked (class 254). "not water" (class 0) also exists where terrain shadow and/or land cover masking is applied. |
| 21 | #0000ff | Open water high-confidence - an area that is entirely water with high-confidence and that is marked as snow/ice according to the input HLS Fmask, but not obstructed by cloud/cloud shadow according to the input HLS Fmask and is not ocean masked (class 254) |
| 22 | #5555ff | Open water moderate-confidence - an area that is entirely water with moderate-confidence and that is marked as snow/ice according to the input HLS Fmask, but not obstructed by cloud/cloud shadow according to the input HLS Fmask and is not ocean masked (class 254). |
| 23 | #7777ff | Partial surface water conservative - an inundated area that is at least 50% and less than 100% open water with a conservative classification and that is marked as snow/ice according to the input HLS Fmask, but not obstructed by cloud/cloud shadow according to the input HLS Fmask and is not ocean masked (class 254). |
| 24 | #2222cc | Partial surface water aggressive - an inundated area that is at least 20% and less than approximately 50% open water, that is a less strict classification and that is marked as snow/ice according to the input HLS Fmask, but not obstructed by cloud/cloud shadow according to the input HLS Fmask and is not ocean masked (class 254). |
| 254 | #da00ff | Ocean masked - an area identified as ocean using a shoreline database with an added margin. |
WTR1_Interpretation_of_diagnostic_layer_into_water_classes Class Table
| Value | Color | Description |
|---|---|---|
| 0 | #ffffff | Not water - an area with valid reflectance data that is not open water (class 1) or partial surface water (class 2). |
| 1 | #0000ff | Open water - an area that is entirely water and unobstructed to the sensor, including obstructions by vegetation, terrain, and buildings. |
| 2 | #0088ff | Partial surface water - an inundated area that is at least 20% and less than 100% open water. This may be referred to as "subpixel inundation" when referring to a pixel's area. Examples include wetlands, water bodies with emergent vegetation, and pixels bisected by coastlines. |
| 254 | #da00ff | Ocean masked - an area identified as ocean using a shoreline database with an added margin (not applicable for the standard DSWx-HLS product v1.0). |
WTR2_Refined_WTR1_given_HLS_FMASK Class Table
| Value | Color | Description |
|---|---|---|
| 0 | #ffffff | Not water - an area with valid reflectance data that is not open water (class 1) or partial surface water (class 2) |
| 1 | #0000ff | Open water - an area that is entirely water and unobstructed to the sensor, including obstructions by vegetation, terrain, and buildings. |
| 2 | #0088ff | Partial surface water - an inundated area that is at least 20% and less than 100% open water. This may be referred to as "subpixel inundation" when referring to a pixel's area. Examples include wetlands, water bodies with emergent vegetation, and pixels bisected by coastlines. |
| 254 | #da00ff | Ocean masked - an area identified as ocean using a shoreline database with an added margin. |
LAND_land_cover_classification Class Table
| Value | Color | Description |
|---|---|---|
| 0 | #e6e6e6 | Low intensity developed. Values range from 0 to 99 (number = last two digits of ESA WorldCover dataset year) |
| 100 | #cccccc | High intensity developed. Values range from 100 to 199. (number = 100 + last two digits of ESA WorldCover dataset year) |
| 200 | #0000ff | Water, wetland, mangrove forest |
| 201 | #00ff00 | A variety of forest classes |
SHAD_terrain_shadow Class Table
| Value | Color | Description |
|---|---|---|
| 0 | #808080 | Shadow |
| 1 | #ffffff | Not shadow |
HLS_CLOUD_SNOW_FMASK_classification Class Table
| Value | Color | Description |
|---|---|---|
| 0 | #ffffff | Not masked |
| 1 | #a9a9a9 | Cloud shadow, adjacent to cloud/cloud shadow, or both |
| 2 | #f2f2f2 | Snow/ice |
| 3 | #d3d3d3 | Snow/ice and class 1 (cloud shadow or adjacent to cloud/cloud shadow) |
| 4 | #dfdfdf | Cloud |
| 5 | #c0c0c0 | Cloud and class 1 (cloud shadow or adjacent to cloud/cloud shadow) |
| 6 | #b0b0b0 | Cloud and snow/ice |
| 7 | #a0a0a0 | Cloud, snow/ice, and class 1 (cloud shadow or adjacent to cloud/cloud shadow) |
| 8 | #0000ff | Fmask identified water |
| 9 | #87cefa | Fmask identified water, cloud shadow or adjacent to cloud/cloud shadow' |
| 10 | #add8e6 | Fmask identified water, snow/ice |
| 11 | #b0e0e6 | Fmask identified water, snow/ice and class 1 (cloud shadow or adjacent to cloud/cloud shadow) |
| 12 | #6495ed | Fmask identified water, cloud |
| 13 | #4682b4 | Fmask identified water, cloud and class 1 (cloud shadow or adjacent to cloud/cloud shadow) |
| 14 | #4169e1 | Fmask identified water, cloud and snow/ice |
| 15 | #1e90ff | Fmask identified water, cloud, snow/ice, and class 1 (cloud shadow or adjacent to cloud/cloud shadow) |
Image Properties
Image Properties
| Name | Type | Description |
|---|---|---|
| AEROSOL_CLASS_REMAPPING_ENABLED | STRING | Indicates if the aerosol class remapping is enabled (TRUE) or disabled (FALSE). |
| CLOUD_COVERAGE | DOUBLE | The percentage of pixels with observational data (as opposed to fill value and ocean masked) that HLS QA mask marks as cloud, cloud shadow, or adjacent-to-cloud. |
| INPUT_HLS_PRODUCT_CLOUD_COVERAGE | DOUBLE | The percentage of the tile area with observational data (as opposed to fill value) in the input HLS product. |
| NBAR_SOLAR_ZENITH | DOUBLE | The solar zenith angle used in Nadir Bidirectional Reflectance Distribution Function Adjusted Reflectance (NBAR) derivation. |
| PROCESSING_DATETIME | STRING | DSWx-HLS product processing date. Format: YYYY-MM-DDTHH:MM:SSZ. |
| PRODUCT_VERSION | STRING | The DSWx-HLS product version (same as in the product filename). It increments with changes to the structure and/or metadata contained within the product. |
| SENSOR | STRING | Name of the sensor instrument (e.g., "OLI" or "MSI") |
| SPACECRAFT_NAME | STRING | Name of the sensor platform (e.g., "Landsat-8", "Sentinel-2A", or "Sentinel-2B") |
| SPATIAL_COVERAGE_EXCLUDING_MASKED_OCEAN | DOUBLE | The percentage of the tile area with observational data (as opposed to fill value and ocean masked) excluding masked ocean. |
Terms of Use
Terms of Use
This dataset is openly shared, without restriction, in accordance with the EOSDIS Data Use and Citation Guidance
Citations
OPERA . 2023. OPERA Dynamic Surface Water Extent from Harmonized Landsat Sentinel-2 (Version 1). Ver. 1.0. PO.DAAC, CA, USA. Dataset accessed [YYYY-MM-DD] at https://doi.org/10.5067/OPDSW-PL3V1
DOIs
Explore with Earth Engine
Code Editor (JavaScript)
Map.setCenter(-93, 30, 12); var dswx_hls_collection = ee.ImageCollection('OPERA/DSWX/L3_V1/HLS') .filterDate('2025-07-01', '2025-10-01'); // Mask out values >= 252 before calculating the mode we don't // want to have clouds or snow/ice be included. var masked_collection = dswx_hls_collection.map(function(image) { var wtr = image.select('WTR_Water_classification'); return wtr.updateMask(wtr.lt(252)); }); var dswx_hls = masked_collection .reduce(ee.Reducer.mode()) .rename('WTR_Water_classification'); var wtr_class_values = [ 0, // Not water 1, // Open water 2, //Partial surface water 252, // Snow/ice 253, // Cloud/cloud shadow 254 // Ocean masked ]; var wtr_palette = [ 'ffffff', // Not water '0000ff', // Open water '0088ff', // Partial surface water 'f2f2f2', // Snow/ice 'dfdfdf', // Cloud/cloud shadow 'da00ff', // Ocean masked ]; // Select the water classification band and remap to make have palette vis. var wtr_band = dswx_hls.select('WTR_Water_classification'); var to = [0, 1, 2, 3, 4, 5]; var wtr_remapped = wtr_band.remap(wtr_class_values, to); Map.addLayer( wtr_remapped, {min: 0, max: 5, palette: wtr_palette}, 'Water Classification (Remapped)');