TOM Education is a plugin for the TOM Toolkit adding features intended for educational use. See the documentation for more information.
-
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.
In addition to the requirements listed in setup.py
you will need:
- A working TOM (see TOM Toolkit documentation)
- Python >= 3.6
-
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.
- 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
Clone this repo and install the package with pip
:
git clone https://github.com/joesingo/tom_education
pip install -e tom_education