Guide
QGIS Plugin for Sentinel-2
Download Sentinel-2 imagery and calculate vegetation indices directly in QGIS with the Fabric plugin.
Overview
The Fabric QGIS Plugin brings satellite data processing directly into your GIS workflow. Search for locations, download Sentinel-2 imagery, and calculate forest indices—all without leaving QGIS.
What you can do:
- Download Sentinel-2 bands for any location and date range
- Calculate NDVI, NDMI, NBR, and EVI indices
- Auto-load styled results into your QGIS project
- Organize analyses in reproducible workspaces
Prerequisites
Before installing the plugin:
- QGIS 3.0+ (3.28 or later recommended)
- Docker Desktop installed and running
- 8GB RAM minimum (16GB recommended)
- 2GB disk space for Docker images
Install Docker
If you don't have Docker:
- Download from docker.com
- Install and launch Docker Desktop
- Verify it's running:
docker info
Installation
Step 1: Locate Your Plugins Folder
Find your QGIS plugins directory:
| Platform | Path |
|---|---|
| macOS | ~/Library/Application Support/QGIS/QGIS3/profiles/default/python/plugins/ |
| Windows | C:\Users\{username}\AppData\Roaming\QGIS\QGIS3\profiles\default\python\plugins\ |
| Linux | ~/.local/share/QGIS/QGIS3/profiles/default/python/plugins/ |
Step 2: Copy the Plugin
Copy the fabric-qgis-plugin folder to your plugins directory.
Step 3: Enable in QGIS
- Restart QGIS
- Go to Plugins → Manage and Install Plugins
- Search for "Fabric"
- Check the box to enable Fabric Sentinel-2
A Fabric icon appears in your toolbar.
First Run Setup
On first use, the plugin automatically:
- Checks Docker — Prompts you to start Docker Desktop if needed
- Pulls the Fabric image (~2GB download, one-time)
- Builds the forest-indices image locally
First run takes 2-5 minutes. Subsequent runs start in seconds.
Using the Plugin
1. Open the Plugin
Click the Fabric icon in the toolbar, or go to Raster → Fabric Sentinel-2.
2. Set Your Location
Three ways to define your area of interest:
Search by name:
Yosemite National Park
The plugin geocodes place names automatically.
Enter coordinates:
| Field | Value |
|---|---|
| South | 37.7 |
| North | 37.9 |
| West | -119.8 |
| East | -119.5 |
Use current map extent: Click "Get from Current Map Extent" to use your current view.
3. Set Date Range
Select start and end dates for imagery search. The plugin finds cloud-free scenes within this window.
Tip: Wider date ranges find more imagery but may span different conditions.
4. Configure Cloud Cover
Set maximum cloud cover percentage (default: 50%).
| Setting | Use Case |
|---|---|
| 10-30% | High-quality analysis, fewer available scenes |
| 40-60% | Balanced quality and availability |
| 70-100% | Maximum coverage, lower quality |
5. Select Bands
Choose which Sentinel-2 bands to download:
| Band | Name | Resolution | Purpose |
|---|---|---|---|
| B02 | Blue | 10m | EVI calculation |
| B03 | Green | 10m | True color |
| B04 | Red | 10m | NDVI, EVI |
| B08 | NIR | 10m | All vegetation indices |
| B11 | SWIR1 | 20m | NDMI (moisture) |
| B12 | SWIR2 | 20m | NBR (burn ratio) |
Default selection (B04, B08, B11, B12) covers all common indices.
6. Select Indices
Enable "Calculate indices after download" and choose:
| Index | Required Bands | Use Case |
|---|---|---|
| NDVI | B04, B08 | Vegetation health and density |
| NDMI | B08, B11 | Water content, drought stress |
| NBR | B08, B12 | Burn severity, fire damage |
| EVI | B02, B04, B08 | Dense vegetation, atmospheric correction |
The plugin validates that required bands are selected.
7. Run
Click Run Fabric. Progress updates show each phase:
Downloading Sentinel-2 imagery...
Processing bands: B04, B08, B11, B12
Calculating indices: NDVI, NDMI
Loading results into QGIS...
Complete! Total time: 2m 34s
Results load automatically with a red-yellow-green color ramp.
Understanding Results
Index Interpretation
All indices range from -1 to 1:
| Value Range | NDVI Meaning | NDMI Meaning | NBR Meaning |
|---|---|---|---|
| -1 to 0 | Water, clouds | Very dry | Severe burn |
| 0 to 0.2 | Bare soil | Water stress | Moderate burn |
| 0.2 to 0.4 | Sparse vegetation | Moderate moisture | Low burn / unburned |
| 0.4 to 0.6 | Moderate vegetation | Healthy moisture | Healthy vegetation |
| 0.6 to 1.0 | Dense, healthy vegetation | High water content | Very healthy |
Color Ramp
The default RdYlGn (Red-Yellow-Green) styling:
- Red: Low values (stress, damage, bare ground)
- Yellow: Moderate values
- Green: High values (healthy vegetation)
To customize: Right-click layer → Properties → Symbology.
Workspace Management
Each analysis creates a workspace folder:
~/fabric-workspaces/
└── 37p8_-119p6_20260601_20260630/
├── params.json # Your settings (reproducible)
├── sentinel2/ # Downloaded bands
│ ├── merged_B04.tif
│ ├── merged_B08.tif
│ └── report.json
└── indices/ # Calculated results
├── ndvi.tif
├── ndmi.tif
└── nbr.tif
Workspace naming: Auto-generated from coordinates and dates, or specify a custom name.
Reproducibility: The params.json file records exactly what you ran, enabling exact re-runs later.
Example Workflows
Forest Health Monitoring
Monitor vegetation stress in a forest area:
- Location: Search "Black Forest, Germany"
- Date range: June 1-30 (peak growing season)
- Bands: B04, B08, B11
- Indices: NDVI, NDMI
- Analysis: Compare NDVI (greenness) with NDMI (moisture)—high NDVI but low NDMI indicates drought stress
Wildfire Damage Assessment
Assess burn severity after a fire:
- Location: Enter coordinates of fire area
- Date range: 1-2 weeks post-fire
- Bands: B08, B12
- Indices: NBR
- Analysis: Low NBR values indicate severe burn; compare with pre-fire imagery for dNBR
Agricultural Monitoring
Track crop health through the season:
- Location: Farm boundary coordinates
- Date range: Single month windows through growing season
- Bands: B04, B08
- Indices: NDVI
- Analysis: Create time series of NDVI to track crop development
Troubleshooting
Docker Issues
| Problem | Solution |
|---|---|
| "Docker is not running" | Start Docker Desktop and wait for it to fully load |
| "Failed to pull image" | Check internet connection; retry after a few minutes |
| First run very slow | Normal—2GB image download; subsequent runs are fast |
No Imagery Found
| Problem | Solution |
|---|---|
| "No scenes found" | Expand date range or increase cloud cover tolerance |
| Wrong location | Verify coordinates are in decimal degrees (not DMS) |
| Area too large | Keep area under ~200km × 200km |
Index Calculation Failed
| Problem | Solution |
|---|---|
| "Missing required band" | Check that all required bands are selected for your indices |
| NDMI needs B11 | Enable B11 (SWIR1) in band selection |
| EVI needs B02 | Enable B02 (Blue) in band selection |
Performance
Typical processing times:
| Phase | Duration |
|---|---|
| First run (image download) | 2-5 minutes |
| Sentinel-2 download | 1-3 minutes |
| Index calculation | 30-60 seconds |
| Total (after first run) | 2-4 minutes |
Disk space per workspace: 100-500MB depending on area size.
Next Steps
- Understanding Vegetation Indices — Learn the science behind NDVI, NDMI, NBR, EVI
- Forest Health Indices Pattern — Use indices in Fabric pipelines
- Writing Pipelines — Automate multi-step workflows