Closed jmeyers314 closed 1 year ago
The new versions of batoid and batoid_rubin required for this have now landed. Ready for review.
FYI, you can just click rerun jobs on the Actions tab, rather than push an empty commit. I personally find that easier.
FYI, you can just click rerun jobs on the Actions tab, rather than push an empty commit. I personally find that easier.
Yeah, I looked for that. I think I must not be on the appropriate access list.
This PR adds some features that enable the
with_extra_zk
method insidebatoid_rubin
v0.3.0 (which just landed on PyPI, but might need a few hours to land on conda-forge). With this method, you can first zero-out and then directly set whatever OPD you want for a given field angle. (There's a new test targeting the "zero-out" the OPD feature in particular).Along the way, I made some other changes to the OPD and sag processing and outputs.
On the processing side, I eliminated the ImSim function that inferred each optic's inner and outer radii and instead added this capability to batoid directly (now available in v0.5.0 of batoid, which is on PyPI and conda-forge). This became useful when I started making the obscurations on optics more detailed, effectively placing simulated masking tape on M1 to help track +x and +y coordinates (see https://lsstc.slack.com/archives/CHXKSF3HC/p1691467190092519?thread_ts=1691456649.673369&cid=CHXKSF3HC for example). The more detailed obscuration model meant I could no longer easily infer the radii from the obscuration itself, so batoid will now let you set radii directly and fall back to using the obscuration if needed.
On the output side, I put a bit more care into the output WCSs for OPDs and sags such that they connect the data to actual coordinates on surfaces. The details are slightly different for OPD and sag, mostly because I tried to mimic Zemax's slightly odd behavior in batoid for OPD output. ImSim derives its OPD WCS directly from the batoid output though, so if I ever change batoid's behavior to be less like Zemax, ImSim will automatically inherit the new behavior.