TOM Education ============= .. image:: https://travis-ci.org/joesingo/tom_education.svg?branch=master :target: https://travis-ci.org/joesingo/tom_education TOM Education is a plugin for the `TOM Toolkit `_ adding features intended for educational use. Features -------- * :doc:`templated_observation_forms`: Save the fields in the observation creation form as a template to make it easier to create multiple observations with similar parameters. * :doc:`timelapses`: Create a timelapse of FITS data products for a target. Timelapses can be created as animated GIFs or MP4 or WebM videos. * :doc:`gallery`: View a gallery of thumbnails of FITS files which allows files to be selected and added to a data product group. * :doc:`pipelines`: Run a user-supplied data pipeline on a selection of files and save the outputs as data products in the TOM. * :doc:`apis`: REST API endpoints give information about targets, timelapses, pipeline runs, and allow observations to be submitted. * :doc:`observation_alerts`: Associate an email address with an observation to receive email updates when data is available. * :doc:`multiple_instrument_configs`: Submit LCO observations with multiple filters and exposure settings. Long-running tasks (such as running data pipelines and creating large timelapses) are performed asynchronously in separate worker processes using `Dramatiq `_ via `django_dramatiq `_ and `Redis `_. Requirements ------------ In addition to the requirements listed in ``setup.py`` you will need: - A working TOM (see the `TOM Toolkit documentation `_) - Python >= 3.6 Installation ------------ 1. Set up a TOM following the `getting started guide `_. 2. Clone and install this package with ``pip``: :: pip install tom_education **Note:** a dependency of one of ``tom_education``'s dependencies requires a Fortran compiler to install. On Ubuntu, run ``sudo apt-get install gfortran`` before installing with ``pip``. 3. Add ``tom_education`` to ``INSTALLED_APPS`` in ``settings.py``: :: INSTALLED_APPS = [ ... 'tom_education' ] 4. Run the ``tom_education`` setup management command. Note that this overwrites ``settings.py`` and ``urls.py`` in the newly created project. :: python manage.py tom_education_setup 5. Install `Redis `_, and start ``redis-server``. If not running Redis on the same server as ``tom_education``, or if using a non-default port, change the Redis connection settings in ``settings.py`` under ``DRAMATIQ_BROKER``. 6. Start the Dramatiq worker processes: :: python manage.py rundramatiq Note that ``rundramatiq`` must be restarted for code changes to take effect. 7. Optional: install test dependencies and run tests to check everything is okay (**Note**: Redis and the Dramatiq workers do not have to be running to run the tests) :: pip install tomtoolkit[test] python manage.py test tom_education Install Development version ~~~~~~~~~~~~~~~~~~~~~~~~~~~ Clone this repo and install the package with ``pip``: :: git clone https://github.com/joesingo/tom_education pip install -e tom_education Documentation ------------- .. toctree:: :maxdepth: 2 :caption: Contents: templated_observation_forms timelapses gallery pipelines apis observation_alerts Observations with multiple filters