Skip to content

BowEcho v0.33.1

Choose a tag to compare

@github-actions github-actions released this 12 Jul 19:15

BowEcho v0.33.1 — "The Forward Operator Release"

BowEcho v0.33.1 replaces the four principal simulated-radar limitations called
out in v0.33.0 with an opt-in, versioned research path: property-aware
T-matrix dual polarization, frozen-particle orientation, adjacent-scene WRF
sampling, and source-qualified numbered VCP base patterns.

Start here

  • Open Windows > WRF > WRF simulated radar, select Real radar
    (balanced)
    , and build one or more compatible wrfout times. Change the
    controls and use Refresh current frame(s) to iterate without reopening a
    picker.
  • Under the advanced radar controls, Atmosphere time can evolve later rays
    within each timed volume toward the next compatible WRF scene. It does not
    add loop frames, create supplemental low-level scans, or watch a live model
    directory.
  • Use P3/ISHMAEL T-matrix (research) only with native P3 mp_physics
    50-53 or ISHMAEL 55 output that retains the required property variables.
    Thompson mp_physics=8 and conventional WRF files should use the bulk
    recipes.
  • Open Windows > SimSat, choose a WRF or HRRR-native source, start with
    Recommended Display, and use Render to Satellite for a stored frame
    or loop. High Quality Visible and Sensor QA remain explicit alternatives.
  • The in-app Guide now has dedicated WRF/simulated-radar, Formula Lab, and
    SimSat chapters with exact workflows and scientific boundaries.

SimSat v0.1.9 integration

BowEcho now embeds the exact public SimSat v0.1.9 release commit. The existing
extensionless-wrfout picker, cached/automatic HRRR wrfnat acquisition,
source-qualified Satellite loops, native plotter, and PNG export bridge remain
in place, while the pane adopts upstream's reviewed control policy:

  • Recommended Display, High Quality Visible, and Sensor QA quick
    modes, with incompatible products/platforms refused instead of relabeled;
  • Display versus provenance-bearing Sensor Fast Gray intent;
  • model-sphere versus exact GOES-R ABI navigation;
  • CompactU8 v6 versus isolated CPU-only ScienceCloudF16 v7 storage;
  • Effective OD and deterministic 4/8/16 fractional-cloud closures;
  • fixed, NSSL MP18, and HRRR Thompson particle-optics choices;
  • delta-flux v3 and the top-down cloud-radiance footprint; and
  • official FM4/GOES-19 Band 13 response plus the opt-in experimental ABI MTF
    footprint.

After each successful render, the SimSat pane reports the observation operator,
storage profile, automatic intent substitutions, thermal response, footprint,
and science limitations. These notices are not embedded into Satellite-store
frames or PNG metadata. SimSat render choices now persist with BowEcho settings,
while source paths, active jobs, progress, and output remain session-only. The
compact cache advances from SSB v5 to v6, so retained source-backed caches
rebuild once; cached-only old bricks still require their original WRF/HRRR
source.

The v0.1.9 engine also supplies its reviewed low-sun lighting correction:
surface assistance now ramps over 0–12 degrees, water direct light is no longer
artificially day-gated, the display cloud-shadow floor is 0.45, and finite-sun
shadow softening uses angular radius.

Property-aware P3 and ISHMAEL T-matrix radar

The WRF window now includes a sixth first-class recipe, P3/ISHMAEL T-matrix
(research)
. It reads native P3 mp_physics 50–53 and ISHMAEL
mp_physics 55 mass, number, rime, density, liquid-fraction and shape state.
Each active model cell is closed once and evaluated through five exact 2.8 GHz
PyTMatrix 0.3.3 tables:

  • dry oblate frozen particles;
  • dry prolate frozen particles;
  • wet oblate frozen particles;
  • wet prolate frozen particles; and
  • standalone plus unpaired residual rain.

The tables retain nonspherical and non-Rayleigh/resonant Waterman T-matrix
behavior. Frozen particles use a mean-zero Gaussian canting distribution with
a fixed 20-degree standard deviation and deterministic 5 by 10 orientation
integration. Dry ice uses the declared Mätzler dielectric model; wet frozen
particles use symmetric Bruggeman air/ice/water mixing; rain uses the
temperature-dependent Liebe-Hufford-Manabe liquid-water model.

The solver domains are role-specific so one difficult wet-column corner does
not erase valid large-particle coverage elsewhere. The contiguous upper
diameter endpoints are 89 mm for dry oblate, 32.312 mm for dry prolate, 15 mm
for wet oblate and 6.3 mm for wet prolate. The next dry-prolate 36.126 mm node
exposed an unresolved, solver-sensitive KDP resonance, so BowEcho caps the
contiguous domain rather than bridging it. The 719-sample final interpolation
history was development evidence, not a final all-grid validation claim. The
embedded bundle contains 2,640,848 points: 616,000 dry-oblate, 132,160
dry-prolate, 1,017,600 wet-oblate, 864,000 wet-prolate, and 11,088 rain.

The final diameter-only design audit reached its predeclared depth-three bound
without passing. BowEcho retained that failed report, then used finite
arithmetic-midpoint refinement only in the affected diameter cells and
implicated non-diameter intervals; it did not insert held-out coordinates,
extend a domain, loosen thresholds, or reroll the final seed. All five embedded
property tables passed their one frozen held-out check, 30 of 30 nodes.
The shared eight-table report is transparently not an all-eight pass: its only
two misses are in a separate conventional dry-ice research fixture that this
property path does not embed. The held-out report SHA-256 is
82f07bc736f6b5f20c7a59117204b69d97b9cbcb9f915cc54be394b0d8b742ce;
the immutable request SHA-256 is
2b4d143d86aaf78913df165b329ae62f6076e2574f34c1d393b6b9ddd90a45c5.

The v9 ndgs=12 to ndgs=14 convergence report (SHA-256
352e259f02b606ac71579b7d3b4591c3088b41f8e74becd949a27e5721030067)
is reused only for the three byte-identical dry-prolate, wet-oblate, and
wet-prolate configs: 2,013,760 points and 18,123,840 component comparisons.
It does not claim all-node convergence for the refined dry-oblate or rain
configs. The exact scope and table hashes are frozen in
validation/tmatrix/refined_grid_v10_property_bundle_acceptance.json.

This mode is deliberately fail-closed. Frequency, solver, axes, dielectric,
orientation, phase, shape, source-field and whole-file SHA-256 contracts must
all match. BowEcho does not clamp an unsupported particle, extrapolate a LUT,
or silently substitute the bulk Rayleigh kernel. It remains
research_only_unvalidated: characteristic particles are number-scaled, not
a scheme-native PSD integral, and neither the held-out interpolation check nor
same-implementation convergence evidence is independent scientific
validation.

Additive radar physics from cell to loop

The renderer precomputes only active WRF property cells at five radar-view
nodes, then drops the raw property arrays. ZH, ZV, complex covariance, signed
KDP, attenuation and raw fall-speed moments stay additive through vertical and
horizontal interpolation, beam-angle interpolation, pulse-volume integration
and time interpolation. ZDR and rhoHV are derived only after those sums.

Paired liquid is removed exactly once in the wet coexistence branch; any
residual rain number scales with residual mass. Closure-derived fall speeds
replace LUT placeholder moments. Clear cells contribute real zero weight
rather than being renormalized away, and property ZH is the only reflectivity
source in this mode.

The hot path uses one flat parallel-written scattering plane, an O(1) dense
cell-to-row map and an allocation-free eight-cell weighted query. Memory gates
include raw sparse input, the build plane, embedded tables, a retained adjacent
scene, output loops and scratch before the scattering cache is allocated.

Timed atmospheres across WRF files

Timed scans can now interpolate between compatible adjacent WRF scenes instead
of sampling one frozen model instant. Every ray uses its acquisition time and
a bounded interpolation weight. Per-source-cell closure happens before
additive scattering and wind are blended between scenes. BowEcho never
extrapolates past the adjacent forecast time.

Missing or incompatible neighbors use the explicit hold anchor, drop
frame
or stop with error policy. Run/domain/grid/source-field/table
compatibility is checked before two scenes are combined, and the outcome is
written into volume provenance.

Numbered Build 24 VCP base patterns

The simulated-radar scan selector now includes VCP 12, 34, 35, 112, 212 and
215 from the WSR-88D ROC Build 24 Appendix C source. All 94 physical rows are
retained, including repeated split-cut rows, source azimuth rates, periods,
waveforms, moment coverage and PRF codes.

These are source-qualified base-pattern simulations. BowEcho does not invent
PRF hertz values from numbered codes and does not claim SAILS, MRLE, AVSET,
Add-MPDA, site-specific adaptations or a reproduced observed volume.

Guide and provenance

The in-app Guide and docs/wrf-simulated-radar.md now document recipes,
geometry, Build 24 VCPs, timed-scene policies, dual-pol products, propagation,
P3/ISHMAEL closure, material models, orientation, convergence domains, memory,
export and honest scientific boundaries. Generated volumes carry the exact
table IDs and SHA-256 values, solver/orientation/fall policies, source fields,
population accounting, scene identities, temporal outcome and Build 24 source
revision.