This release represents a major refactoring effort to reduce technical debt and decrease workflow complexity.
**The user-facing `pdr.read()` interface has not changed.**
Added
FEATURES
- `pdr.Data` initialized with `debug=True`
- Errors can be inspected at runtime by accessing `Data.loaders["OBJECT_NAME"].errors`.
- Tracking logs are also saved to the `pdr/.tracker_logs` folder.
directory of the installation folder. They show which functions `Data` objects
used during loading processes -- and if those functions were successful.
- handling for a wider array of ISIS-style "qube" data and metadata,
including side/back/bottom/topplanes (as long as they are along only one
image axis)
Dataset Support
- most THEMIS qube products
- TODO for cassini XDR image scaling functionality
- additional LRO datasets: CRaTER, LAMP, LEND, LOLA, Mini-RF, and Radio Science
- several Venusian datasets including: Magellan GVDR, Pioneer Venus,
"Pre-Magellan" products at the GEO node, and Earth-based radar observations.
- several Lunar datasets including: GRAIL, Lunar Prospector, MSX,
Kaguya/Selene, and Earth-based radar and spectroscopy data.- (most) THEMIS qube products
- TODO for cassini XDR image scaling functionality
- additional LRO datasets: CRaTER, LAMP, LEND, LOLA, Mini-RF, and Radio Science
- several Venusian datasets including: Magellan GVDR, Pioneer Venus,
"Pre-Magellan" products at the GEO node, and Earth-based radar observations.
- several Lunar datasets including: GRAIL, Lunar Prospector, MSX,
Kaguya/Selene, and Earth-based radar and spectroscopy data.
Changed
- reworked fundamental data loading workflow. `Data` class no longer contains
all the loader functions, they've been refactored in the `loaders` module.
- `formats.core.py` now only contains special case checking functions and is renamed to `formats.checkers.py`.
Other functions that were previously in it (like `pointer_to_loader` and `generic_image_properties`) have
moved to the `loaders` module
- changes to various special cases based on the data loading workflow refactor
- reworked image-loading flow for better handling of various band storage
types and pre/suffixes
- BIL images now retain original byteorder
- reworked cassini xdr special case for compatibility
Fixed
- discovered some rosetta VIRTIS and cassini UVIS product types were not
actually reading correctly, marked them out of support
Removed
- m3 special case module (deprecated by new image-loading flow)
- messenger special case module (deprecated by new data loading workflow)
- rasterio loading options for image data
- `check_special_case` has been removed and the special cases have been moved to functions
that more specifically targeted to the issues of the particular dataset rather
than overriding the entire workflow.