Scan patterns

This notebook shows all the possible scan configurations.

[1]:
from maria.cmb import generate_cmb_patch

cmb_patch = generate_cmb_patch(width=5, center=(150, -45))

cmb_patch.plot(cmap="cmb")
2025-11-21 01:57:29.654 INFO: Fetching https://github.com/thomaswmorris/maria-data/raw/master/cmb/spectra/camb.csv
Downloading: |                | 842k/? [00:00<00:00, 39.2MB/s]
../../_images/tutorials_inputs_scan-patterns_1_1.png
[2]:
from maria import Planner

planner = Planner(target=cmb_patch, site="llano_de_chajnantor", constraints={"el": (40, 90)})
[3]:
plans = planner.generate_plans(total_duration=900,
                               scan_pattern="daisy",
                               scan_options={"radius": 1e0, "speed": 2e-1})
plans[0].plot()
plans[0].plot_counts(instrument="test/1deg")
2025-11-21 01:57:34.970 WARNING: No noise level specified for band f090, assuming a sensitivity of 50 uK_RJ√s.
2025-11-21 01:57:34.992 WARNING: No noise level specified for band f150, assuming a sensitivity of 50 uK_RJ√s.
2025-11-21 01:57:35.014 WARNING: No noise level specified for band f220, assuming a sensitivity of 50 uK_RJ√s.
../../_images/tutorials_inputs_scan-patterns_3_1.png
../../_images/tutorials_inputs_scan-patterns_3_2.png
[4]:
plans = planner.generate_plans(total_duration=900,
                               scan_pattern="raster",
                               scan_options={"radius": 1e0, "n": 21, "speed": 2e-1})
plans[0].plot()
plans[0].plot_counts(instrument="test/1deg")

2025-11-21 01:57:38.260 WARNING: No noise level specified for band f090, assuming a sensitivity of 50 uK_RJ√s.
2025-11-21 01:57:38.282 WARNING: No noise level specified for band f150, assuming a sensitivity of 50 uK_RJ√s.
2025-11-21 01:57:38.304 WARNING: No noise level specified for band f220, assuming a sensitivity of 50 uK_RJ√s.
../../_images/tutorials_inputs_scan-patterns_4_1.png
../../_images/tutorials_inputs_scan-patterns_4_2.png
[5]:
plans = planner.generate_plans(total_duration=900,
                               scan_pattern="double_circle",
                               scan_options={"radius": 1e0,
                                             "ratio": 0.75,
                                             "speed": 2e-1})
plans[0].plot()
plans[0].plot_counts(instrument="test/1deg")
2025-11-21 01:57:41.133 WARNING: No noise level specified for band f090, assuming a sensitivity of 50 uK_RJ√s.
2025-11-21 01:57:41.155 WARNING: No noise level specified for band f150, assuming a sensitivity of 50 uK_RJ√s.
2025-11-21 01:57:41.177 WARNING: No noise level specified for band f220, assuming a sensitivity of 50 uK_RJ√s.
../../_images/tutorials_inputs_scan-patterns_5_1.png
../../_images/tutorials_inputs_scan-patterns_5_2.png
[6]:
plans = planner.generate_plans(total_duration=900,
                               scan_pattern="lissajous",
                               scan_options={"x_throw": 1e0,
                                             "y_throw": 0.75,
                                             "speed": 2e-1})
plans[0].plot()
plans[0].plot_counts(instrument="test/1deg")
2025-11-21 01:57:43.902 WARNING: No noise level specified for band f090, assuming a sensitivity of 50 uK_RJ√s.
2025-11-21 01:57:43.924 WARNING: No noise level specified for band f150, assuming a sensitivity of 50 uK_RJ√s.
2025-11-21 01:57:43.945 WARNING: No noise level specified for band f220, assuming a sensitivity of 50 uK_RJ√s.
../../_images/tutorials_inputs_scan-patterns_6_1.png
../../_images/tutorials_inputs_scan-patterns_6_2.png