All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to PEP 440 and uses Semantic Versioning.
- Added
mypy
type checker to thestatic-analysis
workflow.
- The
static-analysis
workflow now usesruff
rather thanflake8
.
- The ability for the
insar_tops_burst
workflow to support processing multiple bursts as one SLC.
- The interface for
insar_tops_burst
so that it takes--reference
and--secondary
granule lists. The positionalgranules
argument is now optional and deprecated. - Moved HyP3 product packaging functionality out of
insar_tops_burst.py
and to a newpackaging.py
so that bothinsar_tops
andinsar_tops_burst
can use it.
- Orbit files are now retrieved using the s1-orbits library.
- Removed support for the
--esa-username
and--esa-password
command-line options and theESA_USERNAME
andESA_PASSWORD
environment variables.
- Upgrade to
dem_stitcher>=2.5.8
to resolve geoid download errors. See dem-stitcher #96.
- Renamed
hyp3_isce2.logging
tohyp3_isce2.logger
to avoid shadowing built-in. - Source of product start times in
merge_tops_bursts
to use theasf_search
umm record.
- Upgraded to
dem_sticher>=2.5.6
to resolve geoid download errors. Fixes #215
- Support for Python 3.8 and 3.9 has been dropped, 3.10 is now the minimum version.
- Updated the water mask description in the product metadata templates
merge_tops_bursts.py
file and workflow for merge burst products created using insar_tops_bursts.merge_tops_bursts
entrypointmerge_tops_bursts
README template and creation functionality- several classes and functions to
burst.py
andutils.py
to supportmerge_tops_burst
. - tests for the added functionality.
tests/data/merge.zip
example data for testing merge workflow.tests/data/create_merge_test_data.py
for generating merge workflow test data.
insar_tops_burst.py
to add four radar coordinate datasets to burst InSAR products (wrapped phase, lat, lon, los).- README files generated in
insar_tops_burst.py
are now use blocks and extends theinsar_burst_base.md.txt.j2
jinja template.
- Support for a new water masking dataset based off of OpenStreetMap and ESA WorldCover data.
- Polygon processing functions:
split_geometry_on_antimeridian
andget_envelope_wgs84
fromwater_mask.py
.
- Upgraded to
hyp3lib=>3,<4
from>=2,<3
- @scottyhq fixed excessively verbose logging due to ISCE2 setting the root logger to
DEBUG
in #176
No annotation xml file
error ininsar_tops_burst
when processing HH pairs. Fixes #168.
- a warning that processing products over the Anti-Meridian is not currently supported.
- Water Masking now pulls the global shapefile and clips it, rather than pulling a partitioned parque, due to issues around the partition boundaries.
- Upgraded
hyp3lib
dependency to version2.x.x
. - As of HyP3-lib v2.0.0, the Copernicus Data Space Ecosystem (CDSE) will now be used for downloading Sentinel-1 orbit files from ESA.
- CDSE credentials must be provided via the
--esa-username
and--esa-password
command-line options, theESA_USERNAME
andESA_PASSWORD
environment variables, or a.netrc
file. - All the special ISCE2 environment variable, python path, and system path handling has been moved to
hyp3_isce2.__init__.py
to ensure it's always done before using any object in this package. - All subprocess calls use
subprocess.run
, as recommended.
- Fixed a typo in the call to
imageMath.py
. imageMath.py
is now called viasubprocess.run
rather thanos.system
.
- Functions for resampling geographic image to radar coordinates, copying ISCE2 images, and performing ISCE2 image math to utils.py.
create_water_mask
so that it pulls data from a partition parquet file (speeds up downloads), and added option to output water mask in any GDAL format.insar_tops_burst
so that water masking is done pre-unwrapping if masking is requested.
- Description of the range of the lv_phi in the readme.md.txt.j2.
- insar_tops_burst now validates burst pair granule names.
- InSAR stripmap workflow to support AVO's ALOS-1 processing efforts. This workflow is specific to AVO currently, and may not work for others.
- The naming convention for the burst products has been updated.
- The geocoding DEM is now resampled to ~20m in the case of 5x1 looks.
apply_water_mask
optional argument to apply water mask in the wrapped and unwrapped phase geotiff files
- updated product readme template to include references to the water masking layer and the option to apply it
- updated repo readme to include information on processing options
- Pixel sizes of output GeoTIFFs now better reflect their resolution: 80m for 20x4 looks, 40m for 10x2 looks, and 20m for 5x1 looks.
insar_tops_burst
workflow now supports burst products advertised in CMR production, rather than CMR UAT
- Generate a README file to be included with burst products that describes the processing workflow.
insar_tops_burst
workflow now takes the burst product names rather than the SLC product names.- Replace
--range-looks
and--azimuth-looks
options with a single--looks
option forinsar_tops
andinsar_tops_burst
workflows insar_tops_burst
workflow now always uses the oldest granule as the reference.
- Incomplete DEM generation issue by switching to using
merged/dem.crop
as the source
insar_tops
workflow for processing of full Sentinel-1 SLCs.- Ability to pass Earthdata username and password as environment variables to workflows. This allows the credentials to be passed to the Docker container via the
-e
option. - The
++omp-num-threads
parameter for control of the number of threads used when ISCE2 calls OpenMP functionality. - Added to the
insar_tops_burst
workflow:- Generation of output geotiff products with sensible names in subfolder that is also added as a zip archive.
- Generation of a product browse image based on the unwrapped phase geotiff.
- Generation of a parameter file for the burst products
- Generation of output satellite geometry products (azimuth angle and lookup angle) to enable further time series processing.
- The
get_isce2_burst_bbox
function to calculate burst bounding boxes using ISCE2 directly to fix inaccurate generation of burst bounding boxes.
- The
reformat_gcp
,create_gcp_df
, andcreate_geometry
methods from theBurstMetadata
class because they are superseded byget_isce2_burst_bbox
test_get_region_of_interest
so that it has an ascending and descending test case, not two descending. This required changing thereference_ascending.xml
andsecondary_ascending.xml
files intests/data
.- Fixed the path to the
entrypoint.sh
script in the Docker container image.
- It's now possible to register multiple HyP3 entry points (workflows) and run them through the main hyp3_isce2 entry point.
- A new entrypoint and skeleton process file for a stripmap process.
- Concurrent download functionality for burst extractor calls.
- Burst workflow renamed to
insar_tops_burst
fromtopsapp_burst
.
- A zero-index bug in
burst.py
that led to incorrect geolocation of products. - Typo in the
release-checklist-comment
workflow.
- Initial release of the HyP3 ISCE2 plugin.