https://github.com/kallsyms/stratus
https://github.com/kallsyms/stratus
Last synced: 21 days ago
JSON representation
- Host: GitHub
- URL: https://github.com/kallsyms/stratus
- Owner: kallsyms
- License: apache-2.0
- Created: 2025-01-14T16:52:09.000Z (4 months ago)
- Default Branch: main
- Last Pushed: 2025-03-06T17:01:43.000Z (3 months ago)
- Last Synced: 2025-03-06T17:46:26.168Z (3 months ago)
- Language: Python
- Size: 3.88 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 9
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Stratus - Demo App
## What?
Stratus is a website that aims to fill the gap between sites like [TWC](https://www.weather.com) which give you data, but no source
information, and detailed analysis sites like
[NOAA's analysis/model pages](http://www.spc.noaa.gov/exper/),
[PSU's e-wall](http://mp1.met.psu.edu/~fxg1/ewall.html),
and [pivotal weather](http://www.pivotalweather.com/).It will offer an API to get point data for any given location (ZIP code, lat/lon, etc.), which will return metrics from
all kinds of sources (models like the HRRR, GFS, NAM, etc. as well as observational data like RADAR, CWOP, and soundings).
The primary use of the API is the main site, which gives a high-level overview of current data and a forecast (for day-to-day use),
but also shows the varience in forecast data, with a way to "dig down" to the raw source data.For instance, the website may show a normal 5 day forecast, but each data point (temp, dew point, conditions, etc.) will
be clickable to reveal which each source predicts that data point will be. For example, tomorrows temperature may just be
shown as 50degF, but that temperature metric is clickable to reveal that the HRRR predicts that the temperature will be 49, the GFS says 51, and the NAM says 50.
Each model run is preserved as well (i.e. not just the most recent model run is kept), so users can see trends over time.
In the context of the prior example, the most recent HRRR may say the temp at 12Z is 49, but the HRRR from 2 hours ago might say it's 50, and the HRRR from 12 hours ago might say it's 47.## Why?
This originally existed as a side project made by Nick Gregory:```
I haven't found a website like this, and I think it would be useful both for meteorologists (the API can be easily integrated into other projects), as well
as the average person who is just a bit curious about where their daily forecast really comes from.
```Now it's being utilized as a medium complexity demo application where we show case the different features of the https://bismuth.sh development platform.
# Setup## Dev
To run the app:
```sh
./dev.sh
./wx_explore/common/seed.py
python3 ./wx_explore/app.py
````./dev.sh` will build everything into a docker image, create a postgres db, and drop you into a container.
This container has the repo root mounted to `/opt/wx_explore` so code changes can be made on host and immediately tested in the container.`./seed.py` seeds the database with sources, metrics, and source fields necessary to import data.
## Dev - UI
`cd ./ui/wx_explore` and run `npm start` this should install all node packages and if you're running the development container begin to communicate with the backend.