Skip to main content

A library to help process HiRISE EDRs with ISIS.

Project description

hiproc

Documentation Status PyPI version Conda version

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:

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.10.0 (2021-08-05)

Added

  • fft_clean functionality added for more testing, but not integrated with HiCal or hiproc.

Fixed

  • EDR_Stats was failing when some histats return values were None. Now properly just saves a “None” for SNR.

  • HiCal multiprocessing approach was failing when a Channel was bypassed, essentially breaking the whole run.

  • When the HiStitch function was called externally, a missing channel wasn’t handled properly. When called from the HiStitch console script, it was fine.

  • hiproc adjusted to take advantage of the above two fixes to HiCal and HiStitch.

  • HiccdStitch now tolerant against the new ISIS stats return of the “N/A” string for missing values.

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

hiproc-0.10.0.tar.gz (229.8 kB view details)

Uploaded Source

Built Distribution

hiproc-0.10.0-py2.py3-none-any.whl (207.9 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file hiproc-0.10.0.tar.gz.

File metadata

  • Download URL: hiproc-0.10.0.tar.gz
  • Upload date:
  • Size: 229.8 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

Hashes for hiproc-0.10.0.tar.gz
Algorithm Hash digest
SHA256 8764508c28c98724eeab49e88f250365aa965338a8f7a80503c39d0a916a3700
MD5 be74ab4e2d1aea24a1534050b2c1eeb4
BLAKE2b-256 bd4bd7a2f4e0035e91b1c297e55082f436d7e8bd72cc0681a21efb2c68d5630f

See more details on using hashes here.

File details

Details for the file hiproc-0.10.0-py2.py3-none-any.whl.

File metadata

  • Download URL: hiproc-0.10.0-py2.py3-none-any.whl
  • Upload date:
  • Size: 207.9 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

Hashes for hiproc-0.10.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 a2b2d119172f46ee304b5b1d2528f9f4ac5d0f5bca07375b259cb761eb54fe82
MD5 94db9ef931bf67d10a4ff6ebc09a2010
BLAKE2b-256 dd4cfd4c525f5cc40d7f0c9049a9770224dd6ad97656d3c93795bf88222f9e41

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page