Where the radar is blind INEA Macaé (S-band) beam blockage — from the data and from the terrain

CONVECT / Project Sharktopus · radar property, shared by all three cases · defense-in-depth for the radar DA pipeline

Does the radar have directions where it rains and the radar never sees it? Yes — a wide western arc behind the Serra do Mar, plus a few man-made dead sectors. We pinned them down two independent ways: by reading years of the radar's own echo statistics, and by simulating the beam over the terrain from the radar's exact position.

The INEA Macaé radar sits at −22.405832°, −41.860462°, antenna height 81 m, 1.0° beam, 0.5° lowest sweep, out to 250 km. East of the radar is open ocean (no terrain, no blocking); the blind directions are inland, to the west and north-west.

Two-panel beam-blockage map: geographic cumulative beam-blockage fraction with data-derived dead sectors, and a polar PPI reconciling simulated terrain sectors with the data sectors
Cumulative beam-blockage fraction (CBB) at the 0.5° sweep. Left — geographic, with the data-derived dead sectors as red wedges. Right — polar PPI: orange = simulated terrain blockage, red dashed = persistently dead sectors from the data. Range rings every 60 km to 240 km. Radar at the centre star.

Three azimuth bands are persistently dead in the radar data: 54–71° (NE, over the sea), 254–262° (W) and 279–339° (W→NW→N). Together they blank roughly 19% of the d03 footprint and ~45% of the d04 footprint (audit finding AU5-6). The terrain simulation independently reproduces the western bands — and, honestly, does not reproduce the NE band, which is the tell that NE is man-made clutter, not topography.

Two ways to find a blind spot

ApproachWhat it measuresStrengthBlind to
A · From the data Azimuths that carry no echo across many volumes, regardless of weather (audit AU2-6 / AU5-6). Sees the real blockage — terrain, towers, buildings, near-field obstructions — all at once. Cannot say why a sector is dead.
B · From the terrain Partial/cumulative beam blockage (PBB/CBB) from the beam geometry over a 30 m DEM, 4/3-earth refraction. Says why, and predicts blockage the data have not yet sampled. Reproducible from first principles. A 30 m DEM cannot see man-made obstructions (towers, the near-field, the radome mast).

Approach B is a small in-house calculation (no wradlib/gdal): beam-centre height by the 4/3-earth law, half-power beam width abeam(r)=r·tan(Φ/2) with Φ=1.0°, the Bech (2003) partial-blockage fraction against the terrain height, accumulated along range (CBB = max-so-far of PBB — blockage only gets worse with distance). Terrain comes from the WPS_GEOG DEMs (toporj 30 m → SRTM → GMTED), with a global land/sea mask forcing the ocean to 0 m so regional-DEM edge artefacts cannot invent offshore mountains.

Beam-blockage map at the 1.5 degree sweep — the western blockage shrinks as the beam is tilted up
Same map at the 1.5° sweep. Tilting the beam up lifts it over much of the terrain — the western blockage shrinks but does not vanish. The lowest (0.5°) sweep is the worst case and the one the mask targets.
Beam height versus terrain along three western azimuths, with cumulative blockage fraction rising to 1 within the first tens of km
Beam centre and ±half-power envelope vs terrain along three western azimuths (300°, 320°, 258°). The Serra do Mar drives CBB to 1.0 within the first tens of km — the beam is fully buried beyond it.

Where the two agree — and where they don't

Dead sector (data)Direction Terrain explains it?Reading
54–71°NE, over the sea no — 0% terrain Open ocean under the beam. Man-made clutter / near-field obstruction, not topography.
254–262°W yes — 100% terrain Serra do Mar foothills bury the 0.5° beam within ~10–25 km.
279–339°W → NW → N yes — 100% terrain The mountainous Macaé hinterland; the simulated terrain arc (254°→N→38°) covers this entirely.
The disagreement is the most informative part. The terrain simulation independently confirms the two western dead sectors — the beam is provably buried in the Serra do Mar — but produces no blockage for the NE 54–71° band, because there is only sea in that direction. A 30 m DEM cannot see towers, buildings or the near-field, so a sector that is dead in the data yet open in the terrain simulation is almost certainly an artificial obstruction or ground clutter, not the landscape. This is exactly the kind of cross-check that a single method cannot give you. The western terrain blockage corroborates the independent prior study of Silva, Amorim & Paz (2022), who ran partial beam blockage over a NASADEM for the same radar and found ~100% blockage beyond ~20 km toward the W/NW at the 0.5° elevation (III Encontro Nacional de Desastres, ISSN 2764-9040, IME).

What this means for the data assimilation

A blocked gate sees no echo even when it is pouring rain there. If that "no echo" were assimilated as reflectivity = 0, WRFDA could read it as "no rain here" and dry out the analysis. So the blocked azimuths must be left missing, never written as a zero. The mask file macae_blockage_mask.json makes that exclusion explicit and independent of any quality-control threshold, and it is wired into the ODIM → ob.radar converter via --blockage-mask: every ray in a blocked azimuth is dropped whole, so its gates stay absent rather than becoming false zeros.

Honesty note — this is defense-in-depth, not a bug fix. The C2 audit specifically tested the hypothesis that beam blockage had poisoned the radar analysis, and refuted it (findings AU2-7 / AU4-3): the converter's own quality control (SQI ≥ 0.3) already leaves the blocked sectors absent — a benign gap, not a field of false zeros — and the negative innovation in that case came from real 10–30 dBZ echoes, not from the terrain. The mask therefore does two honest things: it makes the exclusion explicit and threshold-independent, and it protects the verification truth field (about one-fifth of d03 is blind to this radar, so a radar-only "truth" must not be read as ground truth there). On one C2 volume (2024-01-21 01:00 Z), 366 of 1470 radar reports (25%) fell in blocked azimuths and were withheld; the masked ob.radar is a strict subset of the unmasked one — only the report-count header changed, no observation was altered or written as a zero.

Downloads

The map, the WRFDA mask, the drop-in sector list, and the full continuous CBB grid. The sector list is compatible with the existing --blocked-az argument; the NetCDF carries CBB/PBB/terrain/beam-height on the polar grid with full provenance attributes.

Map · PNG WRFDA mask · JSON Dead sectors · CSV CBB grid · NetCDF S-band · 10.70 cm · EEC DWSR-93C · Φ 1.0° · 4/3-earth · DEM toporj 30 m