Getting Started Documentation Glish Learn More Programming Contact Us
Version 1.9 Build 1367
News FAQ
Search Home


next up previous
Next: Concluding remarks Up: Calibration, Imaging and Datasystems for AIPS++ - Report Previous: Image Tools

Data System

The Data System provides the means of handling the contents of DataSets. How it handles DataSets themselves is not yet defined. We merely sketch an application interface for selecting Yegs and various aggregates thereof, wherby the required functionality is attached as methods to aggregates of data, permitting new selections and aggregations to be made.

A DataSet is a generic term used to cover any sort of data that is both complete and potentially permanent. A specific example is a YegDataSet, others could be ImageDataSet and TableDataSet. A DataSet might be a file, or it might be a view into a file, but this is not defined at present.

A YegDataSet contains a number of YegSets and Telescopes. A YegSet is an arbitrary collection of Yegs which may be associated with more than one Telescope. It can be regarded as consisting of a number of arbitrary subsets, each of which can be considered as a Yegset.

YegSet objects provide (at least) four services. Three of these are related to selecting subsets and obtaining specific aggregates of Yegs or YegSets in some order, and the remaining one is used to check if the contents of a YegSet matches certain criteria.

Assert
is used to check the characteristics of a YegSet. For example, a mapping application might only be able to deal with a single pointing, and so it would need to check that the YegSet to be processed only contains one pointing.

Select
returns a subsection of a YegSet as another YegSet; whether this is a copy or a window onto the existing YegSet is not yet defined, although it is likely that both will be required.

SortYegSet and SortYegs
return an iterator (of type YegSetIterator and YegIterator respectively) that can be used to step through subsections of a YegSet and through Yegs respectively in some defined order.

The Sort services take as arguments the items that it is desired to sort on and, optionally, the values required. For example, to obtain Yegs in time-baseline order the following could be used:

YegIterator it = myset.SortYegs (time, baseline) ;

The iterator it can then be used to step through Yegs in either time or baseline order: thus it.next(time) steps to the Yeg at the next time and it.next(baseline) steps to the Yeg for the next baseline. it.next() would step to the next Yeg in the order defined by the order of the arguments to SortYegs. Wildcard arguments are used to SortYegs and SortYegSet.

Aggregates are an important way of accessing Yegs or YegSets; they make it possible for an application to obtain the Yegs that it wants in the order that it wants, irrespective of how they are actually stored. Thus an application doing a self-calibration can obtain, say, all baselines at any one time, while a data-viewing program can obtain all times for any one baseline just by requesting the order in which the Yegs are to be presented to them. The ordering is achieved by supplying an iterator that steps through the Yegs or YegSets; if there is more than one parameter involved (e.g., baseline and time) then the iterator can be used to step through either (e.g., to the next baseline or to the next time).

It may be found that certain aggregates are commonly used, for example spectra or Stokes parameters, and in these cases, standard classes can be provided with standard iterators and possibly other standard services.


next up previous
Next: Concluding remarks Up: Calibration, Imaging and Datasystems for AIPS++ - Report Previous: Image Tools
Please send questions or comments about AIPS++ to aips2-request@nrao.edu.
Copyright © 1995-2000 Associated Universities Inc., Washington, D.C.

Return to AIPS++ Home Page
2006-03-28