-
Notifications
You must be signed in to change notification settings - Fork 2
/
icecube_plan.py
65 lines (55 loc) · 1.71 KB
/
icecube_plan.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
#!/usr/bin/env python3
import logging
from astropy.time import Time # type:ignore
from planobs.api import Queue
from planobs.models import TooTarget
from planobs.multiday_plan import MultiDayObservation
from planobs.plan import PlanObservation
logging.basicConfig()
logging.getLogger("planobs.plan").setLevel(logging.INFO)
logging.getLogger("planobs.gcn_parser").setLevel(logging.INFO)
name = "IC231103A" # Name of the alert object
max_airmass = 2
date = "2023-11-04"
fieldid = 747
# date = "2023-08-23"
plan = PlanObservation(
name=name,
date=date,
alertsource="icecube",
switch_filters=False,
max_airmass=max_airmass,
obswindow=8,
)
plan.plot_target() # Plots the observing conditions
plan.request_ztf_fields() # Checks in which ZTF fields
observationplan = MultiDayObservation(
name=name,
date=date,
startdate=date,
obswindow=8,
max_airmass=max_airmass,
switch_filters=False,
fieldid=fieldid, # if you want to override recommended field
)
observationplan.print_plan()
summary = observationplan.summarytext
triggers = observationplan.triggers
q = Queue(user="DESY")
for i, trigger in enumerate(triggers):
mjd_now = Time.now().mjd
if trigger["mjd_start"] > mjd_now:
q.add_trigger_to_queue(
trigger_name=f"ToO_{name}_{fieldid}",
validity_window_start_mjd=trigger["mjd_start"],
validity_window_end_mjd=trigger["mjd_end"],
targets=[
TooTarget(
field_id=trigger["field_id"],
filter_id=trigger["filter_id"],
exposure_time=trigger["exposure_time"],
)
],
)
q.print()
# q.submit_queue() # uncomment to submit for real