DRAGONS is a platform for the reduction and processing of astronomical data. It is a Python meta-package that includes infrastructure for automation and algorithms for processing astronomical data. Currently, it focuses on the reduction of Gemini data, but hooks are available for expansion to data from other observatories.
With a little bit of guidance from you, DRAGONS will reduce your Gemini data in a standard way, rapidly, with little fuss. With a bit more guidance from you, DRAGONS will let you optimize the reduction for your specific sources and science objectives.
- Stable Version: v3.1.0
- Release Notes
- Change Logs
- Report on science quality verification for DRAGONS imaging modes
The primary reference to be cited by users of DRAGONS is:
K. Labrie et al. ADASS XXVII, ASP Conf. Ser. 522, eds. P. Ballester, J. Ibsen, M. Solar & K. Shortridge, p. 321
View the recording of the demo of DRAGONS 3.1 for the science quality reduction of GMOS longslit data to see what's coming next...
- Python 3.7 to Python 3.10
- Linux, equivalent to CentOS 7 and above
- Or Mac OS X 10.13 and above
- Intel Anaconda (works on Mac M1 architecture)
- conda >-4.12 for Python 3.10.
Anaconda is required before installing DRAGONS. If you do not already have anaconda installed, see the Anaconda installation instructions and be sure to add the conda-forge and gemini astroconda channels with these commands once the installation is complete:
$ conda config --add channels conda-forge $ conda config --add channels http://astroconda.gemini.edu/public
IMPORTANT: To install Python 3.10 packages, the version of conda must be 4.12 or greater. Previous version of conda are incompatible with Python 3.10.
On Mac OS machines with M1/M2 chips, make sure that you have installed the Intel anaconda to ensure that you pick up Intel binaries. DRAGONS is currently available only for Intel, which Rosetta will run without issue.
Installing Gemini IRAF and DRAGONS together
To install both DRAGONS and Gemini IRAF simultaneously, first create a virtual environment and install the full data reduction suite: DRAGONS and Gemini IRAF. Conda will take care of installing the dependencies. The name of the environment can be anything you like. Here we use “geminiconda” as the name.
$ conda create -n geminiconda python=3.10 dragons gemini iraf-all pyraf-all ds9
To use this environment, activate it:
$ conda activate geminiconda
You will need to activate the environment whenever you start a new shell. If you are planning to use it all the time, you might want to add the command to your .bash_profile, after the “conda init” block.
Installing DRAGONS alone
DRAGONS now works with Python 3.7 to 3.10. To install DRAGONS:
$ conda create -n dragons python=3.10 dragons ds9 astropy=5.2 bokeh=2.4.3
Since the April 2023 release of DRAGONS 3.1, the astropy and the bokeh projects have released significant updates to their software that break DRAGONS. We are working on fixing the compatibility issues. In the meantime, please specify
astropy=5.2 bokeh=2.4.3 when you install a new environment. If you already have an environment with astropy 5.3 and bokeh 3+, you will need to downgrade them to the versions specified above.
DRAGONS v3.1 requires Python 3.7 to 3.10. If your conda environment uses a different version of Python, you will need to create a new conda environment. Set the instruction below for a new installation with
We recommend that you create a new environment, but if you already have a compatible Python environment set up and want to add DRAGONS, you can use
conda install. In the example below, replace
dragons, or whatever name you used when you first created the environment.
$ conda activate environment_name $ conda install package_name=version
For example, if you already have a previous installation:
$ conda activate dragons $ conda install dragons=3.1.0
Configuration and Testing
DRAGONS requires a configuration file located in
$ cd ~ $ mkdir .dragons $ cd .dragons $ touch dragonsrc
dragonsrc with you favorite editor and add these lines:
[interactive] browser = safari [calibs] databases = ~/.dragons/dragons.db get store
The browser can be set to any of “safari”, “chrome”, or “firefox”, depending on your preferences. The path and name of the calibration database can be anything, as long at the path exists. The “get” means that DRAGONS will get calibrations from that database. The “store” option can be added after the “get” to have DRAGONS automatically add new processed calibrations to the database. See any of the tutorials to see the calibration manager in action.
Configure buffers for ds9:
$ cd ~ $ cp $CONDA_PREFIX/lib/python3.10/site-packages/gempy/numdisplay/imtoolrc ~/.imtoolrc $ vi .bash_profile (or use you favorite editor) Add this line to the .bash_profile: export IMTOOLRC=~/.imtoolrc
While not specific at all to DRAGONS, it is recommended to increase the Operating System limit on the number of opened files. We have seen an increase in reports of the error "Too many open files."
In your .bash_profile, add the following line to overcome that OS limitation:
ulimit -n 1024
Testing the Installation
$ conda activate dragons $ python >>> import astrodata >>> import gemini_instruments
If the imports are successful, i.e. no errors show up, exit Python (Ctrl-D).
Now test that
reduce runs. There may be some delay initially as packages and modules are compiled and loaded.
$ reduce --help
This will print the reduce help to the screen.
If you have Gemini FITS files available, you can test that the Recipe System is functioning as expected as follow (replace the file name with the name of your file):
$ reduce N20180106S0700.fits -r prepare
If all is well, you will see something like:
--- reduce, v3.1.0 --- All submitted files appear valid Found 'prepare' as a primitive. ================================================================================ RECIPE: prepare ================================================================================ PRIMITIVE: prepare ------------------ PRIMITIVE: validateData ----------------------- . PRIMITIVE: standardizeStructure ------------------------------- . PRIMITIVE: standardizeHeaders ----------------------------- PRIMITIVE: standardizeObservatoryHeaders ---------------------------------------- Updating keywords that are common to all Gemini data . PRIMITIVE: standardizeInstrumentHeaders --------------------------------------- Updating keywords that are specific to NIRI . . . Wrote N20180106S0700_prepared.fits in output directory reduce completed successfully.
Documentation and Tutorials
The full DRAGONS documentation is available here, including several data reduction tutorials. Additional tutorials are available from the US National Gemini Office. (Note that the US NGO tutorial might not have been updated to DRAGOSN 3.1 yet.)