A library to help process HiRISE EDRs with ISIS.
Project description
hiproc
A library to help process HiRISE EDRs with ISIS.
Free software: Apache 2 License
Features
TODO: Complete testing against Perl Pipelines.
External Dependencies
These programs use as much ‘vanilla’ Python 3 as possible.
However, it does depend on the following:
pvl library (https://pvl.readthedocs.io)
kalasiris library (https://kalasiris.readthedocs.io)
gdal
numpy
scipy
matplotlib
Warning !
The algorithms based on the HiRISE Processing Pipelines were emulated and tested locally, but the results of each pipeline have not been tested directly against the results of the HiRISE Processing Pipelines, and this warning will remain until I have done so. As a result, I would not particularly ‘trust’ anything produced by these programs at this time, and consider these algorithms a work-in-progress.
These programs have been tested against their upstream Perl counterparts:
- EDR_Stats: Verified!
Really just runs hi2isis so no surprise here.
- HiCal: Verified.
Upstream is undergoing change, needs to be re-verified once upstream settles down.
HiStitch: not verified
HiccdStitch: not verified
HiColorInit: not verified
HiJitReg: not verified
HiSlither: not verified
HiColorNorm: not verified
HiBeautify: not verified
HiPrecisionInit: not verified
HiNoProj: not verified
HiJACK: not verified
Documentation
Full documentation for hiproc is available, including information on the processing flow of the various available programs, and each program is self-documenting via their -h argument.
Due to the interaction with ISIS and GDAL, please read the installation instructions carefully.
Contributing
Feedback, issues, and contributions are always gratefully welcomed. See the contributing guide for details on how to help and setup a development environment.
Naming
The ISIS software has a number of processing or “proc” programs (mocproc, thmproc, etc.) that are meant to be run to process raw images to higher-level, more usable versions. Naming this library hiproc is an echo to that. There is a hiproc program that is available after installation that provides a streamlined one-stop-program, but this package provides a great deal more.
Changelog
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 Semantic Versioning.
When updating this file, please add an entry for your change under Unreleased and one of the following headings:
Added - for new features.
Changed - for changes in existing functionality.
Deprecated - for soon-to-be removed features.
Removed - for now removed features.
Fixed - for any bug fixes.
Security - in case of vulnerabilities.
If the heading does not yet exist under Unreleased, then add it as a 3rd level heading, underlined with pluses (see examples below).
When preparing for a public release add a new 2nd level heading, underlined with dashes under Unreleased with the version number and the release date, in year-month-day format (see examples below).
Unreleased
0.9.0 (2021-07-08)
Added
HiJACK now retains pre- and post-HiJACK flat files by default.
HiJACK now has a –plotflats argument that can be used to plot the new flat files after a run of HiJACK.
Added new rjplot program to plot the contents of the jitter and smear output files created by resolve_jitter.
Fixed
In certain conditions an array can have zero length, and when it does, one shouldn’t try and index it in a logging statement.
0.8.1 (2021-07-06)
Added
Additional logging of the HiPrecisionInit output during a hiproc run, which was previously obscured.
Fixed
In some legitimate cases, some elements returned from ISIS histat would be missing (e.g. in the case of no valid pixels in the CAL_BUFFER area, there is no returned value of “Average”), but were not handled properly (Issue #3). More robust handling was added.
0.8.0 (2021-06-30)
Changed
bitflips.py: Removed the span check when considering end values, which may affect how the algorithm deals with “mostly good” DN histograms, such that it should now correctly handle mesa-shaped DN histograms and not chop them in the middle.
0.7.1 (2021-06-21)
Fixed
The new-in-0.7.0 multiprocessing requires that the multidict package be installed (for pvl to use), and it wasn’t included in the requirements. If you have 0.7.0, a simple “conda install multidict” should get you working.
0.7.0 (2021-06-15)
Added
Improved documentation
environment.yml for conda development
Added Python-based multiprocessing capabilities to EDR_Stats, HiCal, and hiproc.
Changed
Incorporated changes from upstream to HiCal to make bitflip and lisfix settings on by default.
Fixed
resolve_jitter output header lines properly commented, now doesn’t bomb HiJACK’s run of hijitter.
now, additionally supporting ISIS 4.1.1 through 5.0.0
Upstream addressed a bug in analyze_cubenorm_stats() that we had noticed, so now fixed here, too.
MANIFEST.in did not properly include the “data” directory, so that was a problem.
0.6.1 (2021-03-23)
Added
lisfix will return a non-zero exit code if it chooses not to fix the input cube.
Changed
Updated documentation in various places.
0.6.0 (2021-03-18)
Added
More complete documentation for the programs and their parameters.
Changed
Implemented better handling for configuration files so that they will get distributed with the package.
0.5.0 (2021-03-05)
Added
lisfix: Added the lisfix module.
bitflips: Sometimes the very end of the histogram (although not a formal minima) is the appropriate choice, and is now considered.
bitflips: Added capability to ignore minor maxima at the ends of the histogram to “roll down” to a better solution.
Changed
name change of project from pyrise to hiproc.
bitflips: Changed the default medstd_limit from 300 to 400 DN.
Fixed
bitflips: There were a variety of edge cases that resulted in errors. The appropriate guardrails, handlers, and recovery logic has now been added.
HiStitch: The equalize and balance parameters cannot both be true.
0.4.0 (2020-09-22)
Tremendous amount of re-working in bitflips to improve performance.
Format cleanup
0.3.0 (2020-05-16)
Confirmed that EDR_Stats and HiCal produce identical output cubes.
0.2.0 (2020-05-06)
Updated with bit-flip correction.
0.1.0 2020-03-21
First shared on GitHub
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file hiproc-0.9.0.tar.gz
.
File metadata
- Download URL: hiproc-0.9.0.tar.gz
- Upload date:
- Size: 226.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/49.6.0.post20210108 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.6.11
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2e0a228bce6a930ebc68f3782093c67d1cc59a8b94d9ea3722d33f6156cdc8fb |
|
MD5 | a8bf94651d28397622226249c4230b37 |
|
BLAKE2b-256 | cc0d52b36b472c57d72b4b07d6c0aa2516366a4e8d3bd5e589cb97969ef548cd |
File details
Details for the file hiproc-0.9.0-py2.py3-none-any.whl
.
File metadata
- Download URL: hiproc-0.9.0-py2.py3-none-any.whl
- Upload date:
- Size: 204.0 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/49.6.0.post20210108 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.6.11
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 276ecc4fbef6f27cb3395da9625fce255d0627b8b0cf4b0fc2c62e1316a91f01 |
|
MD5 | 0922f0d1f0e9390ffb745182799993e8 |
|
BLAKE2b-256 | 52e3a7a989d92523efd15aa5e932c025520c283a88d3ad6ade8c95cd2df71b01 |