Weather data workflows often fail for ordinary reasons: inconsistent variable names, shifted coordinates, missing hours, unit mismatches, or normalization that leaks information across train and validation splits. For machine-learning experiments, the data path matters as much as the model file.
Workflow Shape
A clean HRRR-style workflow usually needs to make these decisions explicit:
- Choose variables before downloading or indexing files.
- Generate a manifest so every sample can be reproduced.
- Validate coordinates, units, timestamps, and missing values.
- Split data before fitting normalization statistics.
- Export tensors and metadata together, not as disconnected artifacts.
Minimal Pseudocode
import xarray as xr
dataset = xr.open_dataset("sample-hrrr-file.nc")
subset = dataset[["temperature", "wind_speed"]]
window = subset.sel(time=slice("2024-01-01", "2024-01-07"))
Checks That Save Time
- Confirm that the grid orientation matches the model assumptions.
- Store normalization values with the run configuration.
- Keep file paths out of the model code.
- Test the smallest possible manifest before launching a long training job.
These are not benchmark results. They are engineering habits that make weather-ML experiments easier to debug, rerun, and compare.