SolarViewer - A comprehensive tool for visualizing and analyzing solar radio images
Project description
๐ SolarViewer
A comprehensive Python toolkit for visualizing and analyzing solar radio images
Features โข Installation โข Quick Start โข CLI โข Documentation โข Contributing
โจ Features
SolarViewer is a feature-rich desktop application designed for solar physics research. It supports FITS and CASA image formats with specialized tools for radio astronomy.
๐ญ Multiple Viewer Modes
| Viewer | Description |
|---|---|
| Standard Viewer | Full-featured multi-tab interface with comprehensive analysis tools, including helioprojective coordinate support |
| Napari Viewer | Lightweight, fast viewer for quick visualization |
๐ Analysis & Visualization
- Statistical Analysis โ Detailed statistics for images and selected regions
- 2D Gaussian Fitting โ Fit Gaussian profiles to radio sources
- Elliptical Ring Fitting โ Model ring-shaped emission features
- Region Selection โ Rectangle and ellipse tools for region-of-interest analysis
- Multiple Colormaps โ Choose from scientific colormaps with linear, log, sqrt, and custom stretches
- Stokes Parameters โ Full polarization support (I, Q, U, V, L, Lfrac, Vfrac, PANG)
๐ Data Access & Downloads
- Remote Access (SSH/SFTP) โ Browse and open files directly from remote servers with local caching
- Helioviewer Browser โ Browse and download images from NASA's Helioviewer API with time-series playback
- Solar Data Downloader โ Download data from SDO/AIA, IRIS, SOHO, GOES SUVI, STEREO, and GONG
- Radio Data Downloader โ Access solar radio observation archives
- Solar Activity Viewer โ Browse solar events (flares, CMEs, active regions) with real-time data
๐ฌ Video Creation
- Time-lapse Videos โ Create MP4 videos from image sequences
- Contour Overlays โ Overlay radio contours on EUV/optical base images
- Custom Annotations โ Add timestamps, colorbars, and min/max plots
- Preview Mode โ Real-time preview before rendering
๐ง Advanced Tools
- Log Console โ Internal console to view application logs and debugging information
- LOFAR/SIMPL Support โ Calibration table visualizer, dynamic spectra viewer, pipeline log viewer
- Coordinate Transformations โ Convert between RA/Dec and helioprojective coordinates
- Phase Center Tool โ Shift image phase centers for radio interferometry data
- Export Options โ Export to FITS, CASA image, PNG, and region files
๐ฆ Installation
Prerequisites
- Python 3.9 or higher
- pip package manager
- CASA data directory: The
~/.casa/datafolder must exist for CASA to work properly. Create it with:mkdir -p ~/.casa/data
Note: No other manual installation is required โ all dependencies are installed automatically via pip.
Recommended: Virtual Environment
It is highly recommended to install SolarViewer in a virtual environment to avoid conflicts with system packages.
# Create a virtual environment
python3 -m venv ~/.sv
# Activate the environment
source ~/.sv/bin/activate
Once the virtual environment is active, proceed with the installation below.
๐ก Pro Tip: After running sv --install (see Desktop Integration below), you won't need to manually activate the environment to launch the application!
Install from PyPI
pip install solarviewer
Install from Source
git clone https://github.com/dey-soham/solarviewer.git
cd solarviewer
pip install -e .
Desktop Integration
After installation, you can create a desktop entry and icon (Linux) or an application bundle (macOS) to launch SolarViewer from your application menu:
# Install desktop shortcuts and icons
solarviewer --install
# or
sv --install
To remove the desktop integration later:
solarviewer --uninstall
Dependencies
View core dependencies
| Package | Version | Purpose |
|---|---|---|
| PyQt5 | โฅ5.15.0 | GUI framework |
| matplotlib | โฅ3.5.0 | Plotting and visualization |
| numpy | โฅ1.20.0 | Numerical operations |
| astropy | โฅ5.0.0 | FITS handling, coordinates |
| scipy | โฅ1.7.0 | Scientific computing |
| sunpy | โฅ5.0.0 | Solar physics tools |
| casatools | โฅ6.4.0 | CASA image support |
| casatasks | โฅ6.4.0 | CASA tasks |
| napari | โฅ0.4.16 | Fast image viewer |
๐ Quick Start
Launch the Viewer
# Standard viewer
solarviewer
# or
sv
# Open a specific file
solarviewer path/to/image.fits
# Fast Napari viewer
solarviewer -f path/to/image.fits
LOFAR Tools
viewcaltable # Calibration table visualizer
viewds # Dynamic spectra viewer
viewlogs # Pipeline log viewer
Other Tools
viewsolaractivity # Solar events browser
heliobrowser # Helioviewer browser
๐ป Command Line Interface
Standard Viewer (solarviewer / sv)
solarviewer [OPTIONS] [IMAGEFILE]
Options:
-f, --fast Launch fast Napari viewer
--install Install desktop integration
--uninstall Uninstall desktop integration
--light Start with light theme
-v, --version Show version and exit
-h, --help Show help message
๐ Documentation
User Interface Overview
Standard Viewer Controls
File Controls
- Open Directory โ Load a folder of solar radio images
- Open FITS File โ Load a single FITS file
- Export Figure โ Save current view as image
- Export as FITS โ Export data as FITS file
Display Controls
- Colormap โ Choose visualization colormap
- Stretch โ Linear, log, sqrt, power-law options
- Gamma โ Adjust power-law exponent
- Min/Max โ Manual or auto display range
Region Tools
- Rectangle/Ellipse Selection โ Select regions for analysis
- Export Region โ Save as CASA region file
- Export Sub-image โ Extract region as new image
Analysis Tools
- Fit 2D Gaussian โ Gaussian source fitting
- Fit Elliptical Ring โ Ring model fitting
- Image Statistics โ Full image statistics
- Region Statistics โ Selected region statistics
๐๏ธ Project Structure
solarviewer/
โโโ solar_radio_image_viewer/
โ โโโ main.py # Entry point
โ โโโ install_utils.py # Desktop integration (install/uninstall)
โ โโโ viewer.py # Standard viewer
โ โโโ assets/ # Icons and resources
โ โโโ helioprojective.py # Coordinate conversions
โ โโโ helioprojective_viewer.py
โ โโโ helioviewer_browser.py # Helioviewer API browser
โ โโโ napari_viewer.py # Fast viewer
โ โโโ video_dialog.py # Video creation UI
โ โโโ create_video.py # Video rendering
โ โโโ video_utils.py # Video utilities
โ โโโ noaa_events/ # Solar events browser
โ โโโ solar_data_downloader/ # SDO/AIA, IRIS, etc.
โ โโโ radio_data_downloader/ # Radio data archives
โ โโโ solar_context/ # Real-time solar data
โ โโโ remote/ # Remote file access (SSH/SFTP)
โ โโโ from_simpl/ # LOFAR/SIMPL tools
โ โโโ learmonth-py/ # Learmonth data downloader
โ โโโ move_phasecenter.py # Phase center correction tool
โ โโโ tutorial.py # Tutorial
โ โโโ dialogs.py # Application dialogs
โ โโโ splash.py # Splash screen
โ โโโ log_console.py # Internal log viewer
โ โโโ searchable_combobox.py # Custom combobox widget
โ โโโ norms.py # Image normalization
โ โโโ utils.py # Utility functions
โ โโโ utils/ # Additional utilities (updater, limiter)
โ โโโ version.py # Version information
โ โโโ styles.py # UI themes (light/dark)
โโโ resources/ # Desktop integration resources
โโโ setup.py
โโโ requirements.txt
โโโ README.md
โโโ LICENSE
โโโ RELEASE_NOTES.md
๐ค Contributing
Contributions are welcome! Whether you're fixing bugs, adding features, or improving documentation, we appreciate your help.
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
๐ License
This project is licensed under the MIT License โ see the LICENSE file for details.
๐ Acknowledgments
This project builds on the excellent work of the solar physics and radio astronomy communities:
Core Libraries
- SunPy โ Solar physics data analysis in Python
- Astropy โ Core astronomy library for FITS, coordinates, and units
- CASA โ Common Astronomy Software Applications for radio astronomy
- Napari โ Fast n-dimensional image viewer
GUI & Visualization
- PyQt5 โ Python bindings for Qt GUI framework
- Matplotlib โ Publication-quality plotting
- NumPy โ Fundamental package for scientific computing
- SciPy โ Scientific algorithms and mathematics
Data Sources & APIs
- Helioviewer โ NASA/ESA solar image browser and API
- SolarMonitor โ Real-time solar activity monitoring
- NOAA SWPC โ Space Weather Prediction Center solar event data
- SDO/AIA โ Solar Dynamics Observatory
- JSOC โ Joint Science Operations Center for SDO data
- VSO โ Virtual Solar Observatory
Community
- The solar physics group at the National Centre for Radio Astrophysics for feedback and testing
๐จโ๐ป Author
Soham Dey โ sohamd943@gmail.com โ @dey-soham
Built with โค๏ธ for solar physics research
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 solarviewer-1.2.0.tar.gz.
File metadata
- Download URL: solarviewer-1.2.0.tar.gz
- Upload date:
- Size: 2.2 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
25577286a94a08defffef339696d638474031241dd0c2f9f1fc7530728f712ce
|
|
| MD5 |
8a6f9fc34f514b62a974ecc32ef977d7
|
|
| BLAKE2b-256 |
227942e12539bd3ee205de3c776302a62d5de93e8f067c12d8b7224c62907b69
|
File details
Details for the file solarviewer-1.2.0-py3-none-any.whl.
File metadata
- Download URL: solarviewer-1.2.0-py3-none-any.whl
- Upload date:
- Size: 2.2 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
dab15823277b5442075b60fb9cef192682fc8e2955e36be34919caf799e0b420
|
|
| MD5 |
d0c9f288ba69168b8268539874036193
|
|
| BLAKE2b-256 |
7e211fd840a5f35bf6c178a0f4b06e51240985e451fd6b750023324c04754e77
|