Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

Ampel-nuclear

Central repository to host AMPEL code to search for and analyze nuclear transients. At the moment, this is exclusively code from the ZTFbh science working group.

Installation

Prerequisites

You need to export environment variables for the AMPEL ZTF archive (tokens are available here), for Fritz, and for the dropbox API (ask Sjoert).

Furthermore, you need a running instance of MongoDB. On macOS, make sure you have the command line tools installed (in doubt, run xcode-select –install).

Setup

Create a fresh Python 3.10 conda env

conda create -n tde_filter_upgrade python=3.10
conda activate tde_filter_upgrade

Install is done via poetry:

pip install poetry 
git clone https://github.com/AmpelProject/ampel-nuclear
cd Ampel-nuclear
poetry install

Now we have to build the ampel config and install it in the conda env. Issue

ampel config install

Note: this will throw some import errors, but you can ignore these because those packages are not needed locally.

Now you need to export the following tokens

export AMPEL_ARCHIVE_TOKEN='' 
export DROPBOX_TOKEN=''
export FRITZ_TOKEN=''

Test

To run the test, start your local MongoDB. And then issue

./run_tde_scan.py -i

If you cannot execute the file, issue chmod +x run_tde_scan.py.

Note: To push the result of a run to the dropbox, add -p.

The -i initiates (and saves) a new archive API stream token. To request one day, use -d YYYY-MM-DD for a certain day. The script will request alerts for the 24 hours after this date.

Your can also use --daysago n to scan the last n days.

Note: When requesting a full day with -d or the last n days with --daysago n from the archive, the first run will probably fail, as the archive database has not fully ramped up yet (URL is locked). In this case, just rerun ./run_tde_scan.py, without any parameters except for -p if you want to enable dropbox-push to prevent requesting a new stream token and overwriting the current one until the archive starts serving alerts (you will see them getting ingested).

To check the output, go to the temp directory that gets created when script is run without -p (push to dropbox), or check the dropbox.

To see all available commands of the test script, run ./run_tde_scan.py -h.

Examples

./run_tde_scan.py -i --daysago 4 -p

This will perform a search for the last 4 days and push the results to the dropbox.

./run_tde_scan.py -i -d 2022-10-06

This will perform a search for October 6, 2022 and save the result in a local directory.

Archival run

1) Screen Session

Create a long-lived screen or tmux session on the DESY working group server, everything we will do from here will live in that session.

2) Configure nuclearfilter.yml

Think of a good channel name, we will use this later to extract statistics and the ZTF-IDs

Change this accordingly in the nuclearfilter.yml (name, prefix in the mongo section, and channel)

3) Initialize stream

notebooks/run_nuclearfilter.py is the script you need.

Enter the desired date range in this script (under date_start and date_end near the bottom of the script).

Then run notebooks/run_nuclearfilter.py --initiate to obtain a new stream token for this date range. This will end in an error (423 Client Error: Locked for url) but do not fret. This is expected, the archive needs to ramp up the query.

We are only interested in the new stream token generated, which can be found in the resume_token.json. Copy this token, and enter it in nuclearfilter.yml at line 27 (there will be an old token there, change it).

4) Wait

For some time (~ 15 minutes)

5) run with mail output

ampel job --schema nuclearfilter.yml  --config ampel_conf.yaml 2>&1 | mail -s "Nuclear filter archival run: Job finished" "simeon.reusch@desy.de"

Change the mail address in the command above accordingly.

If you immediately receive a mail, the archive has not yet ramped up. Wait for a bit and try again.

Finally, it will start receiving alerts from the archive. Now there is nothing left to do except to wait until you get an email that your job has finished.

6) Output

The list of all transients that pass the nuclear filter is now stored in TransientTable.csv

7) Get statistics

The log data can be inspected in the MongoDB under channelname (insert yours here) - log The code to evaluate that is located under ampel-nuclear/get_statistics.py

Metadata

Release files for ampel-nuclear 0.8.4a1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for ampel-nuclear 0.8.4a1
File Size Uploaded
ampel_nuclear-0.8.4a1.tar.gz 6.5 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for ampel-nuclear 0.8.4a1
File Interpreter ABI Platform
ampel_nuclear-0.8.4a1-py3-none-any.whl Python 3 none any Details

Total release size: 13.2 MB

Release files / ampel_nuclear-0.8.4a1.tar.gz

Download URL ampel_nuclear-0.8.4a1.tar.gz
Size 6.5 MB
Tags Source
SHA-256 checksum
How to use checksums
4eb40b127c52dac0402d1cc98594f02c7c5df800d1168ab7afdbbc1f4af8f663
BLAKE2b-256 checksum
How to use checksums
c1bff3670aae40b6ee2a7d5a0c66e3a2fd91f204af474c9a7ba2884a8de1c1b5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.8.3 CPython/3.10.14 Linux/6.5.0-1021-azure

Release files / ampel_nuclear-0.8.4a1-py3-none-any.whl

Download URL ampel_nuclear-0.8.4a1-py3-none-any.whl
Size 6.8 MB
Tags Python 3
SHA-256 checksum
How to use checksums
a8eb5d13f601ce1e9241d4d76ac992734804609c27ed3a60d7f4cf2d2e3d068b
BLAKE2b-256 checksum
How to use checksums
341d0e3b50d3cfd3103ddac22749581d45ee96d09fa0d088097359b76d5757bf
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.8.3 CPython/3.10.14 Linux/6.5.0-1021-azure
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page