Skip to main content

A PyQt6-based desktop application for viewing, analyzing, and managing multi-frame imagery datasets along with associated detection and track overlays

Project description

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 or simulate Imagery:
  • (a) File > Open to load an HDF5 imagery file
  • (b) File > Simulate to simulate example data
  1. Navigate: Use playback controls or arrow keys (Left/Right or A/D)
  2. Detect Objects: Algorithms > Detectors to run CFAR or threshold detection
  3. Track Objects: Algorithms > Tracking to link detections into tracks
  4. 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
  • View frame imagery in image or geodetic space with tile servers to show imagery in geospatial context
  • Background removal: Temporal median, Running sub-space tracker, Robust PCA, GoDec
  • Signal Enhancement: Decimating or running Coaddition
  • Detection algorithms: simple threshold detectors, CFAR, PSTNN
  • Tracking algorithms: Simple, Kalman, Network Flow, and Tracklet trackers
  • Sensor calibration: Bias removal, non-uniformity correction
  • Geodetic support: Pixel-to-geodetic coordinate conversion
  • Manual annotation: Create/edit/label tracks and detections interactively
  • Feature overlays: AOIs, placemarks, and shapefile import

See the User Guide for detailed feature documentation.

App Shortcuts

Shortcut Action
Left Arrow / A Previous frame
Right Arrow / D Next frame
CTRL + Z Undo track / detection panel action
Spacebar Play/Pause
Delete Remove selected sensors, imagery, tracks, detectors, detection points
Drag and Drop on Sensors / Imagery panels Load sensor / imagery data
Drag and Drop on Tracks Panels Load tracks data
Drag and Drop on Detections Panels Load detections data

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.

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

vista_imagery-1.11.0.tar.gz (4.1 MB view details)

Uploaded Source

Built Distribution

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

vista_imagery-1.11.0-py3-none-any.whl (4.2 MB view details)

Uploaded Python 3

File details

Details for the file vista_imagery-1.11.0.tar.gz.

File metadata

  • Download URL: vista_imagery-1.11.0.tar.gz
  • Upload date:
  • Size: 4.1 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.15

File hashes

Hashes for vista_imagery-1.11.0.tar.gz
Algorithm Hash digest
SHA256 3c5046480a677dd027362a7bd35bcde613a41b047fea64a974eda394fdc2de4e
MD5 2dd203d8f700dee9b7fb5ce4bce2a6a2
BLAKE2b-256 9d0352d483d15ba3fd451f79207775a6022c5cadeaadb3d4a81f7b607437ee58

See more details on using hashes here.

File details

Details for the file vista_imagery-1.11.0-py3-none-any.whl.

File metadata

  • Download URL: vista_imagery-1.11.0-py3-none-any.whl
  • Upload date:
  • Size: 4.2 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.15

File hashes

Hashes for vista_imagery-1.11.0-py3-none-any.whl
Algorithm Hash digest
SHA256 777e103b2b6e1111feab7f33db828d5a527ae0da67ed4db7cf9dcd00d9d53b32
MD5 f111158ce50f4ac8433fb1b3abd41db8
BLAKE2b-256 352bf06c8c821c9da4dec24fe77ecfba0eead3c2598a6b8e45066a0bc1bff35a

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