Back out wgrib2 PNG/AEC flags + drop MrmsFetchWorker from prod

The previous commit that added -DUSE_PNG=ON -DUSE_AEC=ON to the
wgrib2 cmake invocation broke the image build: wgrib2 3.6.0 turns
find_package(g2c 1.9.0 REQUIRED) on when those flags are enabled,
and NCEPLIBS-g2c isn't installed in the wgrib2-builder stage.

Revert to the stock wgrib2 cmake config so CI is green again and
pull MrmsFetchWorker out of the prod cron instead. Without the
PNG decoder the worker can't read MRMS PrecipRate (GRIB2 DRT
5.41) and was logging "packing type 41 not supported" every two
minutes. AsosAdjustmentWorker's MRMS path already handles an
empty cache gracefully — the ASOS nudge still runs, it just
drops the live radar overlay.

Re-add MrmsFetchWorker once the Dockerfile installs NCEPLIBS-g2c
and rebuilds wgrib2 with PNG/AEC support.
This commit is contained in:
Graham McIntire 2026-04-14 10:44:00 -05:00
parent 8672ddbafc
commit a950fe4d93
No known key found for this signature in database
GPG key ID: F4ABF488E6029E59
2 changed files with 12 additions and 5 deletions

View file

@ -31,13 +31,17 @@ RUN apt-get update \
WORKDIR /tmp/wgrib2
## NOTE: wgrib2 3.6.0 enabling -DUSE_PNG / -DUSE_AEC triggers a hard
## find_package(g2c 1.9.0 REQUIRED) for NCEPLIBS-g2c, which isn't
## installed here. Until that's addressed, the stock build stays —
## MRMS PrecipRate (packing type 41) can't be decoded, so
## MrmsFetchWorker is kept out of the prod cron.
RUN wget -q --content-disposition "https://github.com/NOAA-EMC/wgrib2/archive/refs/tags/v${WGRIB2_VERSION}.tar.gz" \
-O wgrib2.tar.gz \
&& tar xzf wgrib2.tar.gz \
&& cd wgrib2-${WGRIB2_VERSION} \
&& mkdir build && cd build \
&& cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local -DCMAKE_BUILD_TYPE=Release \
-DUSE_PNG=ON -DUSE_AEC=ON \
&& make -j$(nproc) \
&& make install \
&& strip /usr/local/bin/wgrib2

View file

@ -215,10 +215,13 @@ if config_env() == :prod do
# Hourly cron caused overlapping/failed runs because one full sweep
# exceeds a 60-minute window.
{"5 */3 * * *", Microwaveprop.Workers.PropagationGridWorker},
# MRMS refreshes the PrecipRate cache that AsosAdjustmentWorker
# overlays onto the score grid. Both must run together — an ASOS
# nudge without a fresh MRMS frame reverts to HRRR-only rain.
{"*/2 * * * *", Microwaveprop.Workers.MrmsFetchWorker},
# MrmsFetchWorker is intentionally absent: the prod wgrib2 build
# doesn't have the PNG decoder (DRT 5.41) that MRMS PrecipRate
# uses, so every fetch failed with "packing type 41 not
# supported". AsosAdjustmentWorker gracefully handles an empty
# MRMS cache — the rain overlay is a nice-to-have, the ASOS
# nudge still runs on its own. Re-add once the Dockerfile
# installs NCEPLIBS-g2c + rebuilds wgrib2 with -DUSE_PNG=ON.
{"*/10 * * * *", Microwaveprop.Workers.AsosAdjustmentWorker},
{"*/15 * * * *", Microwaveprop.Workers.PropagationPruneWorker},
{"*/30 * * * *", Microwaveprop.Workers.BackfillEnqueueWorker,