Best weather models in one open-source API
Compare NOAA GFS, MeteoFrance Arome, DWD ICON, ECMWF and JMA
Tl;dr: Open-Meteo now offers a simple API to get forecasts from multiple weather models in one call. Try it in our API docs and look for the “Weather Models“ panel (just below hourly weather variables).
NWS weather models
National weather services (NWS) run numerical weather models with the interest of providing reliable weather forecasts for their country.
Typically they consists of a global weather model with one or multiple local weather models. Global weather models predict weather for up to 16 days at a resolution of 11 to 50 kilometres. Local models use a higher 1 to 3 kilometres resolution and predict up to 3 days.
Many NWS offer access to weather forecasts as open-data. Open-Meteo is based on open-data and integrates models from the following NWS:
ICON from Deutscher Wetterdienst (DWD), Germany
GFS from National Oceanic and Atmospheric Administration (NOAA), United States
Arpege & Arome from MeteoFrance, France
MSM & GSM from Japan Meteorological Agency (JMA), Japan
IFS from ECMWF, European Union
Coverage with local models for North America, Europe, North Africa and East Asia is fairly decent. Although not all regions are covered by local models, they are still covered by multiple global models. The map below shows all local models.
Please note, that high resolutions like 1.5 or 2 km do not guarantee higher forecast accuracy. Differences in input weather data “initialisation”, model physics and parameterisation can influence how good a weather forecast is for a given region.
Compare multiple weather models
The weather forecast API from Open-Meteo lists all weather models individually. In the API documentation page you can find a small drop down “Weather models“ (screenshot blow).
For each selected weather model, all available weather variables can be displayed at once. E.g., for temperature and all 5 major NWS weather models, you immediately get a 5 different temperature forecasts. The graph below shows forecasts for Berlin, Germany. For the first days, most weather models predict similar temperatures, except NOAA GFS (green) from the American weather service with roughly 2-3°C higher temperatures.
The available weather models can be grouped in three categories:
Best Match: returns one output, an Open-Meteo combination of multiple weather models. This is used as a default. More on “Best Match“ in the next chapter below.
Mix: for each NWS, the best models are combined in one output. For example, “DWD ICON Mix“ transparently combines the global ICON model with the 2 local ICON models.
Raw models: get raw weather model data, if this model has data at a given location.
In Central Europe, up to 9 weather models are available. The graph below shows a temperature forecast for Paris with raw weather model outputs. Again, GFS (purple) predicts higher temperatures, while the local NWS MeteoFrance predicts the lowest temperatures (red & yellow).
On closer inspection you can notice that some models only display 1, 2, 3, or 4 days of data and suddenly stop. As mentioned above, many high resolution local models only provide short-term weather forecasts.
Naturally, the weather model selection seamlessly works for all weather variables and you can use “Past days“ to get historical forecasts from 1 week or a couple of months ago (for a full 62 years archive, the historical weather API is available).
Looking at the same temperature forecast again for Paris with 7 days of past data, shows how well all weather models converge following more model updates. After 3 days of forecasts, weather models diverge noticeably instead (the red vertical line marks the current time).
Open-Meteo “Best match”
The Open-Meteo weather forecast API hides this complexity and offers just “one” weather forecast.
For any location worldwide, the most suitable weather models are chosen and combined. For North America and East Asia it is an obvious choice as you can see in the map above. For Europe, there is a choice between DWD ICON and MeteoFrance.
Unfortunately, a bit more needs to be considered:
Weather models “crash”. Weather models are just a computer program running on hundreds or thousands of computers. From time to time a weather model run fails and no forecast is calculated. Forecasts older than 12 hours are less accurate.
Models update every 1, 3, or 6 hours. With more updates, weather models constantly “correct” the prediction. With unstable atmospheric conditions, the forecast may switch between thunderstorms and sunny from one update to another. Combining multiple models with different updates could be inconsistent.
Weather models provide different weather variables. All models provide temperature, wind, humidity and clouds. Soil moisture, solar radiation, pressure and upper level variables are sometimes unavailable or use different definitions.
Not all models calculate 7 days forecast. The open-data program from MeteoFrance has only 42 hours of forecast for local models and 4 days for the global ones. A 7 day forecast with just MeteoFrance open-data is not possible.
Weather models divide regions into grid cells at different resolution. Each grid cell has specific properties like elevation, slope, reflectiveness, land and soil type. Combining multiple models induces errors.
With careful consideration of all these limitations, the Open-Meteo API selects multiple models of each weather variable and combines them to offer a “simple” 7 day forecast. Some errors like grid-cell elevation differences can be corrected using a Digital Elevation Model (DEM) with 90 meter resolution and temperature downscaling.
Some inconsistencies like temperature jumps at the point of combining multiple weather models are an accepted trade-off (see image below).
APIs for raw models
Because each NWS offers different weather models with a unique set of weather variables, Open-Meteo offers individual NWS APIs. The documentation of each API explains in more detail the available domains, resolutions, update times and variables.
Open-Meteo’s NWS APIs are linked below:
Some open-data NWS weather models have not yet been integrated. Hopefully the Dutch KNMI API will follow in the next months. Ensuring that each weather model is integrated correctly and updates reliably takes time to get it right.
Additionally, more datasets like ensemble, seasonal or climate forecasts may be included in the near future.
If you would like to get another weather data-set integrated as well, please get in touch!
Make sure to subscribe to the newsletter to get all updates:
Thanks for your answer. Maybe a simple solution for the best match method is to include in the header of the json answer a parameter with the selected model for the best match.
Anyway, thanks for your work!
Congratulations, you are doing a great job. I've been checking the Best match method and is awesome!
Just one question. In the API call, is possible to know which data model is showing the Best match method?