# Running the weather pipeline

## Python

Use `python3`. This workspace does not provide a `python` shim.
After installing dependencies in the project virtual environment, prefer `.venv/bin/python`.

## Required packages

Install:

```bash
python3 -m venv .venv
.venv/bin/pip install -r requirements.txt
```

The pipeline requires these runtime dependencies:

- `requests`
- `numpy`
- `xarray`
- `cfgrib`
- `eccodes`
- `mercantile`
- `mapbox-vector-tile`

## Commands

Run the full pipeline:

```bash
.venv/bin/python src/weather_pipeline.py
```

Run individual steps:

```bash
.venv/bin/python src/gfs_downloader.py
.venv/bin/python src/grid_builder_v2.py
.venv/bin/python src/vector_tile_generator.py
```

Wave fields in the weather tiles come from the downloader and grid builder. If you want `wh`/`wdir`/`wp` to contain real data instead of compatibility zeros from older grid JSON, rerun the downloader before rebuilding grids and tiles.

The weather tile generator now builds `z=2,4,6,8,10,12` by default so wind barb density stays usable after zooming in. If you need a custom set, override with `WEATHER_TILE_ZOOMS`, for example:

```bash
WEATHER_TILE_ZOOMS=2,4,6,8,10,12,14 .venv/bin/python src/vector_tile_generator.py
```

## Known environment blockers in this session

- Network access may prevent `src/gfs_downloader.py` from reaching NOAA.
