Metadata-Version: 2.4
Name: isistools
Version: 0.7.1
Summary: Python-based review tools for ISIS3 coregistration workflows
Project-URL: Homepage, https://github.com/michaelaye/isistools
Project-URL: Repository, https://github.com/michaelaye/isistools
Project-URL: Changelog, https://github.com/michaelaye/isistools/blob/main/CHANGELOG.md
Project-URL: Issues, https://github.com/michaelaye/isistools/issues
Author: Michael Aye
License-Expression: MIT
License-File: LICENSE
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Scientific/Engineering :: Astronomy
Classifier: Topic :: Scientific/Engineering :: GIS
Classifier: Topic :: Scientific/Engineering :: Image Processing
Requires-Python: >=3.10
Requires-Dist: bokeh>=3.3
Requires-Dist: datashader>=0.16
Requires-Dist: diskcache>=5.6
Requires-Dist: geopandas>=0.14
Requires-Dist: holoviews>=1.18
Requires-Dist: hvplot>=0.9
Requires-Dist: kalasiris>=1.11
Requires-Dist: matplotlib>=3.7
Requires-Dist: mplcursors>=0.5
Requires-Dist: numpy>=1.24
Requires-Dist: pandas>=2.0
Requires-Dist: panel>=1.3
Requires-Dist: plio>=1.5
Requires-Dist: pvl>=1.3
Requires-Dist: pyqt6>=6.5
Requires-Dist: rioxarray>=0.15
Requires-Dist: shapely>=2.0
Requires-Dist: typer>=0.9
Requires-Dist: xarray>=2024.1
Provides-Extra: csm
Requires-Dist: pyproj>=3.4; extra == 'csm'
Requires-Dist: rich>=12.0; extra == 'csm'
Requires-Dist: scipy>=1.10; extra == 'csm'
Provides-Extra: dev
Requires-Dist: pytest; extra == 'dev'
Requires-Dist: pytest-cov; extra == 'dev'
Requires-Dist: ruff; extra == 'dev'
Description-Content-Type: text/markdown

# isistools

[![DOI](https://zenodo.org/badge/1155816216.svg)](https://doi.org/10.5281/zenodo.18944803)
[![PyPI](https://img.shields.io/pypi/v/isistools)](https://pypi.org/project/isistools/)

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

**[Documentation](https://michaelaye.github.io/isistools/)**

## Installation

```bash
pip install isistools
```

For development:

```bash
git clone https://github.com/michaelaye/isistools.git
cd isistools
pip install -e ".[dev]"
```

## Quick start

```bash
# Interactive footprint map in the browser
isistools footprints cubes.lis

# Export publication-ready PNG
isistools footprints cubes.lis --png --title "My Mosaic"

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

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

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

# Control network summary
isistools cnet-info control.net

# Map-project a CTX cube with a CSM camera model (optional feature,
# replaces ISIS cam2map — see the csm2map docs chapter for install details)
isistools csm2map input.cub output.tif --map equi.map
isistools csm2map-compare isis.cub csm.tif
```

> **Note on `csm2map`:** this is an optional subcommand that requires the
> `[csm]` extra plus a conda-forge CSM stack (ale, usgscsm, rasterio). It is
> not installed by default — users who only want the viewer tools don't pay
> the extra dependency cost. See the
> [csm2map chapter](https://michaelaye.github.io/isistools/csm2map.html)
> for installation instructions, including an Apple Silicon gotcha where
> `csmapi` must be built from source.

## Why?

ISIS's Qmos and Qnet have several pain points:

- **Qmos** requires level-1 images but displays footprints in map projection,
  and renders image content very slowly.
- **Qnet** requires level-2 images but displays them flipped in detector
  readout order.
- **Both** use a color scheme where registered control points are nearly
  invisible while unregistered points are prominent.

isistools fixes all of these. See the
[documentation](https://michaelaye.github.io/isistools/) for details on each
command, the Python API, and example figures.

## License

MIT
