-
Notifications
You must be signed in to change notification settings - Fork 62
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
For coronagraph Lyot masks, add reference information on alignment per each mask #675
base: develop
Are you sure you want to change the base?
For coronagraph Lyot masks, add reference information on alignment per each mask #675
Conversation
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## develop #675 +/- ##
===========================================
+ Coverage 59.20% 59.42% +0.21%
===========================================
Files 16 16
Lines 6955 6931 -24
===========================================
+ Hits 4118 4119 +1
+ Misses 2837 2812 -25 ☔ View full report in Codecov by Sentry. |
@@ -243,3 +243,15 @@ | |||
JWST_INSCRIBED_DIAMETER = 5.47334 # meters. Middle corners of C segments | |||
|
|||
JWST_TYPICAL_LOS_JITTER_PER_AXIS = 0.0008 # milliarcseconds jitter, 1 sigma per axis. = approx 1 mas rms radial, typically | |||
|
|||
# Alignment information about instrument internal pupil masks ( | |||
INSTRUMENT_PUPIL_MASK_DEFAULT_POSITIONS = { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
NIRCam will need multiple values that depend on channel (SW or LW pupil wheel) and mask (field position):
- SWA_MASK210R
- SWA_MASK335R
- SWA_MASK430R
- SWA_MASKSWB
- SWA_MASKLWB
- LWA_MASK210R
- LWA_MASK335R
- LWA_MASK430R
- LWA_MASKSWB
- LWA_MASKLWB
We could conceivably have similar values for Module B, but we currently have zero information on those masks.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I thought that physically there is in the SWA wheel and LWA only one each of the bar and round Lyot stops? Such that, for instance, the 210R, 335R, 430R focal plane masks would all be used with the same physical Lyot mask? And likewise the SWA_MASKSWB and SWA_MASKLWB would similarly use the same physical Lyot pupil stop?
I had thought that therefore, the Lyot alignment offsets should be independent of focal plane position? What makes that not the case? Is this from field-position-dependent pupil wander within the instrument?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, it appears that field-dependent pupil wander changes the best-fit pupil shift values for each of the occulting masks. We found this to be the case during commissioning when tuning the pupil wheel clocking to find a good balance between the M335R and M430R masks.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
OK. This is going to be a minor pain for book-keeping, because it means the pupil alignment depends on the selected image mask (as well as the pupil mask)... but sometimes it's convenient to do coronagraphic calculations with the image mask left out to get an off-axis PSF (i.e. a sim with image_mask=None and pupil_mask=MASKLWB, or similar). For calculations like that, right now there would be no way for webbpsf to know which image mask to use for the pupil alignment parameter lookup.
This feels like a minor practical detail of API and implementation, but it'll need at least a little thought for how we want this to work.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The pupil shear has negligible impact on the shape of off-axis PSF. The main thing we care about is the morphology of the PSF under the influence of the occulting mask. For on-axis PSFs, the scattered light in the pupil matters (and therefore we care about alignment of the Lyot stop with the telescope pupil), whereas for off-axis PSFs, the pupil is filled. So in the end, we only care about the cases where image_mask
is set.
webbpsf/constants.py
Outdated
'NIRCam_MASKSWB': {'pupil_shift_x': None, 'pupil_shift_y': None, 'pupil_rotation': None}, | ||
'NIRCam_MASKLWB': {'pupil_shift_x': None, 'pupil_shift_y': None, 'pupil_rotation': None}, | ||
'NIRCam_MASKRND_SW': {'pupil_shift_x': None, 'pupil_shift_y': None, 'pupil_rotation': None}, | ||
'NIRCam_MASKRND_LW': {'pupil_shift_x': -0.012, 'pupil_shift_y': -0.023, 'pupil_rotation': -0.60}, # from K. Lawson, fits to ERS progid 1386 data |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is presumably only for the M335R mask as M430R will have some pupil wander and therefore slightly different values.
bc3ce8e
to
72c9156
Compare
Hello @mperrin, Thank you for updating !
Comment last updated at 2024-05-12 04:10:07 UTC |
72c9156
to
9274ce2
Compare
This PR implements a capability to have default mask alignment options (
pupil_shift_x, pupil_shift_y, pupil_rotation
) defined per each coronagraph mask. This is intended to allow WebbPSF to include measured in-flight information on the various masks.Implementation details:
constants.py
add a dict which gives values of these options per each mask, or else None to leave undefinedwebbpsf_core.py
, update code to look up and use those values.WORK IN PROGRESS, NOT YET COMPLETE, NOT READY TO MERGE