Skip to content

awetomaton/VISTA

Repository files navigation

VISTA - Visual Imagery Software Tool for Analysis

An open-source MIT-licensed Awetomaton project for the GEOINT community

Logo

VISTA is a PyQt6-based desktop application for viewing, analyzing, and managing multi-frame imagery datasets along with associated detection and track overlays. It's designed for scientific and analytical workflows involving temporal image sequences with support for time-based and geodetic coordinate systems, sensor calibration data, and radiometric processing.

Version Python License PyPI

Documentation: https://awetomaton.github.io/VISTA/

Source Code: https://github.com/awetomaton/VISTA

Watch the Demo

Watch the demo

Installation

pip install vista-imagery

Launch VISTA:

vista

Or install from source:

git clone https://github.com/awetomaton/VISTA.git
cd VISTA
pip install -e .

For detailed installation instructions, see the Installation Guide.

Quick Start

  1. Load Imagery: File > Open to load an HDF5 imagery file
  2. Navigate: Use playback controls or arrow keys (Left/Right or A/D)
  3. Detect Objects: Algorithms > Detectors to run CFAR or threshold detection
  4. Track Objects: Algorithms > Tracking to link detections into tracks
  5. Export Results: Export tracks/detections to CSV from the Data Manager

For a complete walkthrough, see the Quick Start Guide.

Key Features

  • Multi-frame imagery viewing with playback controls and histogram adjustment
  • Detection algorithms: CFAR and simple threshold detectors
  • Tracking algorithms: Simple, Kalman, Network Flow, and Tracklet trackers
  • Background removal: Temporal median and Robust PCA
  • Sensor calibration: Bias removal, non-uniformity correction
  • Geodetic support: Pixel-to-geodetic coordinate conversion via ARF
  • Manual annotation: Create/edit tracks and detections interactively
  • Feature overlays: AOIs, placemarks, and shapefile import

See the User Guide for detailed feature documentation.

Keyboard Shortcuts

Shortcut Action
Left Arrow / A Previous frame
Right Arrow / D Next frame
CTRL / Z Undo track / detection panel action
Spacebar Play/Pause

Input Data Formats

VISTA uses HDF5 for imagery and CSV for tracks/detections. For format specifications, see:

Programmatic Usage

from vista.app import VistaApp
from vista.imagery.imagery import Imagery
import numpy as np

# Create imagery in memory
images = np.random.rand(10, 256, 256).astype(np.float32)
imagery = Imagery(name="Test", images=images, frames=np.arange(10))

# Launch VISTA
app = VistaApp(imagery=imagery)
app.exec()

See the API Reference for complete programmatic documentation.

Generating Test Data

Create simulated data via the GUI (File > Simulate) or programmatically:

from vista.simulate.simulation import Simulation

sim = Simulation(name="Test", frames=50, rows=256, columns=256)
sim.simulate()
sim.save("test_data")

Building an Executable

Windows:

pyinstaller vista/app.py --onefile -n vista --icon=vista/icons/logo.ico --hidden-import pyqtgraph.graphicsItems.PlotItem.plotConfigTemplate_pyqt6 --hidden-import pyqtgraph.imageview.ImageViewTemplate_pyqt6 --hidden-import pyqtgraph.graphicsItems.ViewBox.axisCtrlTemplate_pyqt6 --add-data="vista/icons*;vista" --add-data="vista/simulate/data*;vista"

macOS/Linux:

pyinstaller vista/app.py --onefile --windowed -n vista --icon=vista/icons/logo.icns --hidden-import pyqtgraph.graphicsItems.PlotItem.plotConfigTemplate_pyqt6 --hidden-import pyqtgraph.imageview.ImageViewTemplate_pyqt6 --hidden-import pyqtgraph.graphicsItems.ViewBox.axisCtrlTemplate_pyqt6 --add-data="vista/icons:vista/icons/" --add-data="vista/simulate/data:vista/simulate/data/"

Contributing

Contributions are welcome! See the Contributing Guide for details.

License

MIT License

Acknowledgments

VISTA uses PyQt6, pyqtgraph, NumPy, pandas, h5py, astropy, scikit-image, scipy, and other open-source libraries.

About

Visual Imagery Software Tool for Analysis

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •