Skip to content

BowEcho v0.33.3 "Repeating Of Course"

Choose a tag to compare

@FahrenheitResearch FahrenheitResearch released this 14 Jul 04:52

BowEcho v0.33.3 "Repeating Of Course"

This release makes native CM1 output a first-class workflow, adds ordered CM1
radar loops and box-mean model soundings, introduces the recommended audited
P3 Hybrid research preset, expands SimSat's geostationary viewpoints, and
tightens several everyday radar, satellite, WoFS, and WRF workflows.

First-class native CM1

Windows > CM1 now inventories CM1 directly instead of routing its files
through the WRF reader.

  • Modern r20.3+, legacy r18/r19, and legacy COARDS NetCDF topologies are
    recognized. Complete domains are accepted, one-file MPI tiles are identified
    as requiring assembly, and unsupported dimensions are reported rather than
    guessed.
  • Large NetCDF4/HDF5 output is inspected with targeted coordinate reads instead
    of enumerating every root dataset. This path was exercised against a valid
    14.1 GB, 21-record cm1r21.1 output that exceeds the reader's safe
    full-array enumeration ceiling.
  • Native 2-D and 3-D scalar fields enter Models with provenance. Arakawa-C u,
    v, and w are averaged from their documented faces onto the scalar grid,
    and multi-record model fields retain the official elapsed-time order.
  • Placement remains explicit. Follow domain anchors a moving domain;
    Fixed world is available only with exact source positions, including
    matching cm1out_diag_XXXXXX.nc records. BowEcho does not invent a map
    projection or integrate umove/vmove into guessed geolocation.
  • Native columns and a stricter meteorological-readiness panel expose pressure,
    temperature, dewpoint, height, and winds only when the required unit-bearing
    fields are present. CM1's default thermodynamic constants are an explicit
    opt-in, and model height is not silently relabeled as MSL.

A radar-ready complete domain can now build scalar native REF/VEL for one
record or All N records (ordered loop). Completed volumes are installed in
exact CM1 valid-time order, while BowEcho reads and releases one native scene
at a time. The selected record's first completed tilt can open before the rest
of the job finishes.

The CM1 radar adapter remains intentionally narrow: it is CPU-only, samples
native 3-D dbz and winds from one frozen record per radar frame, uses the
explicitly placed domain center and standard 4/3-Earth geometry, and does not
interpolate between records. It does not assemble MPI tiles, combine a folder
of one-record files, extrude 2-D cref, recompute reflectivity, run the WRF
bulk or P3/ISHMAEL operators, or synthesize dual-pol products.

See docs/cm1-guide.md for supported fields, placement rules, and a practical
walkthrough.

P3/ISHMAEL research radar

P3 Hybrid - recommended is the new practical property-aware preset. It
uses the native P3/ISHMAEL PSD T-matrix route where the complete cell, source
state, and exact tables are supported. Only explicitly classified table/shape
omissions and the typed WRF 2-micrometer source-state mass gap rebuild the
whole affected cell with versioned bulk Rayleigh v1. The selected policy and
native/fallback cell and population counts are retained in output provenance.

Full P3/ISHMAEL T-matrix (experimental) remains available as the strict
research mode. It fails closed on an unsupported scheme, source field,
particle state, frequency, geometry, or table coordinate and never silently
substitutes Rayleigh. Both modes remain research-only, are not independently
validated for operational use, and are not calibration claims.

The scheme-native path also closes a set of real-fixture edge cases involving
ISHMAEL source final checks, QNSMALL handling before geometry, density and
material-state projection, number/mass/fall-moment preservation, disjoint PSD
support, the exact small-sphere table floor, adaptive PSD integration, and rain
number normalization. A full MP55/ISHMAEL acceptance run passed. The completed
MP50/P3 full-run result was unavailable, so this release intentionally makes no
full MP50-pass claim.

CUDA request pipeline

Supported NVIDIA execution now prepares bounded gate groups on the CPU,
submits stable role sweeps, preserves source order, and reuses geometry,
role-sweep storage, and CUDA worker scratch. If a CUDA batch fails, the entire
prepared group replays on the scalar CPU path instead of publishing a mixture
of GPU and CPU answers. Cancellation remains bounded.

