Skip to main content

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

Simple aoi designation, data search and download (packaged into get_opera_lia), and plotting to check results.

See documentation of get_opera_lia for all optional arguments including to select only a certain relative orbit and setting file names.

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"

# 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)

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.

Metadata

Release files for s1-lia 0.3.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for s1-lia 0.3.1
File Size Uploaded
s1_lia-0.3.1.tar.gz 10.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for s1-lia 0.3.1
File Interpreter ABI Platform
s1_lia-0.3.1-py3-none-any.whl Python 3 none any Details

Total release size: 19.9 kB

Release files / s1_lia-0.3.1.tar.gz

Download URL s1_lia-0.3.1.tar.gz
Size 10.5 kB
Tags Source
SHA-256 checksum
How to use checksums
398872ceacde7c31d212f0151394a2b3c8fe25e9dda0e03f30c2bae8bc49bff8
BLAKE2b-256 checksum
How to use checksums
f14ccb99179a5fd6e4276d6f09c2ada2e34899e6d9beb3191b405263019af1e8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.12.9

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 21, 2025.

Transparency log

Release files / s1_lia-0.3.1-py3-none-any.whl

Download URL s1_lia-0.3.1-py3-none-any.whl
Size 9.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
58173d5baa26b38e086bbd6e08f0a825bd1340d84fdf4f124d8871855dd027fe
BLAKE2b-256 checksum
How to use checksums
61aa3c25e0b004b61b40c85615767601769305c49d32e0318fd2f41df2cf6860
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.12.9

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 21, 2025.

Transparency log

Release history Release notifications | RSS feed

This release

0.3.1 This release

2 release files

0.3.0

2 release files

0.1.8

2 release files

0.1.6

2 release files

0.1.3

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page