Skip to main content

Python-based review tools for ISIS3 coregistration workflows

Project description

isistools

DOI

Python-based review tools for ISIS3 coregistration workflows. Replaces Qmos and Qnet with modern, interactive visualization using HoloViews, Panel, and datashader.

Why?

ISIS's Qmos and Qnet have several pain points:

  • Qmos requires level-1 unprojected images but displays footprints in map projection (confusing), and renders image content very slowly.
  • Qnet requires level-2 map-projected images but displays them flipped in detector readout order (makes comparison difficult).
  • Both use a color scheme where registered control points are nearly invisible while unregistered points are prominent — the opposite of what you want during review.

isistools fixes all of these by building on the Python geospatial stack.

Features

  • Footprint map: Interactive map of image footprints using geopandas + hvplot, with hover info and click-to-select.
  • Image viewer: Fast rasterized image display via rioxarray + datashader. Images always shown in correct (north-up) orientation.
  • Control network overlay: Tie points with sensible colors (registered = bright green, unregistered = red, ignored = gray). Residual vectors. Point detail on click.
  • Dual interface: Same code works in Jupyter notebooks and as standalone Panel apps in the browser.
  • CLI: isistools mosaic, isistools tiepoints, isistools footprints commands that launch Panel apps.
  • Static PNG export: isistools footprints --png generates publication-ready footprint overview images.
  • Batch footprintinit: isistools footprintinit runs ISIS footprintinit in parallel on all cubes in a list file.

Installation

pip install -e .

Usage

CLI

# Mosaic review (Qmos replacement)
isistools mosaic cubes.lis --cnet control.net

# Tiepoint review (Qnet replacement)
isistools tiepoints cubes.lis control.net

# Quick footprint map
isistools footprints cubes.lis

# Export footprint overview as PNG (default: footprints_overview.png)
isistools footprints cubes.lis --png
isistools footprints cubes.lis --png-path my_overview.png --title "MC-13E Gap" --dpi 200

# Batch footprintinit (parallel, 8 workers)
isistools footprintinit cubes.lis -j 8

# Control network summary stats
isistools cnet-info control.net

Notebook

from isistools.apps.mosaic_review import MosaicReview

app = MosaicReview("cubes.lis", cnet_path="control.net")
app.panel()  # renders inline
from isistools.apps.tiepoint_review import TiepointReview

app = TiepointReview("cubes.lis", "control.net")
app.panel()

Low-level API

from isistools.io.footprints import load_footprints
from isistools.io.controlnet import load_cnet
from isistools.io.cubes import load_cube
from isistools.plotting.footprint_map import footprint_map
from isistools.plotting.image_viewer import image_plot, image_with_cnet
from isistools.plotting.cnet_overlay import cnet_to_geodataframe

# Load data
gdf = load_footprints("cubes.lis")
cnet = load_cnet("control.net")
da = load_cube("image.cub")

# Plot footprints
footprint_map(gdf)

# Plot image with control points
image_with_cnet(da, cnet, serial_number="MRO/HIRISE/...")

# Convert cnet to GeoDataFrame for map overlay
cnet_gdf = cnet_to_geodataframe(cnet)

Requirements

  • Cubes must have footprintinit already run for footprint display
  • Control networks in ISIS3 binary format (compatible with jigsaw)
  • GDAL with ISIS3 driver support (for reading .cub files via rioxarray)

Dependencies

Core: geopandas, hvplot, holoviews, datashader, panel, rioxarray, plio, pvl, typer

License

MIT

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

isistools-0.5.1.tar.gz (1.2 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

isistools-0.5.1-py3-none-any.whl (34.8 kB view details)

Uploaded Python 3

File details

Details for the file isistools-0.5.1.tar.gz.

File metadata

  • Download URL: isistools-0.5.1.tar.gz
  • Upload date:
  • Size: 1.2 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.2

File hashes

Hashes for isistools-0.5.1.tar.gz
Algorithm Hash digest
SHA256 0367e56d10c79f46f5a73087e188d0c5c697d797e3024d579fe538bcf676049e
MD5 b60b4adf0512b4761e32887bbae6a316
BLAKE2b-256 9bbd907be07d2752cbc0a7426428fdf6e71db826894257b472dfa9b64748ae97

See more details on using hashes here.

File details

Details for the file isistools-0.5.1-py3-none-any.whl.

File metadata

  • Download URL: isistools-0.5.1-py3-none-any.whl
  • Upload date:
  • Size: 34.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.2

File hashes

Hashes for isistools-0.5.1-py3-none-any.whl
Algorithm Hash digest
SHA256 d4d8dff44a5be58a356631aa8f34baa9f6d6ca07b4ae65d40d6656f870e6910c
MD5 1f6d19c5ccd178a98ee0a6d81e33b4aa
BLAKE2b-256 b7194f05d779dc05dd0fad3be29583ed28fa5353b43dc611d45f2c3d90c32009

See more details on using hashes here.

Supported by

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