Stingray Explorer
1. Project Summary
This proposal outlines the development of an innovative dashboard utilizing the Stingray library for X-ray astronomy analysis. The Quicklook Dashboard aims to facilitate the exploration of astronomical data by providing interactive tools for the visualization of light curves, periodograms, spectral colors etc. This project would make it much simpler for astronomers to focus on the problem at hand and reading the results of the data analysis techniques (of Stingray) and not go on to input one command after another. It would reduce the time invested in making the analysis work and even who are novice to command line tools to gain the benefits of Stingray. The proposed solution involves creating a web-based dashboard that streamlines the process of data visualization and analysis. The dashboard will have predefined (parameter can be edited by users) functions that users can choose to analyse the data and get the required plots in the dashboard itself. The aim is also to educate novice users/ UG-PG students to get to know about how the analysis is being done. Technologies used are: python, flask, bokeh, holoviz, HTML/TailwindCSS, vanillaJS/React.JS If time permits, the project is open to make it the start for an interactive analysis interface.
Technologies
python
CSS
Stingray API
Holoviz ecosystem
HoloViews
Hvplot
Panel
Datashader
Topics
data visualization
X-ray Analysis
Interactive Plots
Dashboard for Stingray
2. What I Did
Developed Modules for QuickLook Analysis:
Implemented modules for generating and visualising light curves, power spectra, cross-spectra, and averaged power and cross-spectra.
Created interactive widgets for parameter selection (e.g., dt, normalisation, segment size).
Integrated Stingray functions for data processing with HoloViews and Panel for visualisation.
Interactive Dashboard:
Designed a sidebar for easy navigation between different analysis tools.
Implemented floating panels to allow for flexible and customisable visual outputs.
Developed functionality for combining plots and displaying them in a unified view.
Error Handling and User Feedback:
Added robust error handling to provide clear feedback when invalid parameters are chosen.
Ensured that users are informed about the success or failure of operations through the output box.
Built with Stingray:
Utilised Stingray’s core functionalities for creating light curves and power spectra.
Home Page of the Dashboard
Some more pictures of the current dashboard
3. Current State
Completed Modules:
Light Curve Analysis
Power Spectrum Analysis
Cross-Spectrum Analysis
Averaged Power Spectrum Analysis
Averaged Cross-Spectrum Analysis
Features:
Real-time interactive data analysis with Stingray.
Floating panels for modular and flexible visualisation and are saved across layouts
Robust error handling and user feedback mechanisms.
All the containers are completely flexible and can be moved around or go fullscreen
The containers rearrangement saves state and can be reset with the reset button
Bokeh plots allow all the usual panning, zooming functionality
Warning handling and output boxes in each layout
4. Project Repository:
The code is available on GitHub, where all the modules are documented and can be extended by the community.
The demo of the dashboard is also deployed at Hugging Face for new users to try out before installing locally.
5. What's Left to Do
Enhance Visualisation Customisation:
Add more customisation options for plots (e.g., color schemes, plot styles).
Additional Features:
Implement advanced spectral analysis tools.
Add more Fourier Methods for QuickLook
And then pave the way for a complete comprehensive analysis solution
Documentation and Tutorials:
Develop comprehensive user documentation.
Create video tutorials to help new users get started.
Develop unit tests to make the code more maintainable
Not only the documentation and help sections, add the actual science process behind the analysis in the dashboard itself
6. Favourite part of GSOC
Favourite part was meeting all the mentors weekly and discussing all about the project and the nitty gritty details one is facing during the project. They are literally experts in the field and give apt guidance and clarity that I needed. Because when you are facing bugs everyday and struggling with the implementation, an expert outer perspective helps a ton. Also, the Stingray Project I was working on, my mentor was one of the creators for it. So ofc I could ask for any help that I needed.
7. Most challenging part of GSOC
The most challenging part was the first weeks, when I just starting with the documentation because you know nothing about the codebase, you are literally trying to understand it for the very first time. You don't yet know that you will get to understand everything and would you be able to implement what you had planned, it's a mystery. It's confusing but when you get out of that phase it becomes much easier and you gain momentum.
8. How GSOC improved my skills
It's one thing to learn about buzz words like OOP and declarative programming in theory but another to actually implementing them in practice. I actually gained real world experience on how to make deployment ready software. What are the good practices that one should follow! What all things one needs to learn about when working in big orgs? How they interact and what the hierarchy of structure is. I also got really good at reading through code and getting to the exact point that I needed.
9. Advice for future contributors
I would strongly recommend everyone to try for GSOC. And even if they didn't get in, at least try to work in an open source project. The amount of things you can learn working in such projects is phenomenal. And no courses and youtube videos would teach you that. Also don't do it for the sake of doing it. If you really like the project then only go for it. Because if you don't really like the project then you will quickly lose interest.