A DASHboard for FITS files
An interface for visualizing large FITS Table data remotely or locally in a dashboard for preliminary analysis of datasets and interactively selecting the data to download.
FIDS makes use of memory buffering of FITS files through AstroPy, subsampling of data to fit into memory through NumPy, visualizing using Flask and React through Dash, and interactive selecting through Numba compiled point-in-polygon algorithms.
Distributed computing through Dask is still being developed to ensure comparable performance and minimal setup is maintained under all circumstances.
This project was developed for internal use at the Institute for Theoretical Astrophysics at the Ruprecht-Karls University Heidelberg. It was open-sourced in hopes that it might kick off further development in the interactive visualization of astronomical data. It is currently dormant as I have moved to focus more on computational plasma physics. If you are interested in contributing, taking over the project, or the approach has inspired you please let me know.
pip install astropy
Installing Plotly.Dash (https://dash.plot.ly/installation)
pip install dash # The core dash backend
pip install dash-renderer # The dash front-end
pip install dash-html-components # HTML components
pip install dash-core-components # Supercharged components
pip install dash-bootstrap-components # Bootstrap components
pip install dash-auth # Authorization component
pip install plotly --upgrade # Plotly graphing library used in examples
pip install numba # JIT Compilation of code
pip install dask # Allow distributed computing
pip install tqdm # Progress bar in setup
Open settings.json and simply point the path to the folder with your data. That's it!
Additionally, there are other parameters to adjust for your applications from visual formatting to the port to run on. However, none of these settings are necessary to adjust in order for FIDS to run besides defining the path to the data.
Just run the FIDS file and wait for the server IP to show up (e.g. 127.0.0.1:80)
python FIDS.py