Skip to content

Specular-trajectory top-k and GNSS-R coverage top-k rank by different RCG definition #38

Description

@vinay0000

Summary

Mission.execute_all(topk=k) applies top-k filtering independently to two outputs:
coverage_calculator_results (via execute_gnssr_coverage_calculator) and
specular_trajectory_results (via execute_specular_trajectory_calculator). The two
rankings can select different GNSS transmitters for the same receiver at the same
time step
, so rank r of one output need not correspond to rank r of the other.

Cause

They rank by different RCG definitions:

  • Trajectory top-k uses the all-pairs line-of-sight RCG from get_specular_trajectory
    (no field-of-view check).
  • Coverage top-k uses an RCG that additionally gates on the receiver FOV and specular
    radius, and is -inf where nothing is covered.

Impact

Downstream consumers that assume the two top-k outputs are aligned (e.g. joining a
trajectory rank to a coverage rank) will get mismatched transmitters. The D-SHIELD CSV
exporters are unaffected because each writes its own per-time-step source id.

Status

Intentional today — the specular trajectory is defined over all transmitter/receiver
pairs regardless of FOV, so ranking it by the coverage RCG would be wrong. Filing to
track the discrepancy and decide whether a single shared/aligned ranking is ever needed.

Documented in code: see the KNOWN ISSUE note in Mission.execute_specular_trajectory_calculator.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions