There two major components to this framework: a server-side component and a client-side component. The server-side component handles all the data processing, which includes time and ensemble aggregation and any necessary unit conversions. This component is written in Python and uses xarray for data processing, and xarray’s integration with cfgrib and netcdf4 facilitates reading GRIB and NetCDF files. After processing, data are stored in Zarr format, a cloud-optimized file format designed for loading chunks of compressed data from a remote machine.
The client-side component is written in Javascript and uses Maplibre to display the data. Natural Earth data are used for the cartography data, and they are processed into a vector tile format using Python along with the cartopy, mapbox_vector_tile and mercantile libraries. The client reads the gridded data from the server using zarr.js, a Javascript library for reading Zarr stores, and it plots them using autumnplot-gl, a Javascript library designed for client-side plotting of meteorological data using the client’s graphics processing unit (GPU). Because both Maplibre and autumnplot-gl use the GPU, the map and data are very responsive and fully interactive, allowing easy roaming to any area and zooming in for more detailed interrogation.
Several forecast evaluation tools have been built at SPC using this framework. These include tools to compare the High-Resolution Rapid Refresh (HRRR) to its proposed replacement, the Rapid Refresh Forecast System (RRFS) and a tool to compare several different AI numerical weather prediction emulators used in the 2024 Hazardous Weather Testbed (HWT) Spring Forecasting Experiment (SFE). More details on the framework and examples of the tools will be presented at the meeting.
- Indicates paper has been withdrawn from meeting
- Indicates an Award Winner