3DVisSys, or 3D Visualization System, is free open-source software for examining NOAA MRMS precipitation and reflectivity data with 3D interactive visualizations directly in the browser. It features a web application to load and interact with visualizations, as well as backend data pipelines that create those visualizations on a schedule. It was primarily built with Python 3.9, Flask and Plotly as part of a cisess.umd.edu summer internship.
A live version of 3DVisSys is being deployed soon!
For users who want to view and interact with visualizations, running in one's local environment can be done by installing all requirements and running the Flask app:
-
Install all requirements:
- For Conda users:
- (OPTIONAL) If you have previously installed this environment, go back to the base environment with
conda activateand remove the previous installationconda remove --name 3dvissys --all. - Run
conda env create -f environment.ymland switch into the new environment withconda activate 3dvissys.
- (OPTIONAL) If you have previously installed this environment, go back to the base environment with
- Pip users: Run
pip install -r requirements.txt.
- For Conda users:
-
Switch into the app directory and run the app:
- From the root directory, run
cd app. - Run
flask run.
- From the root directory, run
For users who want to try creating their own visualizations, running in one's local environment can be done by installing all requirements and running the server directory:
-
Install all requirements:
- For Conda users:
- If you have previously installed this environment, go back to the base environment with
conda activateand remove the previous installationconda remove --name 3dvissys --all. - Run
conda env create -f environment.ymland switch into the new environment.
- If you have previously installed this environment, go back to the base environment with
- For Pip users: Run
pip install -r requirements.txt.
- For Conda users:
-
Switch into the server directory and run the server:
- From the root directory, run
cd server. - Run
python scripts.pyto create graphs for the current time. Users may also want to use cronjob or another scheduler to run the file at certain times. An example crontab used in development to run the script hourly can be found inserver/cronjob.txt.
- From the root directory, run
3DVisSys was primarily built with the following technologies:
- Python
- Flask
- Flask-MonitoringDashboard
- Pandas
- NumPy
- SciPy
- Plotly
- BeautifulSoup
- Flask
- HTML
- CSS
- Bootstrap
- Bootstrap Tempus Dominus Widget
- Bootstrap
- JavaScript
- React.js
- Linux (High-Performance Computing Server)
A more detailed view can be found in either environment.yml or requirements.txt.