NRAO Home  >  Green Bank  |  Wiki Topic:    GB > Software > PlanOfRecordC32006 > ModificationRequest14C306
   Changes | Index | Contents | Search | Statistics | Go

Add LST Capabilities to Scheduling Blocks

Modification Request #14 (C3 2006)



1. Introduction

Observers need the ability to write scheduling blocks with behavior that is conditional upon current conditions, especially the position of the earth relative to the sources to be observed. This MR addresses rudimentary aspects of this need by providing scheduling block facilities for handling LST and the rising and setting of sources.

2. Background

Currently, scheduling blocks handle time as Ygor does, i.e., times may only be represented by UTC constants. Also, turtle provides no error checking of the user-specified times, e.g., if the user requests a scan start time which is in the past, that time is directly passed on to the telescope control system which does not detect the error until the beginning of the scan; this in turn causes the subscan to fail with an abort. A long-term goal of scheduling blocks is to provide observers with enough flexibility that they can write scheduling blocks which are capable of anticipating possible failure conditions and respond accordingly. In addition, if turtle is ever to be used as a batch processing system, i.e., the scheduling blocks are initiated by an operator in the order and time s/he determines, then it will have to be sensitive to the current position of the earth, i.e., the current LST.

3. Requirements

New Capabilities

New Constructs Described as User Documentation

In Observing API Building Blocks Section

circumpolar GetRise() GetSet()
northern (never sets) current time None
southern (never rises) None current time

In Observing Directives Section

    while GetLST() < 13.5:
        PointMap("1153+1107", 
                 Offset("B1950", 1.50, 0.00, cosv=False),
                 Offset("B1950", 0.00, 1.50, cosv=False),
                 Offset("B1950", 0.50, 0.00, cosv=False),
                 Offset("B1950", 0.00, 0.50, cosv=False),
                 2.0)

    h = Horizon(15.0)
    while Now() < h.GetSet("1153+1107"):
        PointMap("1153+1107", 
                 Offset("B1950", 1.50, 0.00, cosv=False),
                 Offset("B1950", 0.00, 1.50, cosv=False),
                 Offset("B1950", 0.50, 0.00, cosv=False),
                 Offset("B1950", 0.00, 0.50, cosv=False),
                 2.0)

In GBT Scan Types Section

The current definitions of the scan type parameters affecting timing are:

The new definitions are:

Conditions and Exceptions

4. Design

All changes are limited to the Observation Management System (i.e. turtle). No changes to the M&C Managers are necessary.

5. Deployment Checklist

Standard sparrow build and install procedures along with copying the user documentation in this MR to the wiki documentations as titled in the subsections above (Building Blocks, Observing Directives, and Scan Types) should be sufficient. A small overview of typical scheduling blocks which use LST conditionals will be added by the sponsor to ObservingTools after some experience is gained working with these new constructs.

Because the new observing directives will encourage users to create loops dependent on time, e.g., WaitFor?(), it has become more likely that they will generate observing scripts that will not validate because of infinite loops or skip key sections. Until a solution is determined, the documentation must have a caveat in the Observing Directives section explaining the problem and providing work arounds.

6. Out of Scope

Scan type do not attempt to determine if a given start time in the future is attainable, i.e., can the antenna slew to position before the requested start time. Astrid uses Ygor's "old college try" approach, i.e., when given a specific start time it starts the scan at the time regardless if on source or not. A future MR needs to address this by having the scan types skip scans or readjust the start time for too-early requested start times by computing a coarse estimate of the requisite slew time.

Need to develope a means of having observing directives and/or time-dependent code from causing observing scripts from failing validation.

7. Test Plan

As usual unit tests will be used to test as much as possible.

On the simulator and telescope:

source characteristic GetRise(S, t0) GetSet(S, t0)
risen tr- DONE ts+ DONE
set tr+ DONE ts+ DONE
never sets t0 DONE None DONE
never rises None DONE t0 DONE


Signatures

APPROVED: I acknowledge that my request is fully contained in this MR, and if the SDD delivers exactly what I specified, I will be happy.

ACCEPTED: I acknowledge that I have validated the completed code according to the acceptance tests, and I am happy with the results.

Written DONE - MarkClark - 18 May 2006
Checked DONE - AmyShelton - 18 May 2006
Approved by Sponsor DONE - FrankGhigo - 18 May 2006
Approved by CCC DONE - RichardPrestage - 07 June 2006
Accepted/Delivered by Sponsor DONE - FrankGhigo - 20 June 2006

Symbols:


CCC Discussion Area

Attachment: sort Action: Size: Date: Who: Comment:
mxDateTime.html action 109191 26 Apr 2006 - 14:14 MarkClark mx.DateTime

Topic ModificationRequest14C306 . { Edit | Attach | Ref-By | Printable | Diffs | r1.64 | > | r1.63 | > | r1.62 | More }
Revision r1.64 - 22 Jun 2006 - 14:39 GMT - AmyShelton
Parents: PlanOfRecordC32006
Content copyright © 1999-2007 by the contributing authors.
All material on this collaboration platform is the property of the contributing authors.