Offline user help · QGIS 4 · Sentinel-2A and Landsat 8/9 surface reflectance
Sentinel-2A Level-2A (12 bands, no B10) and Landsat 8/9 Collection 2 Level-2 (7 SR bands), through Earth Search.
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.
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 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.
| SATELLITE | Sentinel-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. |
|---|---|
| ROI | Use 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. |
| EXTENT | Alternative to a polygon ROI. Use the extent selector for the canvas, a layer or a drawn rectangle. Supply only one ROI source. |
| START | Inclusive UTC start date in YYYY-MM-DD format. |
| END | Inclusive UTC end date in YYYY-MM-DD format; must not precede the start date. |
| CLOUD | Maximum cloud percentage for the entire source scene, not a measured cloud percentage inside your ROI. |
| COVERAGE | Minimum percentage of ROI covered by a scene footprint. Coverage does not mean valid, cloud-free or water pixels. |
| RESOLUTION | Output 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_SCENES | Maximum candidates returned before ROI coverage filtering (1–200; default 30). Narrow the dates or increase this cap if scenes are missing. |
| BANDS | Export 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. |
| MODE | Single 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_IDS | Optional exact STAC item IDs, separated by commas. Every ID must occur in the filtered/capped search. Single mode accepts at most one ID. |
| WATER_ONLY | Apply 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_METHOD | Single-scene method only: hybrid, classification (SCL for Sentinel / QA for Landsat), NDWI or MNDWI. Median uses the upstream hybrid/permissive calculation and consensus policy. |
| STRICT | Single-scene hybrid only: require both the classification water flag and the spectral water test. Off uses the upstream permissive rule. |
| OTSU | Single-scene spectral/hybrid water test only: estimate its threshold automatically with Otsu. Off uses the manual threshold. |
| THRESHOLD | Single-scene index threshold between -1 and 1, used only when automatic Otsu is off. It does not alter the upstream median water policy. |
| OUTPUT | Destination directory, not a raster filename. A unique SpectralHarbor run subfolder keeps the native products, reflectance.tif alias and metadata. |
| LOAD_OUTPUT | Add reflectance.tif to the QGIS map and Layers panel after success (default on). No map loading occurs in a headless context without a project. |
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.
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.