Skip to content

Sentinel-1 SAR Backscatter Analysis Ready Data Preparation in Google Earth Engine

Release Build status Commit activity License

This implementation enhances the Sentinel-1 SAR Backscatter ARD Preparation framework by making it a PyPI package.

Features

Parameter Type Description Default
geometry ee.Geometry Area of interest Required
start_date str Start date (YYYY-MM-DD) Required
stop_date str End date (YYYY-MM-DD) Required
polarization str Polarization (VV, VH, VVVH) VVVH
apply_border_noise_correction bool Apply border noise correction True
apply_terrain_flattening bool Apply terrain flattening True
apply_speckle_filtering bool Apply speckle filtering True
output_format str Output format (LINEAR, DB) DB

Installation

Make sure you have the earthengine-api installed:

pip install ee-s1-ard

Authenticate with Google Earth Engine:

earthengine authenticate

Usage

1. Import the library and create an instance:

import ee

# Initialize the GEE API
ee.Initialize()

from ee-s1-ard import S1ARDImageCollection

# Define input parameters
geometry = ee.Geometry.Polygon(
    [[[5.0, 50.0], [5.5, 50.0], [5.5, 50.5], [5.0, 50.5], [5.0, 50.0]]]
)
start_date = '2021-01-01'
stop_date = '2021-12-31'

processor = S1ARDImageCollection(
    geometry=geometry,
    start_date=start_date,
    stop_date=stop_date,
    polarization="VVVH",
    apply_border_noise_correction=True,
    apply_terrain_flattening=True,
    apply_speckle_filtering=True,
    output_format="DB"
)

2. Get the processed collection:

collection = processor.get_collection()

3. Example: Display the collection in GEE:

import geemap

Map = geemap.Map()
Map.centerObject(geometry, 10)
Map.addLayer(collection.mean(), {'min': -25, 'max': 0}, 'Sentinel-1')
Map

Notes

  • The processed collection is ready for analysis and visualization.
  • Speckle filtering and terrain flattening are optional but improve data quality.
  • Output in dB scale is suitable for most applications. ```

Why forking?

I DO NOT OWN THE SOLUTION MADE HERE. All credits go to the author and original paper, duly referenced here. My purpose was simply to make the code more pythonic, with checks (mypy), and create a package on Pypi, in order to be easily usable in several academic and production solutions.

Testing the solution in SITS (Satellite Image Time Series) for agriculture

sits

Testing the solution in a single agriculture image

Raw image (from GEE)

raw

GRD image (preprocessed in GEE)

grd

ARD image (this solution)

ard