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

Uploaded Python 3

File details

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

File metadata

  • Download URL: vista_imagery-1.10.3.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.10.3.tar.gz
Algorithm Hash digest
SHA256 ce5211bebdcd42a835b35df5db7fbdaad485975e90b7861f755387d1fa8d05d5
MD5 439604b2e8e704be2544c2f667e6a278
BLAKE2b-256 b6ac3c0c2514ad570786458fc4d776c366be7fcde3c6cfb40a6cf039e05e7182

See more details on using hashes here.

File details

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

File metadata

  • Download URL: vista_imagery-1.10.3-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.10.3-py3-none-any.whl
Algorithm Hash digest
SHA256 722daa57a29660ca0bb93d89e8216abe937b5234cc7cf99194ed52fd46e2132c
MD5 478dc87e7638aa6ac0567743f368de7a
BLAKE2b-256 3d648c8e3c8f4492327c40cc5bff765aac1c5e0e034fa3337dc788641099a5c7

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