Spectral Harbor 1.3.4

Offline user help · QGIS 4 · Sentinel-2A and Landsat 8/9 surface reflectance

Download selected surface-reflectance bands

Sentinel-2A Level-2A (12 bands, no B10) and Landsat 8/9 Collection 2 Level-2 (7 SR bands), through Earth Search.

Run the tool

  1. Choose a satellite and a polygon ROI OR an extent. With a polygon layer, “Selected features only” uses only the highlighted polygons; otherwise all layer features are used.
  2. Set inclusive UTC dates, maximum scene-wide cloud % and minimum ROI footprint coverage %. These do not guarantee clear pixels in your ROI.
  3. Check the bands, choose single scene or temporal median, and choose an output directory.
  4. Run. Add reflectance to QGIS map after completion is on by default.

Pixel size and bands

Defaults: Sentinel-2A 10 m; Landsat 8/9 30 m. Zero means the satellite default. The dialog follows satellite changes until you enter a manual size. Saved/manual overrides are retained. A common 10 m output does not create new detail in native 20/60 m Sentinel bands.

The checklist changes to 12 or 7 bands. In Batch/Modeler, enter comma-separated codes such as B02,B03,B04,B08 or SR_B2,SR_B3,SR_B4,SR_B5; blank means all bands for that satellite.

Scene selection

Single scene: lowest scene-cloud candidate passing the filters. Temporal median: all passing candidates, unless exact scene IDs restrict them. The candidate cap is applied before ROI coverage filtering; this is not an exhaustive best-scene search. Use the Raster menu scene browser to preview and manually select results.

Outputs and quality

Outputs are saved with descriptive filenames (e.g. S2A_YYYYMMDD_<SceneID>_BOA_Float32.tif) with -9999 nodata. Native product names, metadata and masks are retained. Count/std/occurrence rasters are median outputs, not single-scene outputs. provenance.json marks completion.

Processing produces surface reflectance on the chosen output grid. Single-scene full-ROI output can retain cloudy pixels when water-only is off. Median uses the original QA rules. Water method/strictness/Otsu/manual-threshold controls apply to single scenes; median retains the upstream hybrid/consensus policy. A water-mask file can be saved without applying it to reflectance.

Only selected reflectance bands are read. Include green/NIR or green/SWIR1 when the chosen spectral water method needs them. Search and raster processing run in separate child processes; cancel stops the active worker. Partial run folders are incomplete.

Standalone: no other QGIS plugin or cloud account is required. Licensing and third-party notices are included in the distribution. Open the offline help for the full guide, limits, dependencies and citations.

Parameter reference

SATELLITESentinel-2A only (not 2B/2C), Landsat-8, Landsat-9, or the combined Landsat 8/9 collection. The band list and automatic pixel size follow the satellite.
ROIUse a polygon layer, or only its highlighted features when Selected features only is checked. Leave the extent empty. Without the checkbox, all polygon features are united as the ROI.
EXTENTAlternative to a polygon ROI. Use the extent selector for the canvas, a layer or a drawn rectangle. Supply only one ROI source.
STARTInclusive UTC start date in YYYY-MM-DD format.
ENDInclusive UTC end date in YYYY-MM-DD format; must not precede the start date.
CLOUDMaximum cloud percentage for the entire source scene, not a measured cloud percentage inside your ROI.
COVERAGEMinimum percentage of ROI covered by a scene footprint. Coverage does not mean valid, cloud-free or water pixels.
RESOLUTIONOutput pixel size in metres: zero = 10 m for Sentinel-2A or 30 m for Landsat. The dialog follows satellite defaults until a size is manually entered. Native 20/60 m Sentinel bands are resampled to this common grid.
MAX_SCENESMaximum candidates returned before ROI coverage filtering (1–200; default 30). Narrow the dates or increase this cap if scenes are missing.
BANDSExport only the checked reflectance bands. Batch/Modeler: comma-separated satellite-specific codes; blank = all. If using spectral water methods, include their required green/NIR or green/SWIR1 bands.
MODESingle scene chooses the lowest scene-cloud passing candidate. Median combines all passing candidates or the exact scene-ID subset, using the chunked temporal-composite processor.
SCENE_IDSOptional exact STAC item IDs, separated by commas. Every ID must occur in the filtered/capped search. Single mode accepts at most one ID.
WATER_ONLYApply the original water-only mask to reflectance. Off retains the original full-ROI processing behavior. A water-mask output may still be created without masking reflectance.
WATER_METHODSingle-scene method only: hybrid, classification (SCL for Sentinel / QA for Landsat), NDWI or MNDWI. Median uses the upstream hybrid/permissive calculation and consensus policy.
STRICTSingle-scene hybrid only: require both the classification water flag and the spectral water test. Off uses the upstream permissive rule.
OTSUSingle-scene spectral/hybrid water test only: estimate its threshold automatically with Otsu. Off uses the manual threshold.
THRESHOLDSingle-scene index threshold between -1 and 1, used only when automatic Otsu is off. It does not alter the upstream median water policy.
OUTPUTDestination directory, not a raster filename. A unique SpectralHarbor run subfolder keeps the native products, reflectance.tif alias and metadata.
LOAD_OUTPUTAdd reflectance.tif to the QGIS map and Layers panel after success (default on). No map loading occurs in a headless context without a project.

Outputs, scientific behavior and limits

The complete user guide documents the band table, normalization heuristics, single-scene/median quality differences and native output files. The median operates in 512-pixel chunks; full output arrays remain in memory. Use local valid polygon ROIs, at most 25 million output pixels, within the documented coverage limits. The adapter also limits estimated output memory to 1.5 GB.

Internet access is required. Landsat depends on the public Planetary Computer mirror/signing service. Duration varies with ROI, selected bands, network and provider availability. A finer grid does not improve the native sensor resolution.

Read the included full guide, architecture and dependencies, citations and data attribution, source licensing, changelog and validation report. These Markdown files are distributed alongside this page for offline reading.

About Spectral Harbor

Spectral Harbor is a standalone QGIS 4 plugin for downloading selected surface-reflectance bands from Sentinel-2A Level-2A and Landsat 8/9 Collection 2 Level-2 through Earth Search.

Choose the satellite, area, dates, scene-cloud limit and bands. Create a single-scene image or a temporal median. Output pixels default to 10 m for Sentinel-2A and 30 m for Landsat; Sentinel bands with native 20/60 m resolution are resampled to the chosen grid.

Spectral Harbor handles image reading, sensor-specific reflectance normalization, quality layers and temporal compositing in a separate processing task. It runs independently and does not require another QGIS plugin.

Results are Float32 GeoTIFFs with -9999 nodata, native processing metadata, and a reflectance.tif alias that can be added to the map automatically. Median runs also create the original count, standard-deviation and water-occurrence outputs. Existing water options follow the upstream single-scene/composite behavior.

Developed by Mohamed Aly Nasef. License: GPL-3.0-or-later, with third-party notices included in the distribution. Satellite data and access services retain their separate terms. Official stable release; see the bundled guide, references, notices and validation report.

Original source hashes: manifest. Adapted grid changes: patch. Author: Mohamed Aly Nasef.