Skip to content

Register RRFS 2dfld product after NOAA file split - #529

Merged
blaylockbk merged 1 commit into
blaylockbk:mainfrom
jacob1299:fix/rrfs-2dfld-product
Apr 20, 2026
Merged

Register RRFS 2dfld product after NOAA file split#529
blaylockbk merged 1 commit into
blaylockbk:mainfrom
jacob1299:fix/rrfs-2dfld-product

Conversation

@jacob1299

Copy link
Copy Markdown
Contributor

Context

Around 2026-04-16, NOAA began publishing a new 2dfld (2D surface / post-processed fields) product to the RRFS S3 bucket alongside prslev. Both files now appear for every hourly cycle:

rrfs_a/rrfs.20260417/12/rrfs.t12z.2dfld.3km.f001.conus.grib2   (HEAD 200)
rrfs_a/rrfs.20260417/12/rrfs.t12z.prslev.3km.f001.conus.grib2  (HEAD 200)

Same URL shape, same resolution, all non-NA domains (CONUS/AK/HI/PR). Not yet reflected on the AWS registry page, but live in the bucket.

Problem

Herbie(date, model="rrfs", product="2dfld", fxx=0) fails at core.py:_validate():

AssertionError: `product` must be one of {'natlev', 'testbed', 'ififip', 'prslev'}

because rrfs.template() doesn't register the key.

Fix

  • Register "2dfld" in rrfs.PRODUCTS (src/herbie/models/rrfs.py)
  • Mention it in the HELP docstring and the RRFS gallery notebook
  • Add a template-validation test (tests/test_rrfs.py)

No URL logic changes — self.product is already interpolated into the existing filename pattern.

Verification

  • End-to-end: Herbie(datetime(2026, 4, 17, 12), model="rrfs", product="2dfld", fxx=1) now resolves GRIB2 + IDX on AWS
  • pytest tests/test_rrfs.py — 11/11 pass

@jacob1299
jacob1299 marked this pull request as ready for review April 17, 2026 23:12
@blaylockbk
blaylockbk merged commit 8149f7d into blaylockbk:main Apr 20, 2026
9 of 11 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants