Getting started

maria is a meant to be a flexible, intuitive simulator that is capable of simulating time-ordered data for most astronomical observatories.

Creating simulations

Simulations in maria are done with a Simulation. Each Simulation always minimally needs an instrument (something to observe with), a site (somewhere to observe from), and a plan (something to do). Each of these can be either a string (corresponding to a pre-defined maria input) or an Instrument, Site, or Plan object, for example as

sim = Simulation(instrument="apex/saboca",
                 site="cerro_chajnantor"
                 plans="stare")

Hint

To see all available pre-defined instruments, sites, and plans, run print(maria.all_instruments), print(maria.all_sites), and print(maria.all_plans).

or a custom object encoding all the parameters of your custom simulation.

from maria import Simulation

sim = Simulation(instrument=my_instrument,
                 site=my_site
                 plans=my_plans)

For documentation on creating these object, refer to the Instruments, Sites, and Plans sections.

Sources

The simulations above have nothing to observe; if we ran them, our time-ordered data consist only of instrument noise. We can optionally give it at source in an atmosphere, a map, or a cmb (or all at once), for example as

sim = maria.Simulation(instrument=my_instrument,
                       site=my_site
                       plan=my_plan,
                       atmosphere=my_atmosphere,
                       cmb=my_cmb,
                       map=my_map)

Note

While we add any combination of atmosphere, cmb, and map parameters, they are not independent; the presence of an atmosphere will affect a map and cmb

For documentation on these inputs (including how to customize them), see the Atmosphere, CMB, and Maps sections.

Running simulations

Running a simulation will return the time-ordered data as a TOD.

tod = sim.run()

Subsequent runs will each return another TOD where the last simulation left off

another_tod = sim.run()
yet_another_tod = sim.run()

Each TOD can be fed into maria’s native mapping code (see Mapping) or exported as a file to be used by some other package or software.

For more documentation on working with a TOD, see the tod sections.