! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! ! SDDL Name: QSCHEDULING.SDDL ! ! Purpose: This SDDL file defines the qscheduling relation. ! ! Modification History: ! ! Date PR Who Reason ! -------- ------- --- ------------------------------------------------- ! 10/25/94 27329 EGB Original implementation ! 01/20/95 27845 MRB Added af_rev_number for partial trans generation ! 02/02/95 28292 SK Modified "REPLICATION" wording under ! SUBSYSTEM_USING ! 03/14/94 28429 RJS Updated comments. ! 04/10/95 31227 MRB Added est_orbits, removed branching_su ! 04/29/95 31227.1 MRB Change est_orbits description with Bauer comments ! 02/07/97 33001 SXT Rename QSLINK_SPEC to QSLINK_TIMING ! 12/12/97 27706 EGB Remove reconfig_seq ! 12/12/97 29733 MRB Add C output ! 04/16/98 31837 MRB Change field name from su_load_date to af_load_date !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! ! LANGUAGE C, FORTRAN, SQL INCLUDE ZSPSS_USER_TYPES.SDDL RECORD SUNIT_TYPE !------------------------------------------------------------------------------ ! ! RECORD INFORMATION ! !------------------------------------------------------------------------------ DESCRIPTION "This is the master relation for scheduling unit data in the PMDB. A scheduling unit consists of one or more observation sets and is the higher level input to the SPSS calendar scheduling utilities. A synonym for a scheduling unit in SPSS is a 'candidate.' SU is the common acronym seen for a scheduling unit. There are different types of scheduling units. The types relate specifically to how they are placed on the SPSS calendar. The types are listed below with an brief explanation of each. MAIN (PRIMARY) SU A main SU is a scheduling unit that contains prime science observations. These main SUs will typically contain maneuvering activities to achieve the proper spacecraft pointing. They may or not restrict (or preclude) other scheduling units from sharing that prime calendar time. ATTACHED PARALLEL SU An attached parallel SU is a scheduling unit that contains targeted science alignments. The trick with this type of SU is that it shares the pointing of some main SU, hence it gets attached to it on the calendar. TARGETED INTERLEAVER SU A targeted interleaver SU requires minor vehicle positioning changes within a main SU in order to collect science data on the interleaved science. NON-TARGETED INTERLEAVER SU A non-targeted interleaver has no pointing requirements (since it has no target) and does not require any ST maneuvers to schedule. Earth calibrations can be scheduled as non-targeted interleavers for example. UNATTACHED PARALLEL SU An unattached parallel SU is a non-targeted parallel SU that can be scheduled on top of a main, interleaver, or other parallel SUs. Because it is non-targeted it has no on-sky pointing requirements. There will be no attachment data stored in qparallels for these types of SUs. LINKED SU A linked scheduling unit is one that has a well defined timing/orient relationship with one or more other scheduling units. This timing/orient relationship is defined in a 'linked set' and is stored in the relation qslink_timing/qslink_orient. A linked SU can be scheduled as main, parallel, or interleaver SU. " !------------------------------------------------------------------------------ ! ! FIELD INFORMATION ! !------------------------------------------------------------------------------ FIELD sunit_id TYPE SUNIT_ID_TYPE FORM NAME "SGD" LABEL "SCHEDULING UNIT ID" END_FORM END_FIELD FIELD version_num TYPE VERSION_NUM_TYPE DESCRIPTION "There can be different versions of a scheduling unit scheduled on different C&C Lists." FORM NAME "SGD" LABEL "VERSION NUM" END_FORM END_FIELD FIELD last_update TYPE TIME_STAMP_TYPE DESCRIPTION "This field contains the time that the SU data was updated. The setting of this field will typically happen through the PFORMs software and it will occur when data at subordinate levels (observation set, alignment, exposure) is updated that is a part of the scheduling unit." RELATED_FIELDS "qscheduling.auto_update", "qscheduling.af_load_date" FORM NAME "SGD" LABEL "DATE OF LAST UPDATE" END_FORM END_FIELD FIELD over_priorit TYPE C1 DESCRIPTION "This field can be set to disable the calculation of the scheduling unit priority field (done at PMDB/UPDATE time). If overridden, by setting this field to 'O', then you can set the priority directly via the PFORM SGD and it will not be altered by successive PMDB/UPDATE/TYPE=SU runs. If this field is set at 'D', then it will be recalculated." RELATED_FIELDS "qscheduling.priority" FORM NAME "SGD" LABEL "PRIORITY OVERRIDE FLAG (D/O)" END_FORM DISCRETE "D", "O" END_FIELD FIELD priority TYPE I2 DESCRIPTION "The scheduling unit priority can affect how it is considered during calendar scheduling using CALENDAR/AUTO. Higher priority (100 is the highest) SUs are given preferential treatment by AUTO. This field is calculated at PMDB/UPDATE/TYPE=SU by taking the MAX of all the observation set priorities." RELATED_FIELDS "qscheduling.over_priorit", "qbs_obset.pri_proposer" FORM NAME "SGD" LABEL "PRIORITY (1-100)" END_FORM RANGE "1-100" END_FIELD FIELD max_pathtime TYPE I4 UNITS "SECONDS" DESCRIPTION "The maximum path time of a scheduling unit is the sum of the estimated alignment durations, pcs acquisition times (constant coefficient), small angle maneuvers, and minimum slews between obsets. The minimum obset and alignment separation is also taken into account during this calculation (during PMDB/UPDATE/TYPE=SU). The placement of an SU onto a calendar will only be attempted if this max_pathtime field is smaller than the size of the calendar place." FORM NAME "SGD" LABEL "MAX PATH TIME" END_FORM END_FIELD FIELD max_data_vol TYPE R4 UNITS "KILOBITS" DESCRIPTION "This field contains the maximum SU data volume. It is set based on calculations during PMDB/UPDATE/TYPE=SU. It is the summation of the data volume estimates for all alignments in the scheduling unit. During scheduling SPSS will not permit an SU to violate data volume constraints. That means there is a certain amount of data that can be taken during a certain time frame. This data volume constraint information is stored in the widcr_parms relation." RELATED_FIELDS "qalignment.data_volume", "widcr_parms.check_datavl", "widcr_parms.check_tapevl" FORM NAME "SGD" LABEL "MAX DATA VOL (kbits)" END_FORM END_FIELD FIELD interleave TYPE YES_NO_FLAG_TYPE DESCRIPTION "When this field is 'Y' it means this scheduling unit can be interleaved by activities from other scheduling units. The calendar timeline will have a mixture of activities from multiple scheduling units within the time span of a single scheduling unit. Setting this flag to 'N' will not allow the interleaving of activities to occur. Finally, this field only applies to targeted interleavers that would require vehicle maneuvering to obtain the interleaved science." FORM NAME "SGD" LABEL "INTERLEAVERS ALLOWED (Y/N)" END_FORM END_FIELD FIELD sis_used TYPE I2 DESCRIPTION "This field is a bit map that indicates what science instruments are being used in this scheduling unit. It is set during PMDB/UPDATE/TYPE=SU by polling all the exposures within this scheduling unit and keeping track of all the SIs used in those exposures. Within this field, a specific bit will correspond to a specific instrument. If the bit is on or '1', then that instrument is used within this scheduling unit. SPSS developers can reference the include file ZSIBITS.INC for a description of the bitmap positions. Another way to determine a scheduling units SI usage is to query the qsinstrument relation." RELATED_FIELDS "qexposure.si_used", "qscheduling.si_intrlv", "qsinstrument.*" END_FIELD FIELD si_intrlv TYPE I2 DESCRIPTION "This field is a bit map that indicates which science instruments *cannot* be interleaved with this scheduling unit. It is set during PMDB/UPDATE/TYPE=SU by polling qsinstrument.si_usage field. If that field has been set to I then the SI cannot be interleaved for this scheduling unit. Within this field, a specific bit will correspond to a specific instrument. If the bit is on or '1', then that instrument cannot be interleaved within this scheduling unit (although it may be used by this scheduling unit). If the bit is off or '0', then the SI can be interleaved. SPSS developers can reference the include file ZSIBITS.INC for a description of the bitmap positions." RELATED_FIELDS "qscheduling.sis_used", "qsinstrument.si_usage" END_FIELD FIELD parallel_su TYPE YES_NO_FLAG_TYPE DESCRIPTION "When this field has been set to 'Y' it means that the scheduling unit can *only* be scheduled as a parallel SU. A parallel scheduling unit is one whose calendar activites can be scheduled on top of (or in parallel with) those from another scheduling unit. There are two types of parallels: attached and unattached. Attached parallels are targeted scheduling units that share the pointing of some main SU (that will maneuver the HST to some defined position). An unattached parallel is used for non-targeted observations (e.g. earth calibrations) and can be placed more liberally on a calendar. When the field is 'N' it means that it is not a parallel scheduling unit." RELATED_FIELDS "qscheduling.par_attach", "qscheduling.par_allowed", "qbs_obset.parallel_can" FORM NAME "SGD" LABEL "PARALLEL SCHEDULING UNIT (Y/N)" END_FORM END_FIELD FIELD ready_flag TYPE C1 DESCRIPTION "This field is a multi-state field that denotes the readiness of a scheduling unit with respect to PASS. It is set during PMDB/UPDATE/TYPE=SU and can be controlled by the /READY and /PASS qualifiers on that command. Alternatively it can be set via the SGD form. When this field is 'P' then it is ready for PASS and can be placed on a calendar destined to have an SMS created from it. Typically in operations the SUs are always ready for PASS and this setting is the default behavior of PMDB/UPDATE. When the SU is 'S' it can be scheduled on a calendar, but it may not go on an SMS. When this field is 'N', the SU is deemed 'Not Ready', usually because it is missing data and can not be scheduled on a calendar. When this field is blank it maps to 'N'. Finally, when this field is set to 'D', it means this scheduling unit is dead, and it may not be placed on any flight calendar, nor may it be run through PMDB/UPDATE. See OPR 24776 for more details on 'Dead SUs'." RELATED_FIELDS "qbs_obset.ready_flag" FORM NAME "SGD" LABEL "READY FOR SCHED/PASS (D/N/P/S)" END_FORM DISCRETE "N", "P", "S", "D" END_FIELD FIELD window_start TYPE SOGS_INT_TIME_TYPE DESCRIPTION "This field denotes the start time of the scheduling unit window. Together with qscheduling.window_stop it forms a window over which PMDB/UPDATE/TYPE=SU can calculate various scheduling windows." RELATED_FIELDS "qscheduling.window_stop" FORM NAME "SGD" LABEL "START TIME" END_FORM END_FIELD FIELD window_stop TYPE SOGS_INT_TIME_TYPE DESCRIPTION "This field denotes the end time of the scheduling unit window. Together with qscheduling.window_start it forms a window over which PMDB/UPDATE/TYPE=SU can calculate various scheduling windows." RELATED_FIELDS "qscheduling.window_start" FORM NAME "SGD" LABEL "STOP TIME" END_FORM END_FIELD FIELD calc_start TYPE SOGS_INT_TIME_TYPE DESCRIPTION "After PMDB/UPDATE/TYPE=SU has been run, the calculated start time of the scheduling unit will be stored in this field. It is derived by starting at the time qscheduling.window_start and will be the minimum observation set start time for all OBSETs associated with the SU. Together with qscheduling.calc_stop it defines the window in which the SU may be scheduled. An SU will not be permitted on a calendar if its calc_start and calc_stop window does not overlap the calendar time span." RELATED_FIELDS "qscheduling.calc_stop" FORM NAME "SGD" LABEL "CALCULATED START" END_FORM END_FIELD FIELD calc_stop TYPE SOGS_INT_TIME_TYPE DESCRIPTION "After PMDB/UPDATE/TYPE=SU has been run, the calculated end time of the scheduling unit will be stored in this field. It is derived by starting at the time qscheduling.window_start and will be the minimum observation set start time for all OBSETs associated with the SU. Together with qscheduling.calc_start it defines the window in which the SU may be scheduled. An SU will not be permitted on a calendar if its calc_start and calc_stop window does not overlap the calendar time span." RELATED_FIELDS "qscheduling.calc_start" FORM NAME "SGD" LABEL "CALCULATED STOP" END_FORM END_FIELD FIELD auto_update TYPE TIME_STAMP_TYPE DESCRIPTION "Whenver PMDB/UPDATE/TYPE=SU is run successfully on a scheduling unit this field will be updated with the system time." RELATED_FIELDS "qscheduling.last_update", "qscheduling.af_load_date" FORM NAME "SGD" LABEL "DATE OF LAST PMDB/UPDATE" END_FORM END_FIELD FIELD critical_flg TYPE YES_NO_FLAG_TYPE DESCRIPTION "If this scheduling unit contains at least one observation set that is time critical, then this flag will be set to 'Y'. If it is a time critical SU then this will be taken into account when scoring the placement of the scheduling unit during calendar AUTO scheduling. Time critical SUs are weighted during the scoring process." RELATED_FIELDS "qbs_obset.critic_flag" FORM NAME "SGD" LABEL "CRITICALITY FLAG (Y/N)" END_FORM END_FIELD FIELD par_attach TYPE YES_NO_FLAG_TYPE DESCRIPTION "This field only applies to scheduling units that have the qscheduling.parallel_su set to 'Y'. If that condition is true and this field is 'Y' then it means the parallel SU is a targeted SU and it must be attached to some main (primary) SU via an entry in the qparallels relation. If an entry is missing in that table for a parallel SU it will not be able to be added into a C&C List." RELATED_FIELDS "qscheduling.parallel_su", "qparallels.*" FORM NAME "SGD" LABEL "IF Y, PARALLEL ATTACH REQUIRED (Y/N)" END_FORM END_FIELD FIELD sched_interl TYPE YES_NO_FLAG_TYPE DESCRIPTION "When this field is set to 'Y' it means that the SU can be scheduled as an interleaver. If it is 'N' the calendar scheduling process will not permit it to be scheduled as such." FORM NAME "SGD" LABEL "SCHED. AS INTERLEAVER (Y/N)" END_FORM END_FIELD FIELD par_allowed TYPE PAR_ALLOWED_TYPE RELATED_FIELDS "qbs_obset.par_allowed", "qalignment.par_allowed" FORM NAME "SGD" LABEL "IF N, PARALLEL ALLOWED TYPE (Y/N/I/A)" END_FORM END_FIELD FIELD max_su_dur TYPE I4 UNITS "SECONDS" DESCRIPTION "This field restricts the duration of the scheduling unit such that the elapsed time from the start of the first OBSET in the SU to the end of the last alignment in the SU may not exceed this time. " RELATED_FIELDS "qbs_obset.max_ob_dur", "qalignment.max_al_dur" FORM NAME "SGD" LABEL "MAXIMUM SU DURATION" END_FORM END_FIELD FIELD reusable TYPE YES_NO_FLAG_TYPE DESCRIPTION "When this field is set to 'Y' it means that the scheduling unit is reusable and can appear on multiple flight calendars that are on the global baseline. This 'Y' setting is only valid for SUs that do not produce archivable science data. When this field is set to 'N' the SU can only appear on one flight calendar on the global baseline. See OPR 20709 for additional details. " RELATED_FIELDS "wistat_sunit.offbase", "wbase_cat.*" FORM NAME "SGD" LABEL "REUSABLE SCHEDULING UNIT FLAG (Y/N)" END_FORM END_FIELD FIELD cw_status TYPE C1 DESCRIPTION "In support of Long Range Planning (LRP), SPIKE provide SPSS windows where it believes the scheduling unit can schedule. These windows are loaded into a PMDB table called 'constraint_windows' (via SYBASE replication). An SPSS user (PC) can run procedures that will verify whether or not the constraint windows that SPIKE provides are valid, or verifiable. The final step to this procedure will be running the SPSS command CALOPT which will alter the state of this field. This field will denote the status of the verification. When this field is 'U' or 'N' or blank that means that the constraint windows are unverified. This can occur when: - the SU was just loaded from TRANS and the constraint windows may or may not exist. (field is 'N' or blank) - the constraint windows have been regenerated by SPIKE to some HST resource/PDB resource changes. - PMDB/UPDATE has been rerun on the scheduling unit which will set this field to 'U'. When this field is 'I' it means that CALOPT is in the process of attempting to verify the SU's constraint windows. When the command CALOPT/VERIFY_WINDOWS=SGD is run, this field can be set to 'V' or 'F'. When this field is 'V' then the SPIKE constraint windows have been verified successfully through the CALOPT command. That means SPSS and SPIKE agree at the placement of the SU in the LRP. When the field is 'F', the SPIKE constraint windows have failed verification during CALOPT process. There is some problem causing SPSS to not be able to schedule in the LRP time frame that SPIKE has designated for this SU. When the command CALOPT/VERIFY_WINDOWS=SGD is run, this field can be set to 'S' or 'C'. This command specifies that the the SU's SGD windows be used in place of the SPIKE constraint windows. When the field is 'S', verified constraint windows have been successfully generated. When the field is 'C', the CALOPT was unable to schedule the SU anywhere inside the SGD window, hence no verified constraint windows were generated." RELATED_FIELDS "constraint_windows.*", "constraint_windows_ver.*", "plan_windows.*" FORM NAME "SGD" LABEL "CONSTRAINT WINDOW STATUS" END_FORM DISCRETE "N", "U", "V", "F", "I" END_FIELD FIELD af_load_date TYPE TIME_STAMP_TYPE DESCRIPTION "This field contains the date that the SU was loaded into the PMDB from the TRANS assignment files. This field can be compared against other modification dates in this relation." RELATED_FIELDS "qscheduling.last_update", "qscheduling.auto_update" FORM NAME "SGD" LABEL "DATE OF SU LOAD" END_FORM END_FIELD FIELD flight_ready_flag TYPE YES_NO_FLAG_TYPE DESCRIPTION "This field will be set to 'Y' when the scheduling unit has successfully completed SPSS scheduling preparation (i.e. proposal prep). It will be set by the DBSA state change tool after the Program Coordinator (PC) deems the SU has completed SPSS scheduling preparation as defined by PC procedures. Note that at some time in the future this field will probably be renamed to scheduling_prep_done or spss_prep_done." RELATED_FIELDS "qscheduling.ready_flag" FORM NAME "SGD" LABEL "" END_FORM END_FIELD FIELD af_rev_number TYPE AF_REVISION_NUMBER_TYPE RELATED_FIELDS "qpdescrip.af_rev_number", "qsucomments.af_load_date" END_FIELD FIELD est_orbits TYPE I2 DESCRIPTION "The field contains the estimated number of orbits to be used for scheduling this SU. TRANS allocates spacecraft time in orbits, and in general the front-end systems prior to SPSS use units of orbits instead of hh:mm:ss to measure observing time. This datum is used by SPIKE. It is needed to help ASSIST keep track of TRANS estimates for the number of orbits per visit and the total per proposal (which can then be compared to the TAC allocation). In the re-engineering of ASSIST, it turned out that nearly all the data needed could be populated either from existing PMDB fields or by inspecting the proposal, hence there is no need to use SPIKE to do this using information from TRANS (the old STIF concept). Note that the decision to depend on the PMDB for this and other information assumes an operational concept where visits are loaded into the PMDB almost as soon as they are first transformed, even if they may be refined later." FORM NAME "SGD" LABEL "ESTIMATED NUMBER OF ORBITS" END_FORM END_FIELD END_RECORD !------------------------------------------------------------------------------ ! ! RELATION DECLARATION ! !------------------------------------------------------------------------------ RELATION qscheduling TYPE SUNIT_TYPE DESCRIPTION "Scheduling Unit Relation" SUBSYSTEM_USING "SPSS", "SPIKE", "REPLICATION-FROM-SOGS", "TRANS", "CCLIST" RELATED_FIELDS "qparallels.*", "qslink_timing.*", "qslink_orient.*" FORM NAME "SGD" END_FORM INDEX qscheduling_1 TYPE unique, clustered FIELDS sunit_id, version_num END_INDEX END_RELATION !------------------------------------------------------------------------------ ! ! INSTANCE DECLARATION ! !------------------------------------------------------------------------------ INSTANCE qscheduling GLOBAL TYPE SUNIT_TYPE END_INSTANCE