You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 5 Next »

The Observation Unit Set (OUS) used by ALMA servers a dual purpose.  It provides an organizational structure for separating  Scheduling Blocks (SBs) for different configurations or arrays when generating those SBs from the higher level Science Goals defined in the proposal.  An OUS also provides an organizational structure for data processing which involves more than one EB, which is the standard case for the ALMA pipeline (unlike the EVLA, where each SB is calibrated separately).     

ALMA creates a 3-layer structure of OUSs by default, but only uses the lowest level (also called a Member OUS or MOUS) for any automated processing.  The upper layers were envisioned to be used in more complicated imaging or analysis tasks, but they are not currently used, and are not likely to be used in the near future (~10 years).  For the time being, we can restrict ourselves to a single OUS layer for any processing we might need. 


Fundamental change:  The OUS not only links the inputs to the products, but it contains information about how they were gotten. 

An OUS is a container at the metadata level, largely analogous to our filegroups for organizing collections of files which make up the contents of NGAS.  An OUS links the data used in processing, to the results of that processing.  For instance: every science observation by the VLA results in a single Execution Block (EB) which is then calibrated.  This can be represented as an OUS with a link to the row in the execution_blocks table and the (yet to be defined or populated) calibration_tables table.  A separate run of the calibration pipeline of the same data is represented with a new OUS pointing to the same EB, but to the new calibration information. 

Since the VLA does not use the OUS concept on the observation planning side (and VLA SBs can be much longer than ALMA SBs), we may wish to have our own name for this structure that makes sense to us.  Any suggestions?  The next-gen PST planning committee seems to be leaning toward the name 'Program', but that doesn't feel quite right either. 

So, an OUS/Program/Fizz has a set of 'requirements' (i.e. things it needs to do its work) and a type of processing it wants to do.  Some, however, might want to react to individual components of its requirements being fulfilled.  So it might perform intermediate actions as requirements are filled, and then a final processing that happens once all requirements are filled.  (Not yet reflected below, design needs to change)  (Will intermediate actions be internal to the organizational structure (monitoring projects) or should it be more general to allow some sort of more intensive processing?) 


Database Considerations

As the OUS structure would have a One-to-Many Relationship to various tables, I propose the following set of tables to handle the relationships.

observation_set Table

Column NameColumn TypeComments
ous_idintegerauto-generated ID value for this OUS
Structural Columns
project_idintegerparent Project for the OUS if it is not the child of another OUS
parent_ous_idinteger

parent OUS for this OUS (null for top-level OUSs)

has_databooleanIndicates whether a join with the data linking table will be useful
has_productsbooleanIndicates whether a join with the products linking table will be useful
Metadata Columns
ous_namevarcharHuman-readable name for this processing structure
purposeintegerCombined values of the types of products this structure will produce (planned, to allow multi-stage processing)
time_of_creationdatetimeWhen this was created (may play into proprietary period)
last_updatedatetimeLast addition to this structure (typically last ingested products)

ous_to_execution_blocks

Column NameColumn TypeComments
ous_idintegerForeign Key to the observation_set table
execution_block_idintegerForeign Key to the execution_blocks table

ous_to_products

Column NameColumn TypeComments
ous_idintegerForeign Key to the observation_set table
product_type_idintegerForeign Key to the products_type table
execution_block_idintegerid value for the relevant product table

ous_to_workflows

Column Name

Column NameColumn TypeComments
ous_idintegerForeign Key to the observation_set table
workflow_idintegerForeign Key to the workflows table

product_type

This table would be a slowly expanding list of our processing products.  Currently we have calibration_tables (as yet undefined) and image_sets.  Coming shortly are catalogs (at least an initial version for VLASS processing) followed by cubes. 

Column NameColumn TypeComments
product_type_idintegerChosen (factor of 2, or 10, etc) for combination purposes, as done for polarizations
product_namevarcharName of the type (Calibrations, Images, Catalogs, etc)
product_tablevarcharTable name for these types of products.
  • No labels