DRP installation
The MEGARA pipeline is a Python package, for Python 3.9 or greater.
The easiest method of installing megaradrp is using pip
inside a virtual
environment.
You can install official relares or the development version.
All the commands in the following sections, starting with $
are to be run under bash shell.
Install with pip
A virtual environment creates isolated Python installations, with (potentially) different package versions. We will use the venv package (a module in the standard library) here, although the virtualenv package can also be used.
The steps to run MEGARA DRP in a virtual environment are:
Create a virtual environment
A virtual environment will have a name and a path. In order to create a virtual environment called e.g. megara using venv:
$ python3 -m venv megara /path/to/
With virtualenv:
$ virtualenv-3 megara /path/to/
The directory /path/to
represents the location of the environment.
It can be any valid directory path. If the path name is not specified, it will be created in the working directory (notice that virtual environments shouldn’t be moved after creation).
Activate the environment
After creating the environment, the directory /path/to/megara
contains a Python tree. One of the directories is
/path/to/megara/bin
, which contains a script called activate
. To
activate the environment, we source (a bash shell command) this script
file:
$ source /path/to/megara/bin/activate
which yields a different system prompt to the user:
(megara) $
Now, the name of the environment appears before the standard prompt. We can use the environment only on those consoles / terminals where we have previously activated it.
Install megaradrp with pip
After the activation, we can install megaradrp with pip. This is the standard Python tool for package management. It will download the package and its dependencies, unpack everything and compile when needed.
What follows is a sample of the output:
(megara) pip install megaradrp
Collecting megaradrp
Collecting scikit-image (from megaradrp)
Downloading https://files.pythonhosted.org/packages/11/c7/ee75c79dcce057a3475763d611ec044737a708eaf5cc53426b0117795ddb/scikit_image-0.14.0-cp35-cp35mu-manylinux1_x86_64.whl (25.4MB)
Collecting scipy (from megaradrp)
(...)
Building wheels for collected packages: toolz, scandir
Running setup.py bdist_wheel for toolz ... done
Running setup.py bdist_wheel for scandir ... done
Successfully built toolz scandir
Installing collected packages: decorator, networkx, cloudpickle, numpy,
toolz, dask, six, PyWavelets, python-dateutil, subprocess32, cycler,
backports.functools-lru-cache, pytz, pyparsing, kiwisolver, matplotlib,
scipy, pillow, scikit-image, enum34, atomicwrites, more-itertools,
pluggy, attrs, scandir, pathlib2, py, funcsigs, pytest, astropy, PyYaml,
numina, megaradrp
Test the installation
Now we can test the installation by running the numina command:
(megara) $ numina show-instruments
INFO: Numina simple recipe runner version 0.34
Instrument: MEGARA
version is '0.16'
has profile 'Configuration at LICA' uuid=9a86b2b2-3f7d-48ec-8f4f-3780ec967c90
has profile 'Configuration at GTC' uuid=ca3558e3-e50d-4bbc-86bd-da50a0998a48
has profile 'Test component' uuid=4fd05b24-2ed9-457b-b563-a3c618bb1d4c
has profile 'Configuration for the Simulator' uuid=66f2283e-3049-4d4b-8ef1-14d62fcb611d
has datamodel 'megaradrp.datamodel.MegaraDataModel'
has pipeline 'default', version 1
The particular output of the command may change, but Instrument: MEGARA
text
should always appear.
Update within the environment
In order to update the MEGARA DRP to the latest stable release, the user should execute:
(megara) $ pip install -U megaradrp
Deactivate the environment
To exit the environment is enough to exit the terminal or run the command deactivate.
(megara) $ deactivate
$
Install in conda
Conda was created with a target similar to virtualenv, but know has extended its functionallity to package management for different languages.
You can install miniconda or anaconda. The difference is that miniconda provides a light-weight environment and anaconda comes with lots of Python packages.
If you have updated the $PATH
variable during install, you can call
conda commands directly in the shell, like this:
$ conda info
If not, you will need to add the path to the command (an example path
could be miniconda3/bin
), like:
$ /path/to/conda/bin/conda info
If that is the case, you should add that path every time you run a conda command hereafter. Alternatively, you can initialize conda for your own shell by doing:
$ conda init bash
This works as it is if you are using a login-shell (terminal), but if you are using an xterm, you might also need to do:
$ cp ~/.bash_profile ~/.bashrc
(do a backup copy of ~/.bashrc
if you have one already),
and open a new terminal/xterm. Below, we will write the commands without the
full path, for simplicity. If you are using conda version 4.4+ your terminal
will open in the conda (base) environment. If you want to avoid that
permanently just do: conda config --set auto_activate_base false
.
Once conda is installed according to the instructions above, the steps to run MEGARA DRP under conda would be the following:
Create a conda environment
We first recommend that you update your conda installation to its latest by doing:
(base) $ conda update conda
With conda, environments are created in a centralised manner (under
directory ./envs
in your conda tree), we do not pass the path to the
environment.
(base) $ conda create --name megara python=3
One could remove this environment (and all its content), if needed, by simply doing:
(base) $ conda remove --name megara --all
Install megaradrp with conda
Packages can be installed before activating the environment. We provide conda packages for megaradrp in the conda-forge channel
(base) $ conda install --name megara -c conda-forge megaradrp
Fetching package metadata .............
Solving package specifications: .
Package plan for installation in environment /home/xxx/devel/miniconda3/envs/megara:
The following NEW packages will be INSTALLED:
astropy: 2.0.8-py35_0 conda-forge
atomicwrites: 1.1.5-py35_0 conda-forge
attrs: 18.1.0-py_1 conda-forge
....
zlib: 1.2.11-h470a237_3 conda-forge
Proceed ([y]/n)? y
Activate the environment
The functionality is similar to virtualenv:
(base) $ conda activate megara
(megara) $
Again, after activating the environment, the name of the environment appears before the standard prompt. We can use the environment only on those consoles / terminals where we have previously activated it.
Test the installation
Now we can test the installation by running the numina command:
(megara) $ numina show-instruments
INFO: Numina simple recipe runner version 0.34
Instrument: MEGARA
version is '0.16'
has profile 'Configuration at LICA' uuid=9a86b2b2-3f7d-48ec-8f4f-3780ec967c90
has profile 'Configuration at GTC' uuid=ca3558e3-e50d-4bbc-86bd-da50a0998a48
has profile 'Test component' uuid=4fd05b24-2ed9-457b-b563-a3c618bb1d4c
has profile 'Configuration for the Simulator' uuid=66f2283e-3049-4d4b-8ef1-14d62fcb611d
has datamodel 'megaradrp.datamodel.MegaraDataModel'
has pipeline 'default', version 1
Update within the environment
In order to update the MEGARA DRP within the conda environment the user should execute:
(megara) $ conda update megaradrp
Deactivate the environment
To exit the environment is enough to exit the terminal or run the command source deactivate
(megara) $ conda deactivate
(base) $
Update outside the environment
Once outside the conda environment one can also update the MEGARA DRP installation by doing:
(base) $ conda update megaradrp -n megara
If you want to deactivate the conda (base) environment entirely you can run again:
(base) $ conda deactivate
$
Development version
For those of you interested in installing the development version, please consult the instructions at the readthedocs.org webpage at https://megaradrp.readthedocs.io/en/latest/installation.html. The use of the development version is recommended to have access to the latest DRP improvements.