Skip to main content

Search and download OPERA local incidence angle files for Sentinel-1.

Project description

s1_lia

s1_lia is a Python package for searching, downloading, and merging Sentinel-1 local incidence angle (LIA) files. It simplifies access to static OPERA RTC products by handling AOI validation, ASF search, reliable downloading, and data merging by relative orbit.


Features

  • Validate and normalize Areas of Interest (AOI) from WKT, GeoJSON, Shapely, or GeoPandas objects.
  • Search ASF for static OPERA Sentinel-1 RTC products overlapping the AOI.
  • Download local incidence angle GeoTIFF files robustly with retry support.
  • Merge downloaded files by relative orbit into combined GeoTIFFs.
  • Generates human-readable file name stems based on AOI centroid and optional reverse geocoding.

Installation

Install via pip:

pip install s1_lia

Usage

For ipynb notebooks or python scipts:

import s1_lia

# Define AOI as WKT polygon string
aoi_wkt = 'POLYGON((-107.5 37.6,-107.5 38.0,-108.0 38.0,-108.0 37.6,-107.5 37.6))'

# Define directory to store downloaded and merged files
data_dir = "./data"

# Optionally if you know what orbit you are interested in:
orbit = 129

# Run full workflow: search, download, merge
merged_files = s1_lia.get_opera_lia(aoi_wkt, data_dir)

print("Merged incidence angle files:")
for f in merged_files:
    print(f)

import xarray as xr
import shapely
import matplotlib.pyplot as plt
xr.open_dataarray(merged_files[0]).rio.reproject('EPSG:4326').plot()
x, y = shapely.from_wkt(aoi_wkt).exterior.xy
plt.gca().plot(x,y, color = 'k', linewidth = 4)

Or from the command line:

s1-lia "<AOI WKT>" /path/to/data_dir

Functions

find_static_opera_files(aoi, relative_orbit=None, ...): Search ASF for matching OPERA products.

download_results(results, data_directory, ...): Download local incidence angle files.

merge_lia_by_relative_orbit(downloaded_files, output_directory, name_stem): Merge downloaded files by relative orbit.

generate_name_stem(aoi, use_place_name=True): Generate descriptive filename stem based on AOI centroid.

get_opera_lia(...): Runs full workflow combining above steps.

Development

To install in development mode:

git clone https://github.com/zachhoppinen/s1_lia.git
cd s1_lia
pip install -e .

Run tests

pytest tests/

License

This project is licensed under the MIT License. See the LICENSE file for details.

Acknowledgments

Built on top of the ASF Search Python API.

Uses Shapely, GeoPandas, xarray, and rioxarray.

Data from: https://www.earthdata.nasa.gov/data/catalog/asf-opera-l2-cslc-s1-v1-1 https://d2pn8kiwq2w21t.cloudfront.net/documents/ProductSpec_RTC-S1.pdf

Please use citation:

NASA/JPL/OPERA. (2023). OPERA Co-registered Single Look Complex from Sentinel-1 validated product (Version 1) [Data set]. NASA Alaska Satellite Facility Distributed Active Archive Center. https://doi.org/10.5067/SNWG/OPERA_L2_CSLC-S1_V1 Date Accessed: 2025-08-08

Inspiration from: https://github.com/egagli/generate_sentinel1_local_incidence_angle_maps

Contact

For questions or feedback, open an issue or contact Zach Hoppinen @ zmhoppinen@alaska.edu

To bump version and trigger pypi upload

bump2version patch # or minor major
git push origin vx.x.x # TODO this should not be needed.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

s1_lia-0.3.0.tar.gz (10.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

s1_lia-0.3.0-py3-none-any.whl (9.4 kB view details)

Uploaded Python 3

File details

Details for the file s1_lia-0.3.0.tar.gz.

File metadata

  • Download URL: s1_lia-0.3.0.tar.gz
  • Upload date:
  • Size: 10.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for s1_lia-0.3.0.tar.gz
Algorithm Hash digest
SHA256 c02b2bbd1fe67ae11bfa10e930fdd4929c826c65d3dc3764c8723fea141529f0
MD5 5a47bcea2685036cb6e70f864c552ee9
BLAKE2b-256 e9bf82c34211a1fcfe6397fbe665c0e40f064fc00a024316f6d9d937b987dec8

See more details on using hashes here.

Provenance

The following attestation bundles were made for s1_lia-0.3.0.tar.gz:

Publisher: ci-cd.yml on ZachHoppinen/s1_lia

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file s1_lia-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: s1_lia-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 9.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for s1_lia-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 6c89fd8d702c78dcadf0f3a06829fe26c17784b3aba4a219bfb512c4f65d7d06
MD5 faf862da1367554f0fa507d889bdb006
BLAKE2b-256 5261f7ebe893ee81bf64da704765046f88bc018745a3beb56be25cc3c081601a

See more details on using hashes here.

Provenance

The following attestation bundles were made for s1_lia-0.3.0-py3-none-any.whl:

Publisher: ci-cd.yml on ZachHoppinen/s1_lia

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page