Working with Sentinel-1 Radar Imagery

Learn how to access and analyze Sentinel-1 radar imagery that can see through clouds and capture data day and night.

Prerequisites: Before starting this tutorial, make sure you have:
  • An ObservEarth API key
  • Created at least one Area of Interest (AOI)
If you haven't done these steps yet, check out our Authentication and Areas of Interest tutorials first.

Introduction to Sentinel-1

Sentinel-1 is a radar satellite mission that provides continuous all-weather, day-and-night imagery for land and ocean monitoring. Unlike optical satellites like Sentinel-2, Sentinel-1 uses Synthetic Aperture Radar (SAR) technology.

Key Features:
  • All-weather imaging: Can see through clouds, rain, and smoke
  • Day and night operation: Doesn't require sunlight
  • Index: VV, VH, HH, HV modes available
  • Resolution: 5 x 20 meters (IW mode)
  • Revisit time: 6-12 days
Common Applications:
  • Flood monitoring
  • Oil spill detection
  • Sea ice mapping
  • Ground deformation monitoring
  • Crop monitoring
  • Forest monitoring

Understanding Radar Imagery

Radar imagery works differently from optical imagery. Instead of capturing reflected sunlight, radar satellites emit microwave signals and measure how they bounce back from Earth's surface.

Key Concepts:
  • Backscatter: The amount of radar signal that returns to the satellite after hitting objects on Earth
  • Polarization: The orientation of radar waves (VV, VH, HH, HV)
  • Orbit direction: Ascending (south to north) or descending (north to south) passes
undefined

Searching for Sentinel-1 Imagery

Search for Available Imagery

To find Sentinel-1 imagery for your area of interest, use the search endpoint:

API Type
POST
Endpoint
https://observearth.com/api/s1/search/
Request Parameters
Parameter Type Required Description
geometry_id UUID Yes UUID of your Area of Interest
start_date string Yes Start date in YYYY-MM-DD format
end_date string Yes End date in YYYY-MM-DD format
undefined
Code Example
import requests
import json

api_key = "your_api_key_here"
url = "https://observearth.com/api/s1/search/"

payload = {
    "geometry_id": "123e4567-e89b-12d3-a456-426614174000",
    "start_date": "2023-01-01",
    "end_date": "2023-01-31"
}

headers = {
    "Content-Type": "application/json",
    "X-API-Key": api_key
}

response = requests.post(url, json=payload, headers=headers)
data = response.json()

# Print the results
print(f"Found {len(data['results'])} images")
for image in data['results']:
    print(f"ID: {image['id']}, Date: {image['date']}, Platform: {image['platform']}")ers = {
    "X-API-Key": api_key,
    "Content-Type": "application/json"
}

response = requests.post(url, headers=headers, data=json.dumps(payload))
data = response.json()

for image in data['results']:
    print(f"ID: {image['id']}, Date: {image['date']}")

Getting Statistics for Sentinel-1 Imagery

Calculate Statistics for Imagery

Once you've found available images, you can calculate statistics for radar indices over your area of interest.

API Type
POST
Endpoint
https://observearth.com/api/s1/stats/
Request Parameters
Parameter Type Required Description
geometry_id UUID Yes UUID of your Area of Interest
start_date string Yes Start date in YYYY-MM-DD format
end_date string Yes End date in YYYY-MM-DD format
index string Yes Radar index to analyze (e.g., "rvi")
Code Example
import requests
import json

api_key = "your_api_key_here"
url = "https://observearth.com/api/s1/stats/"

payload = {
    "geometry_id": "123e4567-e89b-12d3-a456-426614174000",
    "start_date": "2023-01-01",
    "end_date": "2023-01-31",
    "index": "rvi"
}

headers = {
    "X-API-Key": api_key,
    "Content-Type": "application/json"
}

response = requests.post(url, headers=headers, data=json.dumps(payload))
data = response.json()

for result in data:
    print(f"Date: {result['date']}, Mean RVI: {result['mean']:.2f}")

Retrieving Sentinel-1 Imagery

Get Radar Imagery

Once you've identified the images you want, you can retrieve them for visualization or analysis.

API Type
GET
Endpoint
https://observearth.com/api/s1/image/{geometry_id}/
Path Parameters
Parameter Type Description
geometry_id UUID UUID of your Area of Interest
Query Parameters
Parameter Type Required Description
item_id string Yes ID of the Sentinel-1 image
image_type string Yes Image format (png, jpeg, or tif)
index string Yes Radar index to visualize (e.g., "rvi")
Code Example
import requests

api_key = "your_api_key_here"
geometry_id = "123e4567-e89b-12d3-a456-426614174000"
item_id = "S1A_IW_GRDH_1SDV_20230115T123456_20230115T123521_046880_059F1A_5D8B"
url = f"https://observearth.com/api/s1/image/{geometry_id}/"

params = {
    "item_id": item_id,
    "image_type": "png",
    "index": "rvi"
}

headers = {
    "X-API-Key": api_key
}

response = requests.get(url, params=params, headers=headers)

# Save the image
if response.status_code == 200:
    with open("sentinel1_rvi.png", "wb") as f:
        f.write(response.content)
    print("Image saved successfully")
else:
    print(f"Error: {response.status_code}, {response.text}")
Interpreting Radar Imagery

In radar imagery, brightness corresponds to the strength of the radar signal that returns to the satellite:

  • Bright areas: Strong radar returns from rough surfaces, buildings, or structures aligned with the radar beam
  • Dark areas: Weak radar returns from smooth surfaces like calm water or roads

Common Applications

Flood Monitoring

Sentinel-1 is excellent for flood monitoring because water appears very dark in radar imagery, creating a clear contrast with land.

Agricultural Monitoring

Radar can detect crop structure, growth stages, and soil moisture, providing valuable information even during cloudy growing seasons.

Next Steps

Now that you understand how to work with Sentinel-1 radar imagery, you can: