Fixed the missing plots after handling multi-antenna logs.#418
Conversation
There was a problem hiding this comment.
Pull request overview
This PR fixes missing analysis plots in multi-antenna (multi-source_id) logs by ensuring GNSS plots are generated from the correct GNSS antenna source IDs, and by making the map plotting logic tolerant of some source IDs lacking pose data.
Changes:
- Update map plotting to iterate all
self.source_ids, skipping per-source empty/invalid pose data instead of aborting the entire map. - Update GNSS azimuth/elevation plotting to run per GNSS antenna source ID (matching existing multi-antenna behavior in other GNSS plots).
- Adjust GNSS azimuth/elevation output naming and titles to include antenna labels and avoid filename collisions.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
adamshapiro0
left a comment
There was a problem hiding this comment.
Looks good, except separate out pose IDs, and consider pre-computing and caching lists of IDs vs current _get_gnss_antenna_source_ids() func that regenerates the list on each call
…se solutions in plot_map.
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 1 out of 1 changed files in this pull request and generated no new comments.
Comments suppressed due to low confidence (1)
python/fusion_engine_client/analysis/analyzer.py:1096
visibleis based onmin(pose_source_ids), butpose_source_idsis only range-filtered (0-99) and may still include IDs that have no PoseMessage (or no valid solutions). If the smallest ID gets skipped in the loop (no pose / no valid), every remaining pose trace will be created withvisible='legendonly', producing an empty-looking map by default even though valid pose data exists for a higher source_id.
# Only put default source ID on map by default.
legendgroup = None if len(pose_source_ids) == 1 else source_id
visible = None if source_id == min(pose_source_ids) else 'legendonly'
Fixes