/
sv2_targetmask.yaml
318 lines (285 loc) · 16.8 KB
/
sv2_targetmask.yaml
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
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
#- SV2 primary survey targets bit mask: dark survey + calib +
sv2_desi_mask:
- [LRG, 0, "LRG", {obsconditions: DARK}]
- [ELG, 1, "ELG", {obsconditions: DARK|GRAY}]
- [QSO, 2, "QSO", {obsconditions: DARK}]
#- ADM QSO sub-classes
- [QSO_HIZ, 4, "QSO selected using high-redshift Random Forest (informational bit)", {obsconditions: DARK}]
#- North vs. South selections
- [LRG_NORTH, 8, "LRG cuts tuned for Bok/Mosaic data", {obsconditions: DARK}]
- [ELG_NORTH, 9, "ELG cuts tuned for Bok/Mosaic data", {obsconditions: DARK|GRAY}]
- [QSO_NORTH, 10, "QSO cuts tuned for Bok/Mosaic data", {obsconditions: DARK}]
- [LRG_SOUTH, 16, "LRG cuts tuned for DECam data", {obsconditions: DARK}]
- [ELG_SOUTH, 17, "ELG cuts tuned for DECam data", {obsconditions: DARK|GRAY}]
- [QSO_SOUTH, 18, "QSO cuts tuned for DECam data", {obsconditions: DARK}]
#- Calibration targets
- [SKY, 32, "Blank sky locations",
{obsconditions: DARK|GRAY|BRIGHT|BACKUP|TWILIGHT12|TWILIGHT18}]
- [STD_FAINT, 33, "Standard stars for dark/gray conditions", {obsconditions: DARK|GRAY}]
- [STD_WD, 34, "White Dwarf stars", {obsconditions: DARK|GRAY|BRIGHT}]
- [STD_BRIGHT, 35, "Standard stars for BRIGHT conditions",
{obsconditions: BRIGHT}]
- [BAD_SKY, 36, "Blank sky locations that are imperfect but still useable",
{obsconditions: DARK|GRAY|BRIGHT|BACKUP|TWILIGHT12|TWILIGHT18}]
- [SUPP_SKY, 37, "SKY is based on Gaia-avoidance (SKY will be set, too)",
{obsconditions: DARK|GRAY|BRIGHT|BACKUP|TWILIGHT12|TWILIGHT18}]
#- Reserving some bits that we may not use
# - [STD_FAINT_BEST, 38, "High quality faint standard stars", {obsconditions: DARK|GRAY}]
# - [STD_BRIGHT_BEST, 39, "High quality bright standard stars", {obsconditions: BRIGHT}]
#- Reserved convenience bits that can, e.g., be set downstream of desitarget
- [NO_TARGET, 49, "No known target at this location",
{obsconditions: DARK|GRAY|BRIGHT|BACKUP|TWILIGHT12|TWILIGHT18}]
#- Related to bright object masking
- [BRIGHT_OBJECT, 50, "Known bright object to avoid", {obsconditions: APOCALYPSE}]
- [IN_BRIGHT_OBJECT, 51, "Too near a bright object; DO NOT OBSERVE", {obsconditions: APOCALYPSE}]
- [NEAR_BRIGHT_OBJECT, 52, "Near a bright object but ok to observe",
{obsconditions: DARK|GRAY|BRIGHT|BACKUP|TWILIGHT12|TWILIGHT18}]
#- A bit for another survey is set
- [BGS_ANY, 60, "Any BGS bit is set", {obsconditions: IGNORE}]
- [MWS_ANY, 61, "Any MWS bit is set", {obsconditions: IGNORE}]
- [SCND_ANY , 62, "Any secondary bit is set",
{obsconditions: DARK|GRAY|BRIGHT|BACKUP|TWILIGHT12|TWILIGHT18}]
#- Bright Galaxy Survey
sv2_bgs_mask:
- [BGS_FAINT, 0, "BGS faint targets", {obsconditions: BRIGHT|GRAY|DARK}]
- [BGS_BRIGHT, 1, "BGS bright targets", {obsconditions: BRIGHT}]
- [BGS_WISE, 2, "BGS wise targets", {obsconditions: BRIGHT}]
- [BGS_FAINT_HIP, 3, "BGS faint targets at bright priority", {obsconditions: BRIGHT}]
#- BGS North vs. South selections
- [BGS_FAINT_NORTH, 8, "BGS faint cuts tuned for Bok/Mosaic", {obsconditions: BRIGHT|GRAY|DARK}]
- [BGS_BRIGHT_NORTH, 9, "BGS bright cuts tuned for Bok/Mosaic", {obsconditions: BRIGHT}]
- [BGS_WISE_NORTH, 10, "BGS WISE cuts tuned for Bok/Mosaic", {obsconditions: BRIGHT}]
- [BGS_FAINT_SOUTH, 16, "BGS faint cuts tuned for DECam", {obsconditions: BRIGHT|GRAY|DARK}]
- [BGS_BRIGHT_SOUTH, 17, "BGS bright cuts tuned for DECam", {obsconditions: BRIGHT}]
- [BGS_WISE_SOUTH, 18, "BGS WISE cuts tuned for DECam", {obsconditions: BRIGHT}]
#- Milky Way Survey
sv2_mws_mask:
# First layer defines main samples -- these are expected to have distinct
# input catalogues.
#- Bits 0-3 (7 ids)
- [MWS_BROAD, 0, "Milky Way Survey magnitude limited bulk sample", {obsconditions: BRIGHT}]
- [MWS_WD, 1, "Milky Way Survey White Dwarf", {obsconditions: BRIGHT|GRAY|DARK}]
- [MWS_NEARBY, 2, "Milky Way Survey volume-complete ~100pc sample", {obsconditions: BRIGHT}]
# Second layer flags additional subclasses that could apply to any
# of the main classes. These sort targets in each input catalog into
# distinct groups for the purpose of assigning priorities and observing
# conditions.
# e.g. MWS_MAIN & MWS_LOW_GAL_B & MWS_MAIN_FAINT & MWS_PLX & MWS_REOBS
# => A main sample star at low galactic latitude, faint enough to be
# considered filler but with parallax factored into the subpriority and
# targeted for reobservation if possible.
#- 4: MWS_BROAD north/south splits
- [MWS_BROAD_NORTH, 4, "Milky Way Survey cuts tuned for Bok/Mosaic", {obsconditions: BRIGHT}]
- [MWS_BROAD_SOUTH, 5, "Milky Way Survey cuts tuned for DECam", {obsconditions: BRIGHT}]
#- 6: MWS BHBs
- [MWS_BHB, 6, "Milky Way Survey Blue Horizontal Branch stars", {obsconditions: BRIGHT|GRAY|DARK}]
#- 8: Sub-classes of MWS_MAIN
- [MWS_MAIN_BLUE, 8, "Milky Way Survey magnitude limited blue sample", {obsconditions: BRIGHT}]
- [MWS_MAIN_BLUE_NORTH, 9, "MWS magnitude limited blue sample tuned for Bok/Mosaic", {obsconditions: BRIGHT}]
- [MWS_MAIN_BLUE_SOUTH, 10, "MWS magnitude limited blue sample tuned for DECam", {obsconditions: BRIGHT}]
- [MWS_MAIN_RED, 11, "Milky Way Survey magnitude limited red sample", {obsconditions: BRIGHT}]
- [MWS_MAIN_RED_NORTH, 12, "MWS magnitude limited red sample tuned for Bok/Mosaic", {obsconditions: BRIGHT}]
- [MWS_MAIN_RED_SOUTH, 13, "MWS magnitude limited red sample tuned for DECam", {obsconditions: BRIGHT}]
# ADM Standard stars based only on Gaia.
- [GAIA_STD_FAINT, 33, "Standard stars for dark/gray conditions", {obsconditions: DARK|GRAY}]
- [GAIA_STD_WD, 34, "White Dwarf stars", {obsconditions: DARK|GRAY|BRIGHT}]
- [GAIA_STD_BRIGHT, 35, "Standard stars for BRIGHT conditions", {obsconditions: BRIGHT}]
# ADM back-up targets for poor conditions and as filler.
- [BACKUP_BRIGHT, 60, "Bright backup Gaia targets", {obsconditions: BACKUP|TWILIGHT12|TWILIGHT18}]
- [BACKUP_FAINT, 61, "Fainter backup Gaia targets", {obsconditions: BACKUP|TWILIGHT12|TWILIGHT18}]
- [BACKUP_VERY_FAINT, 62, "Even fainter backup Gaia targets", {obsconditions: BACKUP|TWILIGHT12|TWILIGHT18}]
#- ADM secondary survey targets bit mask.
#- ADM note that the 'filenames', here, should all be present in the
#- ADM directory that corresponds to the $SECONDARY_DIR environment
#- ADM variable, e.g. $SECONDARY_DIR/veto.fits for VETO targets.
sv2_scnd_mask:
- [VETO, 0, "Never observe, even if a primary target bit is set",
{obsconditions: DARK|GRAY|BRIGHT|BACKUP|TWILIGHT12|TWILIGHT18, filename: 'veto', flavor: 'SPARE', downsample: 1}]
- [DR16Q, 1, "Known quasars from the SDSS DR16Q catalog",
{obsconditions: DARK|GRAY, filename: 'dr16q', flavor: 'SPARE', downsample: 1}]
# ADM reserve 60/61 in scnd_mask for Targets of Opportunity in both SV and the Main Survey.
- [BRIGHT_TOO, 60, "Targets of Opportunity from rolling ledger", {obsconditions: BRIGHT, flavor: 'TOO'}]
- [DARK_TOO, 61, "Targets of Opportunity from rolling ledger", {obsconditions: DARK, flavor: 'TOO'}]
#- Observation State
#- if a target passes more than one target bit, it is possible that one bit
#- will consider the observations "DONE" while another bit will want "MORE".
#- DONOTOBSERVE trumps MORE which trumps DONE
# ADM The MORE_MIDZQSO priority is driven by secondary programs from Gontcho a Gontcho (1.4 < z < 2.1)
# ADM and Weiner et al. (0.7 < z < 2.1) to reobserve confirmed quasars where possible. The priority
# ADM of 100 should only be higher than DONE (and secondary filler) targets.
sv2_obsmask:
- [UNOBS, 0, "unobserved"]
- [OBS, 1, "observed but no spectro pipeline answer yet"]
- [DONE, 2, "enough observations already obtained"]
- [MORE_ZWARN, 3, "ambiguous redshift; need more observations"]
- [MORE_ZGOOD, 4, "redshift known; need more observations"]
- [MORE_MIDZQSO, 8, "z > 0.7 QSO; more observations at very low priority"]
- [DONOTOBSERVE, 16, "Do not observe this target (possibly temporarily)"]
#- Priorities for each target bit
#- Numerically larger priorities are higher priority to be observed first.
#- NOTE: these aren't a bitmask, they are a mapping from bit -> priority
#- SAME_AS_XXX means to use the priorities for bitname XXX
#- -1 means the concept of priority doesn't really apply to this target class
#- Every target bit must define priority for "UNOBS"
#- Default priority for "MORE_ZGOOD" and "MORE_ZWARN" is same as "UNOBS"
#- Other states are default 1 unless specified here
#- -1 means that the concept of priority doesn't apply to this bit
priorities:
#- Dark Survey: priorities 3000 - 3999
sv2_desi_mask:
# ADM safest to set MORE_ZGOOD for ELGs/LRGs to DONE PROVIDED they have NUMOBS=1 as
# ADM they can match QSO targets that require multiple observations and trump those
# ADM QSOs with a higher priority. There is a unit test to check NUMOBS=1 for ELGs/LRGs.
ELG: {UNOBS: 3000, MORE_ZGOOD: 2, DONE: 2, OBS: 1, DONOTOBSERVE: 0}
LRG: {UNOBS: 3200, MORE_ZGOOD: 2, DONE: 2, OBS: 1, DONOTOBSERVE: 0}
# ADM The MORE_MIDZQSO priority is driven by secondary programs from Gontcho a Gontcho (1.4 < z < 2.1)
# ADM and Weiner et al. (0.7 < z < 2.1) to reobserve confirmed quasars where possible. The priority
# ADM of 100 should only be higher than DONE (and secondary filler) targets.
QSO: {UNOBS: 3400, MORE_ZGOOD: 3350, MORE_ZWARN: 3300, MORE_MIDZQSO: 100, DONE: 2, OBS: 1, DONOTOBSERVE: 0}
# ADM don't prioritize a N/S target if it doesn't have other bits set
LRG_NORTH: {UNOBS: 0, DONE: 0, OBS: 0, DONOTOBSERVE: 0}
QSO_HIZ: SAME_AS_LRG_NORTH
ELG_NORTH: SAME_AS_LRG_NORTH
QSO_NORTH: SAME_AS_LRG_NORTH
LRG_SOUTH: SAME_AS_LRG_NORTH
ELG_SOUTH: SAME_AS_LRG_NORTH
QSO_SOUTH: SAME_AS_LRG_NORTH
BAD_SKY: {UNOBS: 0, OBS: 0, DONE: 0, MORE_ZWARN: 0, MORE_ZGOOD: 0}
#- Standards and sky are treated specially; priorities don't apply
STD_FAINT: -1
STD_WD: -1
SKY: -1
SUPP_SKY: -1
STD_BRIGHT: -1
# STD_FAINT_BEST: -1
# STD_BRIGHT_BEST: -1
NO_TARGET: -1
#- placeholders to show we haven't forgotten these bits, but the
#- exact bits in the other sections define the priorities
BRIGHT_OBJECT: -1
IN_BRIGHT_OBJECT: -1
NEAR_BRIGHT_OBJECT: -1
BGS_ANY: -1
MWS_ANY: -1
SCND_ANY: -1
#- Bright Galaxy Survey: priorities 2000-2997
# ADM reserve 2998 for MWS_WD (ensuring a priority below Dark Survey targets, just in case)
#- reobserving successes has lower priority than MWS
sv2_bgs_mask:
BGS_FAINT: {UNOBS: 2000, MORE_ZWARN: 2, MORE_ZGOOD: 1000, DONE: 2, OBS: 1, DONOTOBSERVE: 0}
BGS_BRIGHT: {UNOBS: 2100, MORE_ZWARN: 2, MORE_ZGOOD: 1000, DONE: 2, OBS: 1, DONOTOBSERVE: 0}
BGS_WISE: {UNOBS: 2000, MORE_ZWARN: 2, MORE_ZGOOD: 1000, DONE: 2, OBS: 1, DONOTOBSERVE: 0}
BGS_FAINT_HIP: {UNOBS: 2100, MORE_ZWARN: 2, MORE_ZGOOD: 1000, DONE: 2, OBS: 1, DONOTOBSERVE: 0}
# ADM don't prioritize a N/S target if it doesn't have other bits set
BGS_FAINT_SOUTH: {UNOBS: 0, MORE_ZWARN: 0, MORE_ZGOOD: 0, DONE: 0, OBS: 0, DONOTOBSERVE: 0}
BGS_FAINT_NORTH: SAME_AS_BGS_FAINT_SOUTH
BGS_BRIGHT_SOUTH: SAME_AS_BGS_FAINT_SOUTH
BGS_BRIGHT_NORTH: SAME_AS_BGS_FAINT_SOUTH
BGS_WISE_SOUTH: SAME_AS_BGS_FAINT_SOUTH
BGS_WISE_NORTH: SAME_AS_BGS_FAINT_SOUTH
#- Milky Way Survey: priorities 1000-1999
# ADM WDs should be prioritized above BGS at 2998
sv2_mws_mask:
MWS_BROAD: {UNOBS: 1400, MORE_ZWARN: 2, MORE_ZGOOD: 2, DONE: 2, OBS: 1, DONOTOBSERVE: 0}
MWS_WD: {UNOBS: 2998, MORE_ZWARN: 2, MORE_ZGOOD: 2, DONE: 2, OBS: 1, DONOTOBSERVE: 0}
MWS_NEARBY: {UNOBS: 1600, MORE_ZWARN: 2, MORE_ZGOOD: 2, DONE: 2, OBS: 1, DONOTOBSERVE: 0}
MWS_BHB: {UNOBS: 1550, MORE_ZWARN: 2, MORE_ZGOOD: 2, DONE: 2, OBS: 1, DONOTOBSERVE: 0}
# ADM don't prioritize a N/S target if it doesn't have other bits set
MWS_BROAD_NORTH: {UNOBS: 0, DONE: 0, OBS: 0, DONOTOBSERVE: 0}
MWS_BROAD_SOUTH: SAME_AS_MWS_BROAD_NORTH
MWS_MAIN_BLUE: {UNOBS: 1500, MORE_ZWARN: 2, MORE_ZGOOD: 2, DONE: 2, OBS: 1, DONOTOBSERVE: 0}
MWS_MAIN_BLUE_NORTH: SAME_AS_MWS_BROAD_NORTH
MWS_MAIN_BLUE_SOUTH: SAME_AS_MWS_BROAD_NORTH
MWS_MAIN_RED: SAME_AS_MWS_MAIN_BLUE
MWS_MAIN_RED_NORTH: SAME_AS_MWS_BROAD_NORTH
MWS_MAIN_RED_SOUTH: SAME_AS_MWS_BROAD_NORTH
BACKUP_BRIGHT: {UNOBS: 9, DONE: 2, OBS: 1, DONOTOBSERVE: 0}
BACKUP_FAINT: {UNOBS: 8, DONE: 2, OBS: 1, DONOTOBSERVE: 0}
BACKUP_VERY_FAINT: {UNOBS: 7, DONE: 2, OBS: 1, DONOTOBSERVE: 0}
# ADM Standards are special; priorities don't apply.
GAIA_STD_FAINT: -1
GAIA_STD_WD: -1
GAIA_STD_BRIGHT: -1
# ADM secondary target priorities. Probably all have very low UNOBS...
sv2_scnd_mask:
# ADM ...except VETO, which is special and always takes precedence.
VETO: {UNOBS: 10000, DONE: 10000, OBS: 0, DONOTOBSERVE: 0}
DR16Q: {UNOBS: 10, DONE: 2, OBS: 1, DONOTOBSERVE: 0}
BRIGHT_TOO: {UNOBS: 9999, DONE: 2, OBS: 1, DONOTOBSERVE: 0}
DARK_TOO: SAME_AS_BRIGHT_TOO
# ADM INITIAL number of observations (NUMOBS_INIT) for each target bit
# ADM SAME_AS_XXX means to use the NUMOBS_INIT for bitname XXX
# ADM -1 means that the concept of NUMOBS_INIT doesn't apply to this bit
numobs:
# ADM initial number of observations for targets in the main (dark time) survey
sv2_desi_mask:
ELG: 1
LRG: 1
QSO: 4
# ADM don't observe a N/S target if it doesn't have other bits set
LRG_NORTH: 0
ELG_NORTH: 0
QSO_NORTH: 0
LRG_SOUTH: 0
ELG_SOUTH: 0
QSO_SOUTH: 0
BAD_SKY: 0
#- Standards and sky are treated specially; NUMOBS doesn't apply
STD_FAINT: -1
STD_WD: -1
SKY: -1
SUPP_SKY: -1
STD_BRIGHT: -1
# STD_FAINT_BEST: -1
# STD_BRIGHT_BEST: -1
NO_TARGET: -1
#- placeholders to show we haven't forgotten these bits, but the
#- exact bits in the other sections define the number of observations
QSO_HIZ: -1
BRIGHT_OBJECT: -1
IN_BRIGHT_OBJECT: -1
NEAR_BRIGHT_OBJECT: -1
BGS_ANY: -1
MWS_ANY: -1
SCND_ANY: -1
# ADM initial number of observations for targets in the Bright Galaxy Survey
sv2_bgs_mask:
BGS_FAINT: 1
BGS_BRIGHT: 1
BGS_WISE: 1
BGS_FAINT_HIP: 1
# ADM don't observe a N/S target if it doesn't have other bits set
BGS_FAINT_SOUTH: 0
BGS_FAINT_NORTH: 0
BGS_BRIGHT_SOUTH: 0
BGS_BRIGHT_NORTH: 0
BGS_WISE_SOUTH: 0
BGS_WISE_NORTH: 0
# ADM initial number of observations for targets in the Bright Galaxy Survey
sv2_mws_mask:
MWS_BROAD: 1
MWS_WD: 1
MWS_NEARBY: 1
MWS_BHB: 1
# ADM don't observe a N/S target if it doesn't have other bits set
MWS_BROAD_NORTH: 0
MWS_BROAD_SOUTH: 0
MWS_MAIN_BLUE: 1
MWS_MAIN_BLUE_NORTH: 0
MWS_MAIN_BLUE_SOUTH: 0
MWS_MAIN_RED: SAME_AS_MWS_MAIN_BLUE
MWS_MAIN_RED_NORTH: 0
MWS_MAIN_RED_SOUTH: 0
BACKUP_BRIGHT: 1
BACKUP_FAINT: SAME_AS_BACKUP_BRIGHT
BACKUP_VERY_FAINT: SAME_AS_BACKUP_BRIGHT
# ADM Standards are special; numobs doesn't apply.
GAIA_STD_FAINT: -1
GAIA_STD_WD: -1
GAIA_STD_BRIGHT: -1
# ADM initial number of observations for secondary targets
sv2_scnd_mask:
VETO: 1
DR16Q: 1
BRIGHT_TOO: 1
DARK_TOO: SAME_AS_BRIGHT_TOO