asp-plot 1.6.4__tar.gz → 1.8.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (29) hide show
  1. {asp_plot-1.6.4 → asp_plot-1.8.0}/.gitignore +2 -0
  2. {asp_plot-1.6.4 → asp_plot-1.8.0}/CHANGELOG.md +49 -0
  3. {asp_plot-1.6.4 → asp_plot-1.8.0}/PKG-INFO +4 -3
  4. {asp_plot-1.6.4 → asp_plot-1.8.0}/README.md +3 -2
  5. asp_plot-1.8.0/asp_plot/__init__.py +6 -0
  6. {asp_plot-1.6.4 → asp_plot-1.8.0}/asp_plot/altimetry.py +725 -152
  7. {asp_plot-1.6.4 → asp_plot-1.8.0}/asp_plot/cli/asp_plot.py +99 -131
  8. {asp_plot-1.6.4 → asp_plot-1.8.0}/asp_plot/processing_parameters.py +32 -0
  9. {asp_plot-1.6.4 → asp_plot-1.8.0}/asp_plot/report.py +21 -0
  10. {asp_plot-1.6.4 → asp_plot-1.8.0}/asp_plot/scenes.py +14 -1
  11. {asp_plot-1.6.4 → asp_plot-1.8.0}/asp_plot/stereo.py +24 -9
  12. {asp_plot-1.6.4 → asp_plot-1.8.0}/asp_plot/utils.py +118 -47
  13. {asp_plot-1.6.4 → asp_plot-1.8.0}/pyproject.toml +1 -1
  14. asp_plot-1.6.4/asp_plot/cli/__init__.py +0 -0
  15. {asp_plot-1.6.4 → asp_plot-1.8.0}/.flake8 +0 -0
  16. {asp_plot-1.6.4 → asp_plot-1.8.0}/.github/workflows/release.yml +0 -0
  17. {asp_plot-1.6.4 → asp_plot-1.8.0}/.github/workflows/run-tests.yml +0 -0
  18. {asp_plot-1.6.4 → asp_plot-1.8.0}/.pre-commit-config.yaml +0 -0
  19. {asp_plot-1.6.4 → asp_plot-1.8.0}/LICENSE +0 -0
  20. {asp_plot-1.6.4 → asp_plot-1.8.0}/asp_plot/alignment.py +0 -0
  21. {asp_plot-1.6.4 → asp_plot-1.8.0}/asp_plot/bundle_adjust.py +0 -0
  22. {asp_plot-1.6.4/asp_plot → asp_plot-1.8.0/asp_plot/cli}/__init__.py +0 -0
  23. {asp_plot-1.6.4 → asp_plot-1.8.0}/asp_plot/cli/csm_camera_plot.py +0 -0
  24. {asp_plot-1.6.4 → asp_plot-1.8.0}/asp_plot/cli/stereo_geom.py +0 -0
  25. {asp_plot-1.6.4 → asp_plot-1.8.0}/asp_plot/csm_camera.py +0 -0
  26. {asp_plot-1.6.4 → asp_plot-1.8.0}/asp_plot/stereo_geometry.py +0 -0
  27. {asp_plot-1.6.4 → asp_plot-1.8.0}/asp_plot/stereopair_metadata_parser.py +0 -0
  28. {asp_plot-1.6.4 → asp_plot-1.8.0}/conda-forge-recipe/meta.yaml +0 -0
  29. {asp_plot-1.6.4 → asp_plot-1.8.0}/environment.yml +0 -0
@@ -136,3 +136,5 @@ scratch/
136
136
  notebooks/**/*.parquet
137
137
  notebooks/**/*.csv
138
138
  CLAUDE*
