Skip to content

Rhine MPI 2000168: missing ice metadata rejects available SWOT observations #229

Open

Description

@jameshgrn

Finding

A read-only investigation of Rhine main_path_id=2000168 confirms a contiguous NULL WSE-percentile run in the local v17c DuckDB. It contains 1,341 mainstem nodes on 51 reaches, at node hydro_dist_hw 307.039519–484.700748 km. Stored n_obs remains 64–239.

Direct PO.DAAC Hydrocron Collection-D queries at six nodes across this gap returned 1,024 records. Every record has ice_clim_f=-999. The current ice_clim_f=0 predicate rejects all of them. Removing only this predicate restores 587 observations (27–130/node). Also pairing raw wse with node_q<=1 retains 540 (27–123/node). Four control nodes outside the gap have ice_clim_f=0 and populated percentiles.

This demonstrates source-data presence and reproduces a sufficient filtering cause at sampled nodes; it is not a full historical-archive reaggregation or validation of every missing node.

Example interior nodes: 23267000560011, 23267000510131, 23267000400181, 23267000240541, 23267000170121, 23267000090541.

Reproduction

Use https://soto.podaac.earthdatacloud.nasa.gov/hydrocron/v1/timeseries with feature=Node, feature_id from above, collection_name=SWOT_L2_HR_RiverSP_D, start_time=2023-08-01T00:00:00Z, end_time=2026-03-23T00:00:00Z, output=csv, fields=node_id,time_str,wse,wse_sm,wse_sm_q,node_q,width,dark_frac,xtrk_dist,xovr_cal_q,ice_clim_f,granuleUR.

Compare src/sword_duckdb/swot_filters.py build_node_filter_sql with and without its ice_clim_f=0 requirement. The same ice requirement exists in src/sword_v17c_pipeline/reach_swot_obs.py.

Local evidence package: outputs/investigations/rhine_2000168_20260905/REPORT.md, main_path_nodes.csv, gap_nodes.csv, sample_observations_combined.csv, requests.json and filter_sql.json. These outputs are local, not committed or attached. Audit checkout HEAD: f462947.

Scope and next steps

  • Reconcile reported 313–582 km interval with the reporter's file/version and node IDs. Current geometry gives about 178 km; a nominal 200 m times 1,341 nodes gives 268.2 km, a possible explanation that is not yet confirmed.
  • Full raw-archive census before a production change; retain missing ice metadata as a separate status from affirmative ice cover.
  • Explicitly define missing-ice handling and pair wse/node_q or wse_sm/wse_sm_q correctly.
  • Candidate recompute and comparison before any database promotion. Stored counts differ from this current Hydrocron snapshot and must not be equated to downloaded counts.

No database or filter changes applied. Historical archive access was unavailable because the local volume was unmounted and UNC VPN disconnected; source witnesses were obtained publicly through Hydrocron.

Activity

  1. added this to the v17c-april-2026 milestone on Sep 5, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions