Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ and uses [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

### Fixed
* `isce2_topsapp` CLI dispatch raised `KeyError: 'console_scripts'` on Python 3.12. Now uses the `entry_points(group=..., name=...)` API, resolving the long-standing `FIXME`.
* Updated dem to match NISAR-DEM within 1 cm.
* The DEM is stitched as it was before `dem-stitcher` 3.0.0, so heights stay consistent with the existing ARIA GUNW archive. 3.0.0 moved geoid removal onto the native DEM grid and changed the default registration, which shifted ellipsoidal heights by up to ~3 cm relative to every previously delivered product (it is the more accurate DEM - it agrees with the NISAR DEM to ~1 mm - but time-series consistency wins here). `download_dem_for_isce2` now passes `dst_area_or_point='Point'` and `geoid_correction_mode='aria-legacy'` to `stitch_dem`, which reproduces the 2.5.x correction bit-for-bit (see [dem-stitcher#171](https://github.com/ACCESS-Cloud-Based-InSAR/dem-stitcher/pull/171)); a `UserWarning` is emitted on every call by design.
* The JRC/Pekel water mask no longer punches holes in the open ocean. The `255` no-data code is now honored (previously it was reprojected with bilinear resampling, which averaged `255` into neighboring occurrence values and painted a spurious water halo along every no-data edge) and the occurrence threshold dropped from `95` to `90` percent, since open ocean dithers between ~90 and 100 along Landsat WRS-2 scene edges. No-data blocks are dilated by 3 pixels to swallow the thin rim of `0`-occurrence pixels that reads as land and draws hairline seams through the sea. The thresholding logic lives in `water_mask.water_mask_from_occurrence` and is shared by the browse-image mask (`water_mask.py`) and the ISCE2 processing mask (`localize_mask.py`), so the two can no longer drift apart. The processing mask filename now tracks the threshold constant.

### Changed
Expand All @@ -24,6 +24,7 @@ and uses [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
* Solid earth tide test data is computed once per session via the `gunw_paths_with_set` fixture rather than recomputed by each test, and the notebook-derived tests read local test data instead of downloading a GUNW from ASF.
* Tests that write to the working directory now run under `tmp_path`, so DEMs, orbits and AUX_CAL files no longer accumulate in the repository root.
* Moved the sample delivered GUNW metadata from the repository root into `tests/test_data/`.
* `dem_stitcher` is now pinned to `>=3.1.1`, the first release with `geoid_correction_mode`. The locked environment resolves to 3.2.0, which also declares the source nodata when reprojecting - gdal >= 3.11 was otherwise remapping the JRC/Pekel `255` no-data code to `254` in the water mask reprojection.
* Loosened the stale `scipy<1.10` and `jsonschema==3.2.0` pins (neither is required by the code) and pinned remaining dependencies with semver bounds.
* `isce2` has been updated v2.6.5 to enable full S1C and S1D support. `isce2` is still strictly pinned to `==2.6.5`.

Expand Down
2 changes: 1 addition & 1 deletion environment.yml
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ dependencies:
- setuptools_scm
- shapely
- tqdm
- dem_stitcher>=2.5.8
- dem_stitcher>=3.1.1
- aiohttp # only needed for manifest and swath download
- tile_mate>=0.0.8
- s1_orbits
5 changes: 4 additions & 1 deletion isce2_topsapp/localize_dem.py
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,10 @@ def download_dem_for_isce2(
extent_buffered,
dem_name,
dst_ellipsoidal_height=True,
dst_area_or_point=None,
# 'Point' + 'aria-legacy' reproduce the pre-3.0.0 dem-stitcher DEM for time-series
# consistency with the existing ARIA GUNW archive
dst_area_or_point='Point',
geoid_correction_mode='aria-legacy',
n_threads_downloading=5,
# ensures square resolution
dst_resolution=dem_res,
Expand Down
24 changes: 12 additions & 12 deletions pixi.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ dependencies = [
"asf_search>=10.0.5",
"boto3",
"dateparser",
"dem_stitcher>=2.5.8",
"dem_stitcher>=3.1.1",
"geopandas",
"s1_orbits",
"jinja2",
Expand Down Expand Up @@ -181,7 +181,7 @@ setuptools = ">=83.0.0,<84"
setuptools_scm = ">=10.2.1,<11"
shapely = ">=2.1.2,<3"
tqdm = ">=4.70.0,<5"
dem_stitcher = ">=3,<4"
dem_stitcher = ">=3.1.1,<4"
aiohttp = ">=3.14.3,<4"
tile_mate = ">=0.0.15"
s1_orbits = ">=0.2.0,<0.3"
Expand Down