All notable changes to this project will be documented in this file. The format is based on Keep a Changelog.
0.23.0 - 2025-06-16
- Add spatial reference to
disp-s1-reformatby @scottstanie in opera-adt#147 - Add
NanPolicy,shardstodisp-s1-reformatoutput by @scottstanie in opera-adt#144 disp-s1-reformat: Add quality masking options by @scottstanie in opera-adt#145plot-disp-s1-intersecting-frames.py: Add--wktand--no-ascending/--no-descendingfilters by @scottstanie in opera-adt#146
0.22.1 - 2025-06-05
- Write out
short_wavelength_displacementunless dropped by @scottstanie in opera-adt#142
- Update disp download to allow
s3://urls by @scottstanie in opera-adt#141
0.22.0 - 2025-06-04
- Add alternative DISP stack reformatters by @scottstanie in opera-adt#140
- Add
disp-s1-downloadfor a subsetted download by @scottstanie in opera-adt#137 plot-disp-s1-frame.py: Add multiple frame option by @scottstanie in opera-adt#134download: addsearch-l2to CLI interface by @scottstanie in opera-adt#136disp-s1-download: Add/metadataand/identificationto outputs by @scottstanie in opera-adt#139
cslc: Add Compressed SLC file regex toparse_filenameby @scottstanie in opera-adt#135
0.21.0 - 2025-05-19
- Add optional
disp-s1-searchto cli by @scottstanie in opera-adt#130 - Add
reference_lonlatoption torebase_referenceby @scottstanie in opera-adt#131
0.20.0 - 2025-05-09
- Add DISP-S1 product handling by @scottstanie in opera-adt#106
- Add
plot-disp-s1-frame.pyandplot-intersecting-frames.pyscripts for visualization DISP-S1 Frames by @scottstanie in opera-adt#110 - Add
credentialsanddisp._remotemodule withopen_h5for https/s3 access by @scottstanie in opera-adt#108
- Make
disp-s1anddisp-nisarsub-commands, addintersectsby @scottstanie in opera-adt#104 - Use
tyrofor CLI instead ofclick - Make one single conda environment, let users
pipinstall for smaller dependency footprint
- Add missing tests for
burst_frame_dbandstitchingmodules by @scottstanie in opera-adt#105 - Restrict
strusage forASFCredentialEndpointsby @scottstanie in opera-adt#109 - Use
EnumforUrlTypeinstead ofLiteral["s3", "https"]by @scottstanie in opera-adt#111
0.19.0 - 2025-04-11
- Add DISP-S1 product handling: search with
opera_utils.disp.search, read and parse files withopera_utils.disp.DispProductandDispProductStack - Add
credentialsanddisp._remotemodule withopen_h5for https/s3 access - Add
plot-disp-s1-frame.pyandplot-intersecting-frames.pyscripts for visualization DISP-S1 Frames
- Make
disp-s1anddisp-nisarsub-commands, addintersects
- Add missing tests for
stitchingandburst_frame_dbmodules - Use
EnumforUrlTypeinstead ofLiteral["s3", "https"]by @scottstanie in opera-adt#111 - Restrict
strusage forASFCredentialEndpoints
0.18.1 - 2025-03-25
- Use
pyprojectsections instead of*/requirements.txtby @scottstanie (#102) - Check for project name instead of sensor by @mirzaees (#103)
0.18.0 - 2025-03-24
- Fix
stitchingfor strided outputs by @scottstanie (#98)
- Use only static layers to get
slant_rangeand allow manualincidence_anglesby @scottstanie (#99)
- Add ability to read NISAR subdatasets in
create_nodata_maskandget_zero_doppler_timeby @mirzaees (#100)
0.17.0 - 2025-03-18
- Update Burst DB data to v0.9.0 by @scottstanie (#91)
- Fix output types for
date | datetimeby @scottstanie (#93)
- In
download.py: Adddownload_rtcsanddownload_rtc_static_layersby @scottstanie (#95)
0.16.0 - 2025-02-12
- Add bounds options to
stitch_geometry_layersby @scottstanie (#88)
- Update Burst DB data to v0.8.0 by @scottstanie (#90)
0.15.0 - 2025-01-14
- Fix second datetime in CSLC name to be
generation_datetimeby @scottstanie (#82)
- Refactor filtering to work with/without geopandas by @scottstanie (#81)
- Bump
burst_dbversion to 0.7.0 by @scottstanie (#84)
0.14.0 - 2024-11-02
- Use
search_cslcsto also search for Static Layers by @scottstanie (#73) - Add geometry functions for incidence and approximate slant range by @scottstanie (#40)
- Normalize burst ID string before download by @scottstanie (#77)
0.13.0 - 2024-10-01
- Combine LOS east, north, up in one file in
geometryby @scottstanie (#68) - Add better named alias
create_nodata_maskby @scottstanie (#66)
- Implement
get_urls(type_="s3")to fetch CSLC S3 URLs fromasf_searchby @scottstanie (#71)
0.12.1 - 2024-08-29
- Fix grouping by
startTimeto not skip bursts by @scottstanie (#62) - Filter CSLCs by PGE version and processing date by @scottstanie (#64)
0.12.0 - 2024-08-12
- Add
.inputsto the missing data options to track selections by @scottstanie (#59)
0.11.0 - 2024-08-01
- Load/make thumbnail for any 2D image by @scottstanie (#56)
- Parse EPSG from
attrs["spatial_ref"]by @scottstanie (#57)
0.10.0 - 2024-07-29
- Add
normalize_burst_idby @scottstanie (#54)
- Fix parsing to allow COMPASS filenames by @scottstanie (#54)
0.9.0 - 2024-07-29
- Add
parse_filenameto avoid hardcodingVVand use PythonRasterizebindings by @scottstanie (#52)
0.8.0 - 2024-07-15
- Add a maximum number of options to
missing-data-optionsby @scottstanie (#43) - Add a
search_cslcscheck for results/missing data before download by @scottstanie (#48)
- Fix CSLC static layers filtering/stitching and burst-to-frame mapping by @scottstanie (#50)
- Use
NBITS=16when saving LOS files by @scottstanie (#51)
0.7.0 - 2024-07-08
- Update burst DB datasets to 0.5.0 by @scottstanie (#47)
0.6.0 - 2024-06-21
- Add
missing-dataCLI tool for subsetting acquisitions by @scottstanie (#42)
0.5.0 - 2024-06-18
- Remove duplicate CSLCs with different PGE versions by @scottstanie (#41)
0.4.1 - 2025-06-17
- Return degrees for
get_lonlat_grid(not radians) by @scottstanie (#38)
0.4.0 - 2025-06-07
- Add compressed GSLC and tests by @scottstanie (#35)
- Add coordinate grid and ISCE3 orbit helpers for CSLC product by @scottstanie (#36)
0.3.2 - 2025-05-29
- Add
get_orbit_arraysto parse orbit info from GSLC by @scottstanie (#34)
0.3.1 - 2025-05-29
- Add demo plots for the burst incidence matrix by @scottstanie (#26)
- Add check for duplicated burst_id/date pairs in
missing_databy @scottstanie (#25)
- In
geometry.py, split the download from local file stitching by @scottstanie (#32)
- Remove length check from
sort_files_by_dateby @scottstanie (#33)
0.3.0 - 2025-02-12
- Add tests for
sort_files_by_dateby @scottstanie (#27) - Add a
date_idxoption togroup_by_dateby @scottstanie (#29)
https://github.com/scottstanie/s1-reader/commit/d6d8a2f7920d7b54b85faf741a1e3fd366c6fd86
v0.2.1 - 2024-02-06
Fixed
- Export
sort_files_by_date - Stop considering missing data options after 10,000 in
get_missing_data_options
Requirements
- Remove scipy
v0.2.0 - 2024-01-16
Added
- functions for ionosphere correction, used in
dolphin - Convenience functions for downloading OPERA CSLCs from ASF
Fixed
- changed
reproject_boundsto userasterio's transform_boundsinstead of only warping 2 corners.
v0.1.5 - 2023-12-20
Added
- Creates first version of the
_gslc.pyfor functions working with geocoded SLCs.- Includes reading dataset and attributes, wavelength and zero doppler time.
- Adds methods to
_dates.pyfor reformatting, sorting and grouping based on date - Adds method to
_helpers.pyfor reprojecting coordinates - Adds methods to
_io.pyto read data with gdal and change datatype from gdal to numpy - Adds a method to
_utils.pyto reproject and reformat the bounds from WSEN to SNWE to be compatible with some softwares like RAiDER- A method to create an array of x and y coordinates based on shape, geotransform and pixel size
- A method to transform coordinates from any projection to lat/lon
- Adds test for reformatting bounds
Requirements
- scipy>=1.5
Added
- Based raster metadata convenience functions as
_io.get_raster_* - Ability to download CSLC static layers and stitch into line-of-sight rasters
Requirements Minimum python version is 3.9
- click>=7.0
- h5py>=1.10
- numpy>=1.20
- pooch>=1.7
- pyproj>=3.3
- shapely>=1.8
- typing_extensions>=4
For other interactions with geospatial rasters (i.e. reading metadata, creating geometries from Static Layers):
- asf_search>=6.7.2
- gdal>=3.5
- rasterio>=1.3