Welcome to SimCADocs!¶
The (slowly expanding) documentation base for SimCADO, the instrument data simulation package for MICADO at the ELT.
Important
SimCADO is currently under active development. The current version of SimCADO (dubbed v0.7) is however capable to answer many questions about the future performance of MICADO imaging mode and your favorite science case. For the spectroscopic mode, please consult SpecCADO.
In this latest version SimCADO is able to correctly simulate DIT and NDITs. Accordingly, the
keyword OBS_EXPTIME
has been replaced by OBS_DIT
, with total observing time given by
OBS_DIT*OBS_NDIT
.
Please update your scripts and configuration files after downloading the latest version.
SimCADO in a nutshell¶
SimCADO is a python package designed to simulate the effects of the Atmosphere, E-ELT, and MICADO instrument on incoming light. The current version (v0.7) can simulate the MICADO imaging mode (4mas and 1.5mas per pixel in the wavelength range 0.7µm to 2.5µm).

A simple simulation in 30 seconds with SimCADO.¶
Reference Material¶
The inner workings of SimCADO are described in detail in Leschinski et al. (2016)
The current status of MICADO is described in Davies et al. (2018)
Downloading and Installing¶
For more information, see the Download section
SimCADO has only been tested in Python 3.x.
It is hightly recommended to use Python 3, however the basics of generating images will still work in Python 2.7. We cannot guarantee this though.
The quick way:
$ pip install SimCADO
We also recomend to install SimCADO in an anaconda/miniconda/etc python distributions as it is much easier to keep control over your python environment.
The first time in python you should update the SimCADO data directory with
get_extras()
:
>>> import simcado
>>> simcado.get_extras()
>>>
>>> # !! Only works in Python 3 - See Downloads section
>>> simcado.install_noise_cube()
If you running Python 3, it would be helpful to expand the internal detector
noise cube with install_noise_cube()
.
Keeping SimCADO updated¶
As MICADO developes, the data files that SimCADO uses will also be
updated. Therefore before you do any major work with SimCADO we HIGHLY
recommend calling get_extras()
:
>>> simcado.get_extras()
iPython/Jupyter notebooks¶
A (continualy expanding) series of iPython Notebooks detailing how to use SimCADO are available here in the Notebooks section.
Hint
Don’t feel like sifting through documentation? Common commands and examples are on the SimCADO cheat-sheet:
Running a simulation in 3 lines¶
The easiest way to run a simulation is to create, or load, a Source
object and then call the run()
command. If you specify a filename,
the resulting image will be output to a FITS file under that name. If
you do not specify a filename, the output will be returned to the
console/notebook as an HDUList
object.
To begin, we will import the simcado module (assuming it is already installed).:
>>> import simcado
At the very least, we need to create a Source
object which contains
both spatial and spectral information on our object of interest. Here we
use the built-in command simcado.source.cluster()
to create a
Source
object for a 10000-Msun stellar cluster. (Creating
Sources for more information).:
>>> src = simcado.source.cluster()
We now pass the Source
object through SimCADO. This is as easy as
calling run()
. If we specify a filename
, SimCADO will write the
output to disk in the form of a FITS file. If no filename
is given, then
SimCADO returns an astropy fits
object to the console or
notebook.:
>>> simcado.run(src, filename="my_first_sim.fits")
Changing simulation parameters¶
The run()
also takes any configuration keywords as
parameters for running the simulation. For example, the default exposure time
for the simulation is 60 seconds, however this can be increased of decreased by
using the keyword OBS_EXPTIME (and/or combining it with OBS_NDIT). A stacked
6x 10 minute observation sequence would look like:
>>> simcado.run(src, filename="my_first_sim.fits", OBS_DIT=600, OBS_NDIT=6)
That’s it. Of course SimCADO can also go in the other direction, providing many more levels of complexity, but for that the reader is directed to the examples pages and/or the API documentation.
SimCADO building blocks¶
For a brief explanation of how SimCADO works and which classes are relevant, please see either the GettingStarted or SimCADO in depth section.
Using SimCADO¶
Contents:
- Getting Started with SimCADO
- Installation
- SimCADO FAQs
- Updates to SimCADO
- SimCADO Gallery
- Examples and Tutorials
- Using PSFs with SimCADO
- Custom instrument packages for SimCADO
- Simulation Building Blocks
- Controlling simulations
- Examples with the Source object
- Keywords for Controlling SimCADO
- SimCADO Package
Bugs and Issues¶
We freely admit that there may still be several bugs that we have not found. If you come across an buggy part of SimCADO, please please tell us. We can’t make SimCADO better if we don’t know about things.
The preferable option is to open an issue on our Github page: astronomyk/SimCADO/issues, or you can contact one of us directly.
Contact¶
For questions and complaints alike, please contact the authors:
Developers (Vienna): Kieran Leschinski, Oliver Czoske, Miguel Verdugo
Data Flow Team Leader (Gronigen): Gijs Verdoes Kleijn
MICADO home office (MPE): http://www.mpe.mpg.de/ir/micado