Sentinel-1 & Sentinel-2 (ESA Copernicus)¶
Provider
ESA (European Space Agency) / Copernicus Programme
Website
scihub.copernicus.eu | GEE
Access Level
🟡 Free Registration | 🔵 GEE for direct analysis
Formats Available
GeoTIFF (Level-1C, Level-2A), SAFE format
Resolution
S1: 10m SAR | S2: 10m optical
Revisit Time
S1: 12 days | S2: 5 days (with both satellites)
Sentinel-1 vs Sentinel-2¶
| Sentinel-1 | Sentinel-2 | |
|---|---|---|
| Type | SAR (Radar) | Optical (like a camera) |
| Works in clouds? | ✅ Yes | ❌ No |
| Works at night? | ✅ Yes | ❌ No |
| Resolution | 10m | 10m |
| Best for | Flood mapping, soil moisture, ship detection | Crop monitoring, LULC, vegetation |
| Bands | VV, VH polarisation | 13 spectral bands |
Sentinel-2 Bands (13 Bands)¶
| Band | Wavelength | Resolution | Use Case |
|---|---|---|---|
| B1 | 443nm (Coastal) | 60m | Aerosol |
| B2 | 490nm (Blue) | 10m | True colour |
| B3 | 560nm (Green) | 10m | True colour |
| B4 | 665nm (Red) | 10m | True colour, NDVI |
| B5 | 705nm (Red-edge) | 20m | Vegetation stress |
| B6 | 740nm (Red-edge) | 20m | |
| B7 | 783nm (Red-edge) | 20m | |
| B8 | 842nm (NIR) | 10m | NDVI, LAI |
| B8A | 865nm (NIR narrow) | 20m | |
| B9 | 945nm (Water vapour) | 60m | |
| B11 | 1610nm (SWIR) | 20m | Moisture, burn |
| B12 | 2190nm (SWIR) | 20m | Geology, burn |
Access Methods¶
Method 1: Copernicus Data Space (Free Registration) 🟡¶
- Register at dataspace.copernicus.eu (new Copernicus portal)
- Use the "Open Search" tool to find images by date and location
- Download SAFE format → Extract → Load in QGIS
Method 2: Google Earth Engine (Recommended) 🔵¶
GEE has the complete Sentinel archive — use it for large-area analysis without downloading:
// GEE: Sentinel-2 NDVI for Agricultural Area
var punjab = ee.Geometry.Rectangle([74, 29, 77, 32]); // Punjab wheat belt
// Load Sentinel-2 (rabi season, February)
var s2 = ee.ImageCollection("COPERNICUS/S2_SR_HARMONIZED")
.filterBounds(punjab)
.filterDate('2024-02-01', '2024-02-28')
.filter(ee.Filter.lt('CLOUDY_PIXEL_PERCENTAGE', 10))
.median();
// NDVI
var ndvi = s2.normalizedDifference(['B8', 'B4']).rename('NDVI');
// EVI (Enhanced Vegetation Index — better in dense vegetation)
var evi = s2.expression(
'2.5 * ((NIR - RED) / (NIR + 6 * RED - 7.5 * BLUE + 1))',
{'NIR': s2.select('B8'), 'RED': s2.select('B4'), 'BLUE': s2.select('B2')}
).rename('EVI');
Map.centerObject(punjab, 8);
Map.addLayer(ndvi, {min: 0, max: 0.8, palette: ['tan', 'yellow', 'green', 'darkgreen']},
'NDVI — Punjab Feb 2024 (Wheat)');
Map.addLayer(s2, {bands:['B4','B3','B2'], min: 0, max: 3000}, 'True Colour');
Sentinel-1: Flood Mapping¶
Sentinel-1's SAR can detect floods even through monsoon clouds — critical for disaster response:
// GEE: Flood Mapping using Sentinel-1
// Compare before-flood vs during-flood VV backscatter
var flood_area = ee.Geometry.Rectangle([80.5, 25.5, 82.5, 27.5]); // UP flood 2023
// Before flood
var before = ee.ImageCollection("COPERNICUS/S1_GRD")
.filterBounds(flood_area)
.filterDate('2023-06-01', '2023-06-30')
.filter(ee.Filter.eq('instrumentMode', 'IW'))
.select('VV').mean();
// During flood (monsoon)
var during = ee.ImageCollection("COPERNICUS/S1_GRD")
.filterBounds(flood_area)
.filterDate('2023-08-01', '2023-08-31')
.filter(ee.Filter.eq('instrumentMode', 'IW'))
.select('VV').mean();
// Flood = significant decrease in backscatter
var flood_mask = during.lt(before.subtract(3)); // 3dB drop = flooded
Map.centerObject(flood_area, 9);
Map.addLayer(flood_mask, {palette: ['white', 'blue']}, 'Potential Flood (Aug 2023)');
✏️ Practice Exercise¶
Exercise 5.3 — Map Crop Fields Using Sentinel-2
Goal: Identify wheat fields in your district using NIR-Red-Green False Colour Composite.
In GEE Code Editor:
var myDistrict = ee.Geometry.Point([75.7, 26.9]).buffer(30000); // Change to your district
var s2 = ee.ImageCollection("COPERNICUS/S2_SR_HARMONIZED")
.filterBounds(myDistrict)
.filterDate('2024-01-01', '2024-03-31') // Rabi season
.filter(ee.Filter.lt('CLOUDY_PIXEL_PERCENTAGE', 15))
.median();
// False colour: NIR=Red channel, Red=Green, Green=Blue
// Healthy vegetation appears bright RED in this composite
Map.addLayer(s2, {bands: ['B8', 'B4', 'B3'], min: 0, max: 4000},
'False Colour (NIR-R-G)');
Map.centerObject(myDistrict, 11);
- Areas appearing bright red-magenta = healthy crops/vegetation
- Light blue/grey = urban/bare soil
- Dark blue = water bodies
Can you identify individual agricultural fields? How large are they?
Next Dataset: Landsat 8/9 →