In one RTX 5090 request/LUT-kernel microbenchmark with 1,024 center gates,
three populations per gate, and 32 admitted nodes per population, service
requests fell from 3,072 to 32 (96x) and the measured interval fell from
47.979688 s to 0.505017 s (95.006x), with exact component-bit CPU/GPU parity.
This is not an end-to-end radar-volume speed claim: file I/O, interpolation,
admission and closure, rain/bridge work, ray sampling, propagation, and
rendering remain outside that measurement.

Area-mean box soundings

Models now includes a Box sounding field tool. Arm it, drag a rectangle on
the radar map, and BowEcho builds the result asynchronously in the existing
Sounding pane with a BOX-MEAN SOUNDING header and aggregation details.

The calculation selects native grid cells whose latitude/longitude centers
fall inside the box, takes an arithmetic mean of stored temperature, moisture,
wind, height, and surface primitives over a common finite-cell mask at each
pressure level, and derives sounding diagnostics afterward. It reports the
requested and sampled bounds, clipping, selected/surface/level cell counts,
usable levels, and any approximate-surface use. This is a grid-cell arithmetic
mean, not an area-weighted remap or a mean of already-derived parcel
diagnostics.

SimSat v0.2.1 and the MTG-I1 viewpoint

The embedded SimSat engine, including BowEcho's MTG-I1 camera integration, is
pinned exactly at
fd2b8f48e904342bc81bd003503ad0f4e27c5596.

  • Surface illumination no longer applies a second unintended limb-darkening
    factor. Recommended uses the reviewed 1.10 surface-only ground lift and
    independently gated twilight terrain recovery; CPU output and GPU preview
    use the same post-light formulas.
  • CIMSS Style is the recommended Band-13 presentation. Explicit IR/WV
    product selection applies it without overwriting an explicitly saved palette
    on later startup; NOAA-heritage grayscale remains available.
  • Existing v0.2.0 pane state migrates without changing its rendered appearance;
    applying Recommended is the deliberate opt-in to the new calibration.

Geostationary rendering now offers MTG-I1 / Meteosat-12 (0 degrees) for
European and African domains. This is an honest camera/viewpoint preset using
SimSat's existing visible, generic 10.3-micrometer IR, and water-vapor physics.
It uses SimSat's model-sphere navigation; GOES-only Sensor QA, footprint, and
exact fixed-grid controls remain unavailable. It does not apply Flexible
Combined Imager spectral responses or point-spread functions and does not
claim FCI-equivalent radiometry.

Loop loading and export clarity

  • The persisted control beside Load Loop is now labeled Frames to load
    in the Site panel, Unified Player, archive controls, and Loop settings. It
    controls how many recent radar scans the next load fetches and retains, up to
    2,000 subject to the configured RAM budget.
  • Loop settings now separate Loop loading, Playback, and Video & GIF
    export
    . Export settings record frames that are already loaded; they do not
    change the radar fetch count.
  • Empty-loop help now points directly to Frames to load and Load Loop.

Satellite and WoFS reliability

  • The Satellite pane reserves a practical preview area in short or docked
    windows instead of collapsing a healthy full-resolution frame into a tiny
    dark thumbnail.
  • A satellite map view with no visible source pixels now says whether the view
    is outside coverage or transparent, rather than looking like a broken black
    layer.
  • Live GOES follow selects the run that was just written, and saved runs are
    ordered by their actual frame times so an old SimSat run cannot mask a
    healthy live ingest.
  • WoFS preserves every initialization as its exact YYYYMMDDHHMM token. An
    initialization that crosses UTC midnight now uses its own date for imagery,
    sounding, hierarchy, and georeference requests.
  • A WoFS map drape continues loading and following radar time after its control
    window closes. The viewer also distinguishes a frame that is still loading
    from one unavailable at the source.

WRF workflow fixes

Extract namelist... in Windows > WRF reconstructs the recoverable part
of one raw wrfout as namelist.reconstructed.input. Exact globals that map
safely back to the represented domain become active assignments; exact context
that is unsafe as namelist syntax and structure-derived dimensions remain
comments; unrecoverable settings are called out explicitly. The file identifies
its source and warns that it is partial, is not the original namelist.input,
and cannot reproduce the run.

Local WRF imports now include the dNN domain in their run identity. A folder
that mixes domains is rejected before writing, preventing same-time d02/d03
files from sharing one stored grid run.