TOM Education¶
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:
- A working TOM (see the TOM Toolkit documentation)
- Python >= 3.6
Installation¶
Set up a TOM following the getting started guide.
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
.
Add
tom_education
toINSTALLED_APPS
insettings.py
:INSTALLED_APPS = [ ... 'tom_education' ]
Run the
tom_education
setup management command. Note that this overwritessettings.py
andurls.py
in the newly created project.python manage.py tom_education_setup
Install Redis, and start
redis-server
. If not running Redis on the same server astom_education
, or if using a non-default port, change the Redis connection settings insettings.py
underDRAMATIQ_BROKER
.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