139
+ .claude/**
140
+ scripts/
@@ -5,6 +5,55 @@ All notable changes to this project will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [1.8.0] - 2026-03-03
9
+
10
+ ### Added
11
+ - New `_select_best_track()` method to find the RGT/cycle/spot combination with the most valid ATL06-SR points for profile plotting
12
+ - New `histogram_by_landcover()` method producing a histogram of ICESat-2 vs DEM differences with per-landcover-class statistics (count, median, NMAD) using ESA WorldCover
13
+ - New `plot_atl06sr_dem_profile()` method with a three-row figure: combined elevation + dh profile with dual y-axes, two 1 km zoom segments (best/worst agreement scored by |median(dh)| + NMAD), and DEM hillshade map with track overlay
14
+ - Server-side time filtering for SlideRule API requests via new `_resolve_time_range()` method with three-tier cascade: explicit `scene_date` parameter, auto-detect from stereopair XML metadata, or 2-year fallback
15
+ - `scene_date` and `time_buffer_days` parameters added to `request_atl06sr_multi_processing()`
16
+ - Module-level `ICESAT2_MISSION_START` constant and `WORLDCOVER_NAMES` dictionary for reuse across methods
17
+ - Module-level `_nmad()` helper function (Normalized Median Absolute Deviation)
18
+ - Time range labels displayed on ICESat-2 plot titles
19
+ - Tests for `_select_best_track`, `histogram_by_landcover`, `plot_atl06sr_dem_profile`, and `_resolve_time_range`
20
+
21
+ ### Changed
22
+ - Migrated SlideRule API from legacy `icesat2.atl06p()` to x-series `sliderule_api.run("atl03x")` with automatic index and column normalization
23
+ - Simplified ICESat-2 report section: single `"all"` processing level with landcover histogram and profile plot, replacing the previous multi-level (all + ground) workflow with temporal filtering and plain histograms
24
+ - Report section ordering: bundle adjustment plots now appear after match points and before DEM hillshade
25
+ - Profile plot legend now includes axis labels (left/right) for all entries and embeds Med/NMAD statistics in the dh legend item
26
+
27
+ ### Removed
28
+ - `--icesat_filter_date` CLI option (time filtering is now automatic via `_resolve_time_range()`)
29
+ - Commented-out `plot_atl06sr_dem_profiles()` stub and ATL03 request stub (replaced by implemented methods)
30
+ - Duplicated WorldCover classification table from `filter_esa_worldcover()` docstring (now references `WORLDCOVER_NAMES`)
31
+
32
+ ### Fixed
33
+ - `TypeError: Cannot subtract tz-naive and tz-aware datetime-like objects` in `predefined_temporal_filter_atl06sr` when scene date is UTC-aware but DataFrame index is tz-naive
34
+ - `KeyError: 'translation_magnitude'` in `alignment_report()` when requested processing level has no data (now returns early with a warning)
35
+ - `TypeError: unhashable type: 'numpy.ndarray'` in `histogram_by_landcover` caused by parquet round-trip deserializing arrays as Python lists
36
+ - `TypeError: 'int' object is not callable` when builtin `len()` was shadowed by the `len=40` parameter inside `request_atl06sr_multi_processing`
37
+ - `OverflowError: cannot convert float infinity to integer` in profile segment selection when median point spacing is zero
38
+
39
+ ## [1.7.0] - 2026-02-24
40
+
41
+ ### Added
42
+ - ASP version and asp_plot version displayed on report title page
43
+ - Copyright overlay ("© Vantor {year}") on WorldView satellite imagery in scene, match point, and detailed hillshade plots
44
+ - `detect_vantor_satellite()` utility to identify WorldView imagery from XML SATID tags
45
+ - `add_copyright_overlay()` utility for matplotlib axes
46
+ - `ProcessingParameters.get_asp_version()` method to extract ASP version from log files
47
+ - `Raster._mask_nodata()` private helper to consolidate nodata/invalid value masking
48
+ - `Raster._load_and_diff_rasters_da()` private static method returning xarray DataArray for raster differencing
49
+
50
+ ### Changed
51
+ - `Raster.get_bounds()` now uses `self.ds.bounds` (rasterio) instead of opening a redundant rioxarray dataset
52
+ - `Raster.compute_difference()` uses `rio.to_raster()` for saving when `save=True`, avoiding manual profile construction
53
+ - `StereoPlotter.plot_detailed_hillshade()` reuses existing `raster.ds.transform` instead of reopening the DEM file
54
+ - Consolidated duplicated nodata masking logic into `Raster._mask_nodata()`
55
+ - Updated ASTER and WorldView example notebooks
56
+
8
57
  ## [1.6.4] - 2026-02-17
9
58
 
10
59
  ### Changed
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: asp_plot
3
- Version: 1.6.4
3
+ Version: 1.8.0
4
4
  Summary: Package for plotting outputs Ames Stereo Pipeline processing
5
5
  Project-URL: Homepage, https://github.com/uw-cryo/asp_plot
6
6
  Project-URL: Issues, https://github.com/uw-cryo/asp_plot/issues
@@ -31,12 +31,13 @@ Description-Content-Type: text/markdown
31
31
 
32
32
  # asp_plot
33
33
 
34
- [![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.14263122.svg)](https://doi.org/10.5281/zenodo.14263122)
34
+ [![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.14263121.svg)](https://doi.org/10.5281/zenodo.14263121)
35
35
 
36
36
  Scripts and notebooks to visualize output from the [NASA Ames Stereo Pipeline (ASP)](https://github.com/NeoGeographyToolkit/StereoPipeline).
37
37
 
38
38
  > [!IMPORTANT]
39
- > [View an example WorldView report here](notebooks/WorldView/asp_plot_report_atlanta_tile.pdf).
39
+ > [View an example WorldView report here](https://github.com/uw-cryo/asp_plot/blob/main/notebooks/WorldView/asp_plot_report_atlanta_tile.pdf).
40
+ > [View example modular plotting usage here](https://github.com/uw-cryo/asp_plot/tree/main/notebooks)
40
41
  >
41
42
 
42
43
  ## Motivation
@@ -1,11 +1,12 @@
1
1
  # asp_plot
2
2
 
3
- [![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.14263122.svg)](https://doi.org/10.5281/zenodo.14263122)
3
+ [![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.14263121.svg)](https://doi.org/10.5281/zenodo.14263121)
4
4
 
5
5
  Scripts and notebooks to visualize output from the [NASA Ames Stereo Pipeline (ASP)](https://github.com/NeoGeographyToolkit/StereoPipeline).
6
6
 
7
7
  > [!IMPORTANT]
8
- > [View an example WorldView report here](notebooks/WorldView/asp_plot_report_atlanta_tile.pdf).
8
+ > [View an example WorldView report here](https://github.com/uw-cryo/asp_plot/blob/main/notebooks/WorldView/asp_plot_report_atlanta_tile.pdf).
9
+ > [View example modular plotting usage here](https://github.com/uw-cryo/asp_plot/tree/main/notebooks)
9
10
  >
10
11
 
11
12
  ## Motivation
@@ -0,0 +1,6 @@
1
+ from importlib.metadata import PackageNotFoundError, version
2
+
3
+ try:
4
+ __version__ = version("asp_plot")
5
+ except PackageNotFoundError:
6
+ __version__ = "unknown"