An SDIterator iterates through a data source one SDRecord at a time. The SDIterator is the view of the data source that SDCalc will use. Other views (e.g. the full MeasurementSet, a flat table view of the MeasurementSet, etc.) will also be supported. An SDIterator is a set of SDRecords. In the SDCalc GUI an SDIterator is referred to as a ``working set'' to reflect the fact that at any given instant a specific SDIterator (or set of SDRecords) is the data source with which the user is currently working.
The only type of data source we support now is an AIPS++ table filled directly from a single dish FITS file. The data souce will eventually be a primarily a filled MeasurementSet but it must also must be include the types of data listed in the next section. It may eventually be useful to have an SDSet which would contains a number of related iterators, but this is left for the long term development of SDCalc. Data selection is done when the iterator is constructed. Iterators will largely be invisibly to the SDCalc user. Iterators can be constructed (and selected) from other iterators.
An SDIterator is able to get and put individual parts of an SDRecord (especially the header as separate from the data) in addition to the whole SDRecord. It is often useful to examine just the header values without having to drag the entire data array around with the header.