A standalone native engine reproducing the production generation paths of
tidal-current-grib-generator. It has no Python or wxWidgets runtime
dependency, allowing the eventual OpenCPN catalogue plugin, CLI and tests to
call one implementation.
The native executable also provides a versioned job-file interface intended for the OpenCPN plugin. See docs/JOB_PROTOCOL.md.
Weather generation supports NOAA GFS and HRRR, Met Office UKV, MET Norway's
Nordic forecast, DWD ICON-EU, and ECMWF IFS/AIFS Open Data. Presets are
minimal, routing, marine, and provider-aware all. The latter selects
all fields which the target xGRIB reader can display; it is intentionally not
the upstream provider's unrestricted field inventory.
The engine uses maintained distribution libraries: ecCodes, JsonCpp, NetCDF-C, libcurl, Qhull, bzip2, Blosc, libzip and (for UKV) PROJ.
Arch Linux development packages:
sudo pacman -S cmake gcc eccodes jsoncpp netcdf curl qhull bzip2 blosc libzip projUKV is disabled explicitly if PROJ is unavailable. Other providers continue to build and run.
cmake -S . -B build -DCMAKE_BUILD_TYPE=RelWithDebInfo
cmake --build build -j"$(nproc)"
ctest --test-dir build --output-on-failure
python3 tests/differential_parity.py \
--cpp-cli build/environmental-grib \
--python-repo /path/to/tidal-current-grib-generator./build/environmental-grib generate \
--bbox -7 51.5 -4 55.5 \
--start 2026-07-01T00:00:00Z --hours 6 --step-hours 3 \
--grid-spacing-deg 0.25 --source synthetic --output /tmp/current.grb
./build/environmental-grib prepare-tpxo-cache \
--model-dir /path/to/licensed/tpxo \
--bbox -8 49 -3 56 --grid-spacing-deg 0.05 \
--output /path/to/local-current.tpxocache
./build/environmental-grib generate \
--source tpxo-cache --input-cache /path/to/local-current.tpxocache \
--start 2026-07-01T00:00:00Z --hours 72 --step-hours 1 \
--output /tmp/tidal-current.grb
./build/environmental-grib inspect-grib /tmp/tidal-current.grbCopernicus passwords are accepted through an environment-variable name, never
as a command-line value. See docs/PARITY.md for the exact evidence and safety
gates for each provider.
Copernicus metadata endpoints are discovered from the official Marine client configuration. Downloads use bounded retries and try each advertised or documented CloudFerro catalogue host. The provider selected by the caller is never silently replaced with a different model: if a regional catalogue is not available on a fallback host, the request fails with the attempted-host diagnostics instead of substituting lower-resolution global data.
The provider list also exposes the Copernicus IBI 1/36-degree and Mediterranean 4.2 km hourly surface-current products explicitly. Both contain tidal and non-tidal model processes. IBI is a high-resolution choice for the Irish Sea and North Channel, but its published northern boundary is 56.08 N; it is not equivalent to the wider 1.5 km NWS product.