There is No LSST Scheduler Peter Yoachim University of Washington, LSST 99% recycled slides from DESC last month
Traditional telescope scheduling Independent ranked observing proposals Discrete time blocks Typically over-subscribed 23:00-24:00 0:00 – 1:00 1:00-2:00 2:00-3:00 Proposal #1 Proposal #2 Proposal #3 Proposal #4 Proposal #5 Proposal #6
Given proposal constraints, try to fill in the table and maximize “TAC Happiness”. LCOGT, ZTF are solving this type of scheduling problem with Gyrobi Mixed Linear Programming 23:00-24:00 0:00 – 1:00 1:00-2:00 2:00-3:00 Proposal #1 (not up) Scheduled Scheduled X Proposal #2 X X X Scheduled Proposal #3 (not dark) X X X Proposal #4 (not up) X X X Proposal #5 Scheduled X X X Proposal #6 X X X X
LSST does not lend itself to this kind of scheduling • We have no TAC, we’re not oversubscribed • Time blocks would be only 30s, 2 million cells is a lot • We need to minimize slew times • Need to respond to weather/clouds 23:00-24:00 0:00 – 1:00 1:00-2:00 2:00-3:00 Proposal #1 (not up) Scheduled Scheduled X Proposal #2 X X X Scheduled Proposal #3 (not dark) X X X Proposal #4 (not up) X X X Proposal #5 Scheduled X X X Proposal #6 X X X X
We can’t really cast the LSST survey as a traditional telescope scheduling problem, so we have no scheduler 23:00-24:00 0:00 – 1:00 1:00-2:00 2:00-3:00 Proposal #1 (not up) Scheduled Scheduled X Proposal #2 X X X Scheduled Proposal #3 (not dark) X X X Proposal #4 (not up) X X X Proposal #5 Scheduled X X X Proposal #6 X X X X
We still need to point the telescope Given: • current conditions • future conditions • progress to date • how we want to take observations • what we want the final survey to look like Decide where we should observe. If you see the word “predict”, you should think Machine Learning. If you see “decide”, you should think Artificial Intelligence.
Scheduling LSST with Artificial Intelligence Resources (what we should have called it rather than “feature based scheduler”)
Top level of the AI, a decision tree Observe a DD field? Pick the DD sequence that reports highest reward Observe a large block of sky (and repeat)? Pick block with highest reward Observe a single pointing? Pick observation with highest reward
The DD logic is currently simple: • Are the filters needed loaded? • Is the LMST within acceptable range? • Has twilight not started? • Is there enough time before the next twilight starts? • Has the DD not exceeded it’s limit of total number of observations fraction? (~2% limit) • Has it been N days since last observed? • Is it not cloudy? If it checks out, returns a sequence to observe (currently no recovery for interruptions, could add that)
For surveying large areas Markov Decision Process (MDP): Mathematical framework for decision making. • Given the state of the system, pick the maximum “reward” • With good basis functions, there are few free parameters • Easy to optimize behavior • Formalism of “features” -> “basis functions” -> “Decision function” easy to map to OO-python implementation
A quick example: I ran a 30-day simulation • DD fields on • Only r-band. • Observe blocks in pairs (if time) • Just greedy snake otherwise Jupyter notebook can be seen here: http://ls.st/c6k
A HEALpix map that defines the desired distribution of observations 0.46 Nside=32 1 1.8 degree resolution 12,288 pixels (5292 pointings in our 0.15 usual tesselation)
The actual distribution of observations after 30 days
Survey Progress Basis Function: Scaled goal map minus actual observation map.
We can take HEALpix maps of airmass, seeing, and sky brightness to generate a map of the 5-sigma limiting depth.
Depth Basis Function: Compare the current 5- sigma map to the depth when it’s dark time on the meridian with nominal seeing. Good seeing + dark time at this moment means the best is ~0.3 mags better. High airmass is 0.74 mags worse than the typical meridian dark time.
Slewtime Basis Function
Filter change basis function (not relevant here since we are only r-band, but usually have a basis function for staying in a filter)
Final Reward Function linear combination of basis functions. • Survey progress (0.3) • 5-sigma depth (3) • Slewtime (3) • Filter change (3) Only 4 free parameters control the behavior of the AI. Small parameter space to explore, intuitive to optimize.
Once we have the reward map, a decision function uses it to take an action. Each night, generate a unique mapping of HEALpix to pointing. Decision function could take the top HEALpix, or a block in some azimuth range.
If we are selecting a block to observe, run convex-hull traveling salesperson to reduce slewtime.
SLAIR full-sky dither Undithered OpSim fields OpSim with HexDither
Again, near the SCP WFD boundary.
We can just add a dimension for each filter. Compute the basis functions and reward functions for each filter. Now decision function picks the highest reward in space and filter.
Results from selecting large regions (and observing pairs) Observe a DD field? DD1, DD2, DD3, DD4, … Observe a large block of sky for ~22 min (and repeat)? u, g+g, r+r, i+i, z, y Or u, g+r, r+i, i+g, z, y Observe a single observation? u, g, r, i, z, y
Taking pairs in the same filter, 2.2 million visits
Pairs in mixed filters, 2.1 million visits
Filters used through each night. Moon phase plotted on the bottom. Note lots of y and z at full moon. Few filter changes through night.
Taking pairs in different filters Depth basis function still forcing y and z at full moon, but getting lots of colors in night otherwise.
Alt sched for comparison Not using red filters in bright time. Bug or feature?
Rolling Cadence Experiment Before, define a goal target map
Now, have two maps, one for even years, one for odd.
Rolling cadence results (from Friday afternoon!): • 2.26 Million visits. • Looks good on SRD requirements • edge-effect so we end up with a always high cadence strip (bug or feature?)
How to change the AI behavior Change goal survey footprint maps • Adjust weights on basis functions • Increase slewtime weight, get more observations • Add new basis function(s) • Add a basis function that prefers observations in places • that haven’t been observed for 2-3 days. Update the survey progress basis function to use • different maps on even/odd years for rolling cadence Add a new survey tier • If we are in twilight, go use some totally different logic to • pick observations Have a top tier for ToO observations •
Conclusions: • Should have a new baseline based on SLAIR soon, so folks can start hacking off of that to put in their own strategies.
Grid scheduling doesn’t make sense for most of LSST, but it might work well for Deep Drilling fields. If we had other specific cadence pointings, could classically schedule them all then use the AI to fill in gaps. 23:00-24:00 0:00 – 1:00 1:00-2:00 2:00-3:00 Proposal #1 (not up) Scheduled Scheduled X Proposal #2 X X X Scheduled At 10 minute resolution, can break the 10 year survey into Proposal #3 (not dark) X X X ~260k time steps. Could be a good Proposal #4 (not up) X X X Gurobi optimization problem. Proposal #5 Scheduled X X X Proposal #6 X X X X
Summary • I have beta SLAIR simulations • Pairs in blocks • Pairs in different filters • Rolling cadence • Potential ToO interrupts https://lsst-web.ncsa.illinois.edu/sim- data/beta_slair_surveys/ http://ls.st/sg5 For wide area surveys, try to think in terms of building and training a decision process, not optimizing a schedule grid. Beta = I ignored cable wrap and have non-standard DB schema
Let’s hack! • Rolling cadence • Desired cadence basis function (2.5-3.5 days?) • ToO simulation • Full sky template collection? • Twilight survey • DDF scheduling, dithering • Camera rotational dithering • ComCam surveys • Ubercal basis function (make sure we get enough observations per year to close sky) • Year 1 survey (build up difference image templates)
Let’s be ridiculous with fonts
Recommend
More recommend