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.10.2.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.10.2-py3-none-any.whl (4.2 MB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for vista_imagery-1.10.2.tar.gz
Algorithm Hash digest
SHA256 807c30ca0a6d968516596f9a4b539dd48f4b877345d8432dfa3eb2f2d5db10c9
MD5 b89943ab4c6798a79b393aff608ae110
BLAKE2b-256 f9b1c752595f8f69410c5e71aac7a7fb62a1fc8b760776e2696bb49b5fcee40b

See more details on using hashes here.

File details

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

File metadata

  • Download URL: vista_imagery-1.10.2-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.14

File hashes

Hashes for vista_imagery-1.10.2-py3-none-any.whl
Algorithm Hash digest
SHA256 6b997959727813af17cdcd197dbfb3dd43c882d0f11d0a85920dee92bbff50e2
MD5 0369578a74bad245d3e9f0d4210f5c92
BLAKE2b-256 4d0363f5bc30044e18c777428ff622ae8c0487e543c53b49fcc0b3d34b5535de

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