Faraday RM-synthesis: Step 0 (rmsynth module + calibration) - #1
Open
christianhbye wants to merge 36 commits into
Open
Faraday RM-synthesis: Step 0 (rmsynth module + calibration)#1christianhbye wants to merge 36 commits into
christianhbye wants to merge 36 commits into
Conversation
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…pectrum channelization Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
8 oversubscribed processes (each multi-threaded) on 4 physical cores thrashed; single-threaded workers, one per physical core, run clean. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
… SNR Peak-|F| SNR measures polarized-signal detection (huge); the Faraday effect itself is the RM synthesis of the FR-noFR difference. Both are noise-dominated-free at hours of integration -- the limit is the intrinsic-sky degeneracy, not sensitivity. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
3 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
First slice of the model-independent Faraday-detection pipeline (full spec:
docs/superpowers/specs/2026-06-08-faraday-rmsynth-design.md).src/lusee_faraday/rmsynth.py— RM synthesis on channelized Stokes Q/U:lambda2,faraday_resolution,max_scale,phi_grid(zero-centered),rmsf,faraday_spectrum. Pure NumPy, degenerate-input guards, 100% test coverage.notebooks/rmsynth_calibration.py— Step-0 calibration: runs RM synthesis on the existing 10/30/50 MHz zoom spectra to size the eventual full-band grid.pytest-covadded to the dev dependency-group souv run pytestworks; spec + step-0 plan underdocs/superpowers/.Key finding
The sparse 3-band comb (192 channels) produces catastrophic RMSF sidelobes — first sidelobe ~73% of peak, contamination across the whole ±100 rad/m² range. RM synthesis on the existing data alone cannot separate real RM from aliases, which quantitatively motivates continuous full-band λ² coverage in the next steps. RMSF resolution is ~0.004 rad/m² (huge λ² lever arm), so resolution is never the limit — SNR/sidelobes/beam-depolarization are.
Status
Step 0 of 5. Steps 1–4 (FrequencyPlan zoom/wide switch + noise + LST tagging; curated full-band sim; analysis with noise MC; repo attic + docs) will continue on this branch.
Test Plan
uv run pytest— 94 passed (18 new intests/test_rmsynth.py)uv run python notebooks/rmsynth_calibration.pyruns headless and writesnotebooks/results/rmsynth_calibration.png🤖 Generated with Claude Code