NOAA Operational Model Archive and Distribution System

Migration Guide: OpenDAP to Grib Filter

Purpose:

As NOMADS deprecates OpenDAP (DODS) access for major models, users are encouraged to transition to the Grib Filter service for subsetting and downloading data.

Why the change?

The Grib Filter service is more efficient for the NOMADS infrastructure and provides users with standardized GRIB2 files. While OpenDAP uses array-based indexing, Grib Filter uses coordinate-based subsetting (Latitude/Longitude), making it more intuitive for geographic data.

IMPORTANT: Grib Filter returns GRIB2 binary data. The `wgrib2` utility can be run locally if you require ASCII/Text or NetCDF output:
  • https://www.cpc.ncep.noaa.gov/products/wesley/wgrib2/
  • https://www.cpc.ncep.noaa.gov/products/wesley/wgrib2/netcdf.html

Step 1: Convert Indices to Coordinates

OpenDAP uses indices (e.g., [172:360]). Grib Filter requires actual coordinates. For the GFS 0.25° grid, use these formulas:

Latitude Calculation

Lat = 90 - (Index * 0.25)

Index 0 = 90°N, Index 720 = 90°S

Longitude Calculation

Lon = Index * 0.25

Index 0 = 0°E, Index 1439 = 359.75°E

Step 2: Map Variables and Levels

OpenDAP variable names (e.g., prmslmsl) must be split into a Variable and a Level in the Grib Filter URL.

OpenDAP Name Grib Filter Variable Grib Filter Level
prmslmsl var_PRMSL=on lev_mean_sea_level=on
tmp2m var_TMP=on lev_2_m_above_ground=on
ugrd10m var_UGRD=on lev_10_m_above_ground=on

Step 3: Map Time Indices to Forecast Hours

OpenDAP treats time as an index within a single dataset. In Grib Filter, each forecast hour is a separate file. You must identify the Cycle (when the model started) and the Forecast Hour (how far into the future it predicts).

Model Cycle (HH)

The UTC time the model run began.

00, 06, 12, or 18

Forecast Hour (fXXX)

Calculated from the OpenDAP time index

fXXX = Index * Interval

For GFS 0.25°, the forecast interval is typically 1 hour (for early hours) or 3 hours.

Example Mapping (3-hour interval):

  • OpenDAP Index [0:0] → Analysis f000
  • OpenDAP Index [1:1] → 3-Hour Forecast f003
  • OpenDAP Index [2:2] → 6-Hour Forecast f006

Conversion Example (GFS 0.25)


Old OpenDAP Query (ASCII)

wget "https://nomads.ncep.noaa.gov/dods/gfs_0p25/gfsYYYYMMDD/gfs_0p25_HHz.ascii?prmslmsl[2:2][172:360][448:620]"

New Grib Filter Command

wget "https://nomads.ncep.noaa.gov/cgi-bin/filter_gfs_0p25.pl?file=gfs.tHHz.pgrb2.0p25.f006&var_PRMSL=on&lev_mean_sea_level=on&subregion=&leftlon=112&rightlon=155&toplat=47&bottomlat=0&dir=%2Fgfs.YYYYMMDD%2FHH%2Fatmos"


For additional help and documentation, visit the official NOMADS Grib Filter Help Page.


NCEP NOMADS Version 2.3.6, December 2025