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
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.
Documentation: https://awetomaton.github.io/VISTA/
Source Code: https://github.com/awetomaton/VISTA
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
- Load or simulate Imagery:
- (a)
File > Opento load an HDF5 imagery file - (b)
File > Simulateto simulate example data
- Navigate: Use playback controls or arrow keys (Left/Right or A/D)
- Detect Objects:
Algorithms > Detectorsto run CFAR or threshold detection - Track Objects:
Algorithms > Trackingto link detections into tracks - 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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ce5211bebdcd42a835b35df5db7fbdaad485975e90b7861f755387d1fa8d05d5
|
|
| MD5 |
439604b2e8e704be2544c2f667e6a278
|
|
| BLAKE2b-256 |
b6ac3c0c2514ad570786458fc4d776c366be7fcde3c6cfb40a6cf039e05e7182
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
722daa57a29660ca0bb93d89e8216abe937b5234cc7cf99194ed52fd46e2132c
|
|
| MD5 |
478dc87e7638aa6ac0567743f368de7a
|
|
| BLAKE2b-256 |
3d648c8e3c8f4492327c40cc5bff765aac1c5e0e034fa3337dc788641099a5c7
|