Problem
aggregate_swot_observations reads from SWOT RiverSP parquet files only. Type=3 (lake_on_river) reaches have 13-54% observation coverage vs 97-99% for type=1 rivers, because lake reach measurements in RiverSP are mostly sentinel values (-1e12) that get filtered out by quality gates.
Coverage by type (current)
| Type |
Description |
Coverage |
| 1 |
River |
97-99% |
| 3 |
Lake on river |
13-54% |
| 4 |
Dam |
80-90% |
| 5 |
Unreliable |
95-99% |
| 6 |
Ghost |
0% (correct) |
Type=3 detail by region
| Region |
Total type=3 |
With obs |
% |
| AF |
1,551 |
318 |
20.5% |
| AS |
7,631 |
1,896 |
24.8% |
| EU |
4,159 |
888 |
21.4% |
| NA |
9,194 |
1,248 |
13.6% |
| OC |
808 |
436 |
54.0% |
| SA |
3,485 |
521 |
14.9% |
Root cause
- SWOT publishes lake observations in the LakeSP product, not RiverSP
- Type=3 reach_ids DO appear in RiverSP parquet files (6,551 of 9,194 NA type=3), but river-specific fields (slope, width) are mostly sentinels
- Our quality filters correctly reject these sentinel values → NULL obs stats for most lake reaches
Proposed fix
Integrate SWOT LakeSP parquet data for type=3 reaches:
- Acquire LakeSP parquet files (same source as RiverSP)
- Map LakeSP observations to SWORD reach_ids (lake_id → reach_id mapping needed)
- Aggregate WSE stats from LakeSP (slope/width may not apply the same way for lakes)
- Mark data source in a new column or in
slope_obs_quality so downstream users know which product the stats came from
Notes
swot_obs (max passes per 21-day cycle) is >0 for most type=3 reaches — SWOT CAN observe them, we just aren't reading the right product
- This does NOT affect type=1 river coverage (97-99%) or any shipped v17c columns
- Lake WSE from LakeSP may be more reliable than RiverSP anyway (purpose-built for lake surfaces)
Problem
aggregate_swot_observationsreads from SWOT RiverSP parquet files only. Type=3 (lake_on_river) reaches have 13-54% observation coverage vs 97-99% for type=1 rivers, because lake reach measurements in RiverSP are mostly sentinel values (-1e12) that get filtered out by quality gates.Coverage by type (current)
Type=3 detail by region
Root cause
Proposed fix
Integrate SWOT LakeSP parquet data for type=3 reaches:
slope_obs_qualityso downstream users know which product the stats came fromNotes
swot_obs(max passes per 21-day cycle) is >0 for most type=3 reaches — SWOT CAN observe them, we just aren't reading the right product