CoolFace
Datasetpublic

Ysobel/MarineMISR

MarineMISR MarineMISR is a multi-image super-resolution (MISR) dataset pairing stacks of Landsat 8/9 scenes (low-resolution, 30 m) with a single co-located Sentinel-2 scene (high-resolution, 10 m) over coastal and marine habitats. Each sample is a 512x512 pixel patch (5.12 km x 5.12 km) sampled from one of three habitat types — coral reef, seagrass, and mangrove — so the dataset can be used to train and evaluate super-resolution models specifically over these ecologically… See the full description on the dataset page: https://huggingface.co/datasets/Ysobel/MarineMISR.

sourceHugging Facemitupdated 2mo agoView on Hugging Face
0likes23downloads
Dataset Card

MarineMISR

MarineMISR is a multi-image super-resolution (MISR) dataset pairing stacks of Landsat 8/9 scenes (low-resolution, 30 m) with a single co-located Sentinel-2 scene (high-resolution, 10 m) over coastal and marine habitats. Each sample is a 512x512 pixel patch (5.12 km x 5.12 km) sampled from one of three habitat types — coral reef, seagrass, and mangrove — so the dataset can be used to train and evaluate super-resolution models specifically over these ecologically important, and typically under-represented, marine environments.

The dataset was built with the MarineSpatialTooling repository's superres pipeline, which stratified sampling equally across the three habitat classes, queried Google Earth Engine for the imagery, and postprocessed the rasters into a pixel-aligned, reflectance-scaled stack.

Dataset Summary

  • —2,001 samples, split roughly evenly across three habitat classes:
HabitatSamples
Coral678
Mangrove672
Seagrass651
  • —Each sample contains 6-8 Landsat 8/9 low-resolution images (target 8; accepted down to 6 when insufficient cloud-free scenes were available in the sampling window) and 1 Sentinel-2 high-resolution image.
  • —Samples are drawn globally and span 4 seasons (Winter/Spring/Summer/Autumn, based on the Northern Hemisphere calendar) and multiple years, so revisit gaps and seasonal illumination/atmospheric conditions vary across samples.
  • —Coral and seagrass sites are additionally filtered by a Kd490 (bottom-visibility) threshold so that only optically shallow water — where the benthic habitat is actually visible from space — is included. Mangrove sites, being emergent, are not filtered this way.
  • —Maximum cloud cover per scene: 20%.

Dataset Structure

text
MarineMISR/
├── raw/                                # As-downloaded rasters (before reflectance scaling)
│   └── sample_000000/
│       ├── landsat/
│       │   ├── landsat_00_2019-03-16.tif   # One file per low-res image, named <index>_<date>
│       │   └── ...
│       ├── sentinel2/
│       │   ├── sentinel2_000000.tif        # High-res target, standardized to the 512x512 grid
│       │   └── raw/
│       │       └── sentinel2_raw_000000.tif  # Unclipped/unstandardized original download
│       └── sample_metadata.json
├── processed/                          # Analysis-ready rasters (recommended for training)
│   └── sample_000000/
│       ├── landsat/                    # Reprojected onto the high-res grid + rescaled to reflectance
│       ├── sentinel2/                  # Rescaled to reflectance (already on the target grid)
│       └── sample_metadata.json
└── metadata/
    ├── dataset_metadata.json           # Full metadata for every sample (JSON)
    ├── dataset_manifest.csv            # Flat manifest, one row per sample
    ├── creation.log                    # Log from the sampling/manifest-creation step
    ├── download.log                    # Log from the download/standardization step
    └── postprocess.log                 # Log from the reflectance-scaling/alignment step

raw/ holds the data as downloaded and grid-standardized: Landsat rasters are in their native projection/resolution and pixel digital numbers (DN); Sentinel-2 has both the raw download (sentinel2/raw/) and the version clipped and resampled onto the sample's fixed 512x512 grid.

processed/ is the analysis-ready version most users want: every low-res Landsat image has been reprojected onto the same grid as the high-res Sentinel-2 target (at Landsat's native 30 m resolution, so the two rasters are pixel-registered but not resampled to a common resolution), and all optical bands in both landsat/ and sentinel2/ have been rescaled from raw DN to physical surface reflectance. Classification/QA bands (QA_PIXEL, SCL) are left unscaled since they aren't reflectance values.

Data Fields

Each sample directory contains a sample_metadata.json with fields including:

FieldDescription
location_idInteger ID of the sample (matches the sample_NNNNNN directory name)
latitude, longitudeCenter coordinates of the sampled patch (WGS84)
season_id0=Winter, 1=Spring, 2=Summer, 3=Autumn
habitat_classcoral, seagrass, or mangrove
depth_mBathymetric depth at the site (from GEBCO), meters
date_rangeSearch window used to find cloud-free imagery for this sample
lowres_satellite / highres_satellitelandsat / sentinel2
lowres_imagesList of Landsat scenes used, each with GEE asset ID, acquisition date, and cloud cover
highres_imagesSame, for the Sentinel-2 scene
alignment_crsUTM CRS the sample was reprojected into
patch_size_pixels / patch_size_meters512 / 5120
target_origin_x / target_origin_yGrid origin in alignment_crs
highres_aoi_geojsonPolygon footprint of the sampled area
lowres_countNumber of low-res images actually included (6-8)

metadata/dataset_manifest.csv contains the same information flattened to one row per sample (used internally to drive/resume downloading).

Data Specifications

Sentinel-2 (high-res)Landsat 8/9 (low-res)
Resolution10 m30 m
Bands13: B1,B2,B3,B4,B5,B6,B7,B8,B8A,B11,B12,SCL,AOT8: SR_B1..SR_B7, QA_PIXEL (Collection 2, Level-2 surface reflectance)
CollectionCOPERNICUS/S2_SR_HARMONIZEDLANDSAT/LC08/C02/T1_L2 + LANDSAT/LC09/C02/T1_L2 (merged for faster revisit)
Images per sample16-8
Patch size512x512 px (5.12 km x 5.12 km)native resolution, reprojected to the same footprint

Reflectance scaling (processed/ only): reflectance = DN * scale + offset, using each satellite's documented Collection-2/L2A constants (Sentinel-2 optical bands and AOT: scale 0.0001/0.001, offset 0; Landsat SR bands: scale 0.0000275, offset -0.2). QA_PIXEL and SCL are unscaled masks.

Loading a Sample

python
import json
import rasterio

sample_dir = "processed/sample_000000"

with open(f"{sample_dir}/sample_metadata.json") as f:
    meta = json.load(f)

with rasterio.open(f"{sample_dir}/sentinel2/sentinel2_000000.tif") as ds:
    highres = ds.read()  # (13, 512, 512), surface reflectance

with rasterio.open(f"{sample_dir}/landsat/landsat_00_2019-03-16.tif") as ds:
    lowres = ds.read()  # (8, H, W), surface reflectance, same footprint as highres

Provenance

This dataset was generated end-to-end with the superres pipeline in the MarineSpatialTooling repository: samples were drawn evenly from global coral, seagrass, and mangrove habitat polygons (UNEP-WCMC / Global Mangrove Watch extents), imagery was queried from Google Earth Engine, downloaded and standardized to a fixed grid, then reprojected/rescaled in the postprocessing step described above. See that repository for the full sampling methodology, CLI tooling, and dataset-integrity/analysis scripts used to validate this release.

License

MIT. Note that the underlying Landsat and Sentinel-2 imagery is subject to the respective open-data terms of the USGS/NASA and Copernicus programmes.

Ysobel/MarineMISR · CoolFace