The goal of this project is to combine the accuracy of NWPS with the user interface of Windy.
- The Nearshore Wave Prediction System (NWPS) has high-resolution data and is quite accurate because it uses a sophisticated forecasting model. However, I don't like the user interface; you have to click through individual frames and it is difficult to get numerical values.
- Windy has a great user interface that also displays wind, tides, etc. However, the data doesn't feel very accurate since forecasts don't make much sense between dive sites; why is a 6 ft swell at Breakwater no big deal, but a 6 ft swell at Monastery un-divable?!
-
All wave and tide forecast data comes from NWPS. We make a very similar map showing the wave height in color and wave direction with arrows. We also plot the wave height over time for two dive sites, Breakwater (San Carlos beach) and Monastery beach. This is more similar to Windy's user interface, and is useful for tracking how conditions for a particular site develop over time.
- The website updates daily when data from new NWPS runs are available.
-
We use basemap to render the coastline map.
This is a Python project, and the easiest way to get started is with uv:
uv venv
uv sync
source .venv/bin/activate
To generate the webpage,
python -m wavey
This will create a directory "_site/" which contains the webpage.
We use mypy to perform static type checking and ruff to perform linting and formatting.
mypy .
ruff check .
ruff format --check .