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 OPERA local incidence angle (LIA) files for Sentinel-1 satellite data. 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/yourusername/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
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
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file s1_lia-0.1.1.tar.gz.
File metadata
- Download URL: s1_lia-0.1.1.tar.gz
- Upload date:
- Size: 9.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c8e3f4ec506c4ee78f0e550a6cfe4dcd64c03dc8dd01680aae7f88e2dbf53d26
|
|
| MD5 |
acf8946b940369a5f9058781163050a7
|
|
| BLAKE2b-256 |
28fc93beedb323f7437c17ef6a1e4642b63fe52891cdcd4c89ed686872a70f41
|
File details
Details for the file s1_lia-0.1.1-py3-none-any.whl.
File metadata
- Download URL: s1_lia-0.1.1-py3-none-any.whl
- Upload date:
- Size: 8.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
150b290a8f5d76ded76d0b35972ea6f2fe755ac4bea9432a1597d07663a1b675
|
|
| MD5 |
74729ec07ffd6ac74a461aff36639ee6
|
|
| BLAKE2b-256 |
9234da77e38b62fe7d8691a7eb4e6db7151b0ba3edbf136989ec766b3a728d32
|