This is an end-to-end integrated system for time-domain and multimesseneger astronomy (TDAMM) aimed towards Gemini follow-up observations.
Its objective is to simplify the TDAMM workflow for users by serving as a one-stop shop for all the follow-up needs. To this end, it will integrate the various TDAMM services of Gemini Observatory and the larger NOIRLab organization.
- Python 3.10 or higher
- Intel Anaconda or Miniconda (works on M1 architecture) >= 4.12
- Ensure you have Rosetta 2 installed to run Intel-based binaries.
- Install an x86 version of Anaconda or Miniconda.
- You need to switch to an x86 terminal for installing and running Intel-only packages like DRAGONS.
git clone https://github.com/gemini-hlsw/goats.git
cd goats
conda env create -f environment.yml
conda activate goats-env
pip install .
This installs the goats
CLI which can be used to install and run GOATS.
goats install
goats run
To test:
pip install '.[test]'
pytest
The Gemini Observation and Analysis of Targets System (GOATS) CLI provides an efficient way to install and manage the GOATS project along with the antares2goats browser extension. You can get detailed help on each command using the --help
option. Below, find the breakdown of the primary commands and options:
Use the following command to get an overview of available options and commands:
$ goats --help
Usage: goats [OPTIONS] COMMAND [ARGS]...
Gemini Observation and Analysis of Targets System (GOATS).
You can run each subcommand with its own options and arguments. For
details on a specific command, type 'goats COMMAND --help'.
Options:
--help Show this message and exit.
Commands:
install Installs GOATS and configures Redis server.
run Starts the webserver, Redis server, and workers for GOATS.
$ goats install --help
Usage: goats install [OPTIONS]
Installs GOATS and configures Redis Server.
Options:
-p, --project-name TEXT Specify a custom project name. Default is 'GOATS'.
-d, --directory PATH Specify the parent directory where GOATS will be
installed. Default is the current directory.
--overwrite Overwrite the existing project, if it exists.
Default is False.
-m, --media-dir PATH Path for saving downloaded media.
--redis-addrport TEXT Specify the Redis server IP address and port
number. Examples: '6379', 'localhost:6379',
'192.168.1.5:6379'. Providing only a port number
(e.g., '6379') binds to localhost.
--help Show this message and exit.
$ goats run --help
Usage: goats run [OPTIONS]
Starts the webserver, Redis server, and workers for GOATS.
Options:
-p, --project-name TEXT Specify a custom project name. Default is 'GOATS'.
-d, --directory PATH Specify the parent directory where GOATS is
installed. Default is the current directory.
-w, --workers INTEGER Number of workers to spawn for background tasks.
--addrport TEXT Specify the IP address and port number to serve
GOATS. Examples: '8000', '0.0.0.0:8000',
'192.168.1.5:8000'. Providing only a port number
(e.g., '8000') binds to 127.0.0.1.
--redis-addrport TEXT Specify the Redis server IP address and port
number. Examples: '6379', 'localhost:6379',
'192.168.1.5:6379'. Providing only a port number
(e.g., '6379') binds to localhost.
--help Show this message and exit.
On Linux platforms, if you encounter a warning regarding memory overcommitment, especially when running Redis, it may cause failures under low memory conditions. To resolve this, enable memory overcommitment.
Edit /ect/sysctl.conf
as root:
$ nano /etc/sysctl.conf
Add the configuration to the file:
vm.overcommit_memory = 1
Save and exit. Then apply the configuration:
$ sudo sysctl -p
For more information on memory overcommitment and its implications, see the jemalloc issue tracker.
You may see a warning when starting redis about THP. THP can create latency and memory usage issues with Redis. It's recommended to disable THP on systems that run Redis.
Issue the command as root:
$ echo never > /sys/kernel/mm/transparent_hugepage/enabled