TOM Education

https://travis-ci.org/joesingo/tom_education.svg?branch=master

TOM Education is a plugin for the TOM Toolkit adding features intended for educational use.

Features

  • 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.
  • Timelapses: Create a timelapse of FITS data products for a target. Timelapses can be created as animated GIFs or MP4 or WebM videos.
  • Data gallery: View a gallery of thumbnails of FITS files which allows files to be selected and added to a data product group.
  • Data pipelines: Run a user-supplied data pipeline on a selection of files and save the outputs as data products in the TOM.
  • API endpoints: REST API endpoints give information about targets, timelapses, pipeline runs, and allow observations to be submitted.
  • Observation alerts: Associate an email address with an observation to receive email updates when data is available.
  • Observations with multiple instrument configurations: 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:

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.

  1. Add tom_education to INSTALLED_APPS in settings.py:

    INSTALLED_APPS = [
        ...
        'tom_education'
    ]
    
  2. 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
    
  3. 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.

  4. 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