asp-plot 1.7.0__tar.gz → 1.9.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.
- {asp_plot-1.7.0 → asp_plot-1.9.0}/.github/workflows/run-tests.yml +0 -1
- {asp_plot-1.7.0 → asp_plot-1.9.0}/.gitignore +5 -0
- asp_plot-1.9.0/.readthedocs.yaml +25 -0
- {asp_plot-1.7.0 → asp_plot-1.9.0}/CHANGELOG.md +57 -0
- asp_plot-1.9.0/PKG-INFO +88 -0
- asp_plot-1.9.0/README.md +45 -0
- {asp_plot-1.7.0 → asp_plot-1.9.0}/asp_plot/altimetry.py +727 -154
- {asp_plot-1.7.0 → asp_plot-1.9.0}/asp_plot/cli/asp_plot.py +112 -132
- {asp_plot-1.7.0 → asp_plot-1.9.0}/asp_plot/report.py +37 -1
- {asp_plot-1.7.0 → asp_plot-1.9.0}/asp_plot/stereo.py +68 -33
- {asp_plot-1.7.0 → asp_plot-1.9.0}/asp_plot/utils.py +4 -3
- asp_plot-1.9.0/environment.yml +13 -0
- {asp_plot-1.7.0 → asp_plot-1.9.0}/pyproject.toml +19 -1
- asp_plot-1.7.0/PKG-INFO +0 -403
- asp_plot-1.7.0/README.md +0 -372
- asp_plot-1.7.0/environment.yml +0 -26
- {asp_plot-1.7.0 → asp_plot-1.9.0}/.flake8 +0 -0
- {asp_plot-1.7.0 → asp_plot-1.9.0}/.github/workflows/release.yml +0 -0
- {asp_plot-1.7.0 → asp_plot-1.9.0}/.pre-commit-config.yaml +0 -0
- {asp_plot-1.7.0 → asp_plot-1.9.0}/LICENSE +0 -0
- {asp_plot-1.7.0 → asp_plot-1.9.0}/asp_plot/__init__.py +0 -0
- {asp_plot-1.7.0 → asp_plot-1.9.0}/asp_plot/alignment.py +0 -0
- {asp_plot-1.7.0 → asp_plot-1.9.0}/asp_plot/bundle_adjust.py +0 -0
- {asp_plot-1.7.0 → asp_plot-1.9.0}/asp_plot/cli/__init__.py +0 -0
- {asp_plot-1.7.0 → asp_plot-1.9.0}/asp_plot/cli/csm_camera_plot.py +0 -0
- {asp_plot-1.7.0 → asp_plot-1.9.0}/asp_plot/cli/stereo_geom.py +0 -0
- {asp_plot-1.7.0 → asp_plot-1.9.0}/asp_plot/csm_camera.py +0 -0
- {asp_plot-1.7.0 → asp_plot-1.9.0}/asp_plot/processing_parameters.py +0 -0
- {asp_plot-1.7.0 → asp_plot-1.9.0}/asp_plot/scenes.py +0 -0
- {asp_plot-1.7.0 → asp_plot-1.9.0}/asp_plot/stereo_geometry.py +0 -0
- {asp_plot-1.7.0 → asp_plot-1.9.0}/asp_plot/stereopair_metadata_parser.py +0 -0
- {asp_plot-1.7.0 → asp_plot-1.9.0}/conda-forge-recipe/meta.yaml +0 -0
|
@@ -70,6 +70,9 @@ instance/
|
|
|
70
70
|
|
|
71
71
|
# Sphinx documentation
|
|
72
72
|
docs/_build/
|
|
73
|
+
docs/examples/notebooks/
|
|
74
|
+
docs/_extra/
|
|
75
|
+
docs/_static/reports/
|
|
73
76
|
|
|
74
77
|
# PyBuilder
|
|
75
78
|
target/
|
|
@@ -137,3 +140,5 @@ notebooks/**/*.parquet
|
|
|
137
140
|
notebooks/**/*.csv
|
|
138
141
|
CLAUDE*
|
|
139
142
|
.claude/**
|
|
143
|
+
scripts/
|
|
144
|
+
/*.parquet
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
version: 2
|
|
2
|
+
|
|
3
|
+
build:
|
|
4
|
+
os: "ubuntu-24.04"
|
|
5
|
+
tools:
|
|
6
|
+
python: "3.12"
|
|
7
|
+
jobs:
|
|
8
|
+
pre_build:
|
|
9
|
+
- mkdir -p docs/examples/notebooks
|
|
10
|
+
- cp notebooks/WorldView/*.ipynb docs/examples/notebooks/
|
|
11
|
+
- cp notebooks/ASTER/*.ipynb docs/examples/notebooks/
|
|
12
|
+
- cp notebooks/LRO_NAC/*.ipynb docs/examples/notebooks/
|
|
13
|
+
- cp notebooks/Mars_MGS/*.ipynb docs/examples/notebooks/
|
|
14
|
+
- cp notebooks/Mars_MRO/*.ipynb docs/examples/notebooks/
|
|
15
|
+
- mkdir -p docs/_extra/examples/figures
|
|
16
|
+
- cp notebooks/figures/* docs/_extra/examples/figures/
|
|
17
|
+
- mkdir -p docs/_static/reports
|
|
18
|
+
- cp reports/*.pdf docs/_static/reports/
|
|
19
|
+
|
|
20
|
+
sphinx:
|
|
21
|
+
configuration: docs/conf.py
|
|
22
|
+
|
|
23
|
+
python:
|
|
24
|
+
install:
|
|
25
|
+
- requirements: docs/requirements.txt
|
|
@@ -5,6 +5,63 @@ 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.9.0] - 2026-03-10
|
|
9
|
+
|
|
10
|
+
### Added
|
|
11
|
+
- Match points now overlay on non-mapprojected images using alignment transform matrices (`run-align-{L,R}.txt`), replacing the previous blank-right-panel behavior
|
|
12
|
+
- Report command string recorded in PDF report via new `report_command` parameter in `compile_report()`
|
|
13
|
+
- Pixel-unit scalebar for non-mapprojected disparity plots (mapprojected scenes continue to use GSD-based scalebar)
|
|
14
|
+
- Guard with `FileNotFoundError` when alignment matrix files are missing for non-mapprojected match point overlay
|
|
15
|
+
- Warning when `unit="meters"` is passed for non-mapprojected disparity (unsupported, falls back to pixels)
|
|
16
|
+
- Test coverage for non-mapprojected stereo code paths (9 new tests with resampled ASTER test data)
|
|
17
|
+
|
|
18
|
+
### Changed
|
|
19
|
+
- Report figures are now fitted to page dimensions, preventing overflow and cutoff for large/wide figures
|
|
20
|
+
- Report caption reserve is now dynamically calculated from actual caption length instead of a hardcoded 20mm
|
|
21
|
+
- Input Scenes caption updated to explain alignment rotation applied to non-mapprojected imagery
|
|
22
|
+
- Match points right subplot title simplified from "Right (scenes shown only if mapprojected)" to "Right"
|
|
23
|
+
- `save_figure()` default DPI changed from hardcoded 150 to `None` (uses figure's own creation DPI), fixing pixelated ICESat-2 report figures
|
|
24
|
+
- ICESat-2 altimetry figures created at 220 DPI for high-quality PDF embedding
|
|
25
|
+
- CLI parameter values are now quoted with `shlex.quote()` for proper reconstruction of commands with spaces
|
|
26
|
+
- Cleaned up example notebook report links and removed stale PDF files
|
|
27
|
+
- Removed unnecessary `read_align_matrix()` method; alignment matrices are loaded inline via `np.loadtxt()`
|
|
28
|
+
|
|
29
|
+
### Fixed
|
|
30
|
+
- Disparity plot scale for non-mapprojected scenes: GSD-based rescale was producing near-zero values from the identity transform; now skips rescaling and uses pixel-unit scalebar instead
|
|
31
|
+
- Match point plot whitespace for non-mapprojected scenes caused by a 1x1 dummy image plotted underneath scatter points
|
|
32
|
+
- Pixelated ICESat-2 ATL06-SR figures in PDF reports caused by `save_figure()` overriding figure DPI with 150
|
|
33
|
+
|
|
34
|
+
## [1.8.0] - 2026-03-03
|
|
35
|
+
|
|
36
|
+
### Added
|
|
37
|
+
- New `_select_best_track()` method to find the RGT/cycle/spot combination with the most valid ATL06-SR points for profile plotting
|
|
38
|
+
- 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
|
|
39
|
+
- 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
|
|
40
|
+
- 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
|
|
41
|
+
- `scene_date` and `time_buffer_days` parameters added to `request_atl06sr_multi_processing()`
|
|
42
|
+
- Module-level `ICESAT2_MISSION_START` constant and `WORLDCOVER_NAMES` dictionary for reuse across methods
|
|
43
|
+
- Module-level `_nmad()` helper function (Normalized Median Absolute Deviation)
|
|
44
|
+
- Time range labels displayed on ICESat-2 plot titles
|
|
45
|
+
- Tests for `_select_best_track`, `histogram_by_landcover`, `plot_atl06sr_dem_profile`, and `_resolve_time_range`
|
|
46
|
+
|
|
47
|
+
### Changed
|
|
48
|
+
- Migrated SlideRule API from legacy `icesat2.atl06p()` to x-series `sliderule_api.run("atl03x")` with automatic index and column normalization
|
|
49
|
+
- 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
|
|
50
|
+
- Report section ordering: bundle adjustment plots now appear after match points and before DEM hillshade
|
|
51
|
+
- Profile plot legend now includes axis labels (left/right) for all entries and embeds Med/NMAD statistics in the dh legend item
|
|
52
|
+
|
|
53
|
+
### Removed
|
|
54
|
+
- `--icesat_filter_date` CLI option (time filtering is now automatic via `_resolve_time_range()`)
|
|
55
|
+
- Commented-out `plot_atl06sr_dem_profiles()` stub and ATL03 request stub (replaced by implemented methods)
|
|
56
|
+
- Duplicated WorldCover classification table from `filter_esa_worldcover()` docstring (now references `WORLDCOVER_NAMES`)
|
|
57
|
+
|
|
58
|
+
### Fixed
|
|
59
|
+
- `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
|
|
60
|
+
- `KeyError: 'translation_magnitude'` in `alignment_report()` when requested processing level has no data (now returns early with a warning)
|
|
61
|
+
- `TypeError: unhashable type: 'numpy.ndarray'` in `histogram_by_landcover` caused by parquet round-trip deserializing arrays as Python lists
|
|
62
|
+
- `TypeError: 'int' object is not callable` when builtin `len()` was shadowed by the `len=40` parameter inside `request_atl06sr_multi_processing`
|
|
63
|
+
- `OverflowError: cannot convert float infinity to integer` in profile segment selection when median point spacing is zero
|
|
64
|
+
|
|
8
65
|
## [1.7.0] - 2026-02-24
|
|
9
66
|
|
|
10
67
|
### Added
|
asp_plot-1.9.0/PKG-INFO
ADDED
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: asp_plot
|
|
3
|
+
Version: 1.9.0
|
|
4
|
+
Summary: Package for plotting outputs Ames Stereo Pipeline processing
|
|
5
|
+
Project-URL: Homepage, https://github.com/uw-cryo/asp_plot
|
|
6
|
+
Project-URL: Documentation, https://asp-plot.readthedocs.io
|
|
7
|
+
Project-URL: Issues, https://github.com/uw-cryo/asp_plot/issues
|
|
8
|
+
Author-email: Ben Purinton <purinton@uw.edu>, David Shean <dshean@uw.edu>, Shashank Bhushan <sbhusha1@umd.edu>
|
|
9
|
+
License: BSD-3-Clause
|
|
10
|
+
License-File: LICENSE
|
|
11
|
+
Classifier: License :: OSI Approved :: BSD License
|
|
12
|
+
Classifier: Operating System :: OS Independent
|
|
13
|
+
Classifier: Programming Language :: Python :: 3
|
|
14
|
+
Requires-Python: >=3.11
|
|
15
|
+
Requires-Dist: click
|
|
16
|
+
Requires-Dist: contextily
|
|
17
|
+
Requires-Dist: fpdf2
|
|
18
|
+
Requires-Dist: gdal
|
|
19
|
+
Requires-Dist: geopandas
|
|
20
|
+
Requires-Dist: matplotlib
|
|
21
|
+
Requires-Dist: matplotlib-scalebar
|
|
22
|
+
Requires-Dist: numpy
|
|
23
|
+
Requires-Dist: pandas
|
|
24
|
+
Requires-Dist: pyproj
|
|
25
|
+
Requires-Dist: rasterio
|
|
26
|
+
Requires-Dist: rioxarray
|
|
27
|
+
Requires-Dist: scipy
|
|
28
|
+
Requires-Dist: shapely
|
|
29
|
+
Requires-Dist: sliderule
|
|
30
|
+
Requires-Dist: xarray
|
|
31
|
+
Provides-Extra: dev
|
|
32
|
+
Requires-Dist: pre-commit; extra == 'dev'
|
|
33
|
+
Requires-Dist: pytest; extra == 'dev'
|
|
34
|
+
Provides-Extra: docs
|
|
35
|
+
Requires-Dist: myst-nb; extra == 'docs'
|
|
36
|
+
Requires-Dist: sphinx-autoapi; extra == 'docs'
|
|
37
|
+
Requires-Dist: sphinx-autobuild; extra == 'docs'
|
|
38
|
+
Requires-Dist: sphinx-book-theme; extra == 'docs'
|
|
39
|
+
Requires-Dist: sphinx-copybutton; extra == 'docs'
|
|
40
|
+
Requires-Dist: sphinx-design; extra == 'docs'
|
|
41
|
+
Requires-Dist: sphinx>=7; extra == 'docs'
|
|
42
|
+
Description-Content-Type: text/markdown
|
|
43
|
+
|
|
44
|
+
# asp_plot
|
|
45
|
+
|
|
46
|
+
[](https://pypi.org/project/asp-plot/)
|
|
47
|
+
[](https://anaconda.org/conda-forge/asp-plot)
|
|
48
|
+
[](https://doi.org/10.5281/zenodo.14263121)
|
|
49
|
+
[](https://asp-plot.readthedocs.io/en/latest/)
|
|
50
|
+
|
|
51
|
+
A Python package for visualizing output from the [NASA Ames Stereo Pipeline (ASP)](https://github.com/NeoGeographyToolkit/StereoPipeline). Generates diagnostic plots and comprehensive PDF reports for ASP stereo processing results, similar to reports from commercial SfM software like Agisoft Metashape.
|
|
52
|
+
|
|
53
|
+
### **[View some example reports](https://asp-plot.readthedocs.io/en/latest/examples/reports.html)**
|
|
54
|
+
|
|
55
|
+
### **[Full documentation at asp-plot.readthedocs.io](https://asp-plot.readthedocs.io)**
|
|
56
|
+
|
|
57
|
+
## Installation
|
|
58
|
+
|
|
59
|
+
```
|
|
60
|
+
conda install -c conda-forge asp-plot
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
Or with pip:
|
|
64
|
+
|
|
65
|
+
```
|
|
66
|
+
pip install asp-plot
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
See the [installation guide](https://asp-plot.readthedocs.io/en/latest/installation.html) for more options.
|
|
70
|
+
|
|
71
|
+
## Quick start
|
|
72
|
+
|
|
73
|
+
Generate a PDF report from an ASP processing directory:
|
|
74
|
+
|
|
75
|
+
```
|
|
76
|
+
asp_plot --directory ./ --stereo_directory stereo
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
See the [CLI documentation](https://asp-plot.readthedocs.io/en/latest/cli/index.html) for all options and additional tools (`stereo_geom`, `csm_camera_plot`).
|
|
80
|
+
|
|
81
|
+
## Examples
|
|
82
|
+
|
|
83
|
+
- [Example reports](https://asp-plot.readthedocs.io/en/latest/examples/reports.html) — PDF reports for WorldView, ASTER, LRO NAC, and Mars sensors
|
|
84
|
+
- [Example notebooks](https://asp-plot.readthedocs.io/en/latest/examples/index.html) — Modular usage by sensor type
|
|
85
|
+
|
|
86
|
+
## Contributing
|
|
87
|
+
|
|
88
|
+
See the [contributing guide](https://asp-plot.readthedocs.io/en/latest/contributing.html) for development setup, testing, and release process.
|
asp_plot-1.9.0/README.md
ADDED
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
# asp_plot
|
|
2
|
+
|
|
3
|
+
[](https://pypi.org/project/asp-plot/)
|
|
4
|
+
[](https://anaconda.org/conda-forge/asp-plot)
|
|
5
|
+
[](https://doi.org/10.5281/zenodo.14263121)
|
|
6
|
+
[](https://asp-plot.readthedocs.io/en/latest/)
|
|
7
|
+
|
|
8
|
+
A Python package for visualizing output from the [NASA Ames Stereo Pipeline (ASP)](https://github.com/NeoGeographyToolkit/StereoPipeline). Generates diagnostic plots and comprehensive PDF reports for ASP stereo processing results, similar to reports from commercial SfM software like Agisoft Metashape.
|
|
9
|
+
|
|
10
|
+
### **[View some example reports](https://asp-plot.readthedocs.io/en/latest/examples/reports.html)**
|
|
11
|
+
|
|
12
|
+
### **[Full documentation at asp-plot.readthedocs.io](https://asp-plot.readthedocs.io)**
|
|
13
|
+
|
|
14
|
+
## Installation
|
|
15
|
+
|
|
16
|
+
```
|
|
17
|
+
conda install -c conda-forge asp-plot
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
Or with pip:
|
|
21
|
+
|
|
22
|
+
```
|
|
23
|
+
pip install asp-plot
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
See the [installation guide](https://asp-plot.readthedocs.io/en/latest/installation.html) for more options.
|
|
27
|
+
|
|
28
|
+
## Quick start
|
|
29
|
+
|
|
30
|
+
Generate a PDF report from an ASP processing directory:
|
|
31
|
+
|
|
32
|
+
```
|
|
33
|
+
asp_plot --directory ./ --stereo_directory stereo
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
See the [CLI documentation](https://asp-plot.readthedocs.io/en/latest/cli/index.html) for all options and additional tools (`stereo_geom`, `csm_camera_plot`).
|
|
37
|
+
|
|
38
|
+
## Examples
|
|
39
|
+
|
|
40
|
+
- [Example reports](https://asp-plot.readthedocs.io/en/latest/examples/reports.html) — PDF reports for WorldView, ASTER, LRO NAC, and Mars sensors
|
|
41
|
+
- [Example notebooks](https://asp-plot.readthedocs.io/en/latest/examples/index.html) — Modular usage by sensor type
|
|
42
|
+
|
|
43
|
+
## Contributing
|
|
44
|
+
|
|
45
|
+
See the [contributing guide](https://asp-plot.readthedocs.io/en/latest/contributing.html) for development setup, testing, and release process.
|