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


next up previous contents
Next: Glish Programming Idioms Up: The Design of AIPS++ AIPS++ Implementation Memo 111 Previous: Processing Environment

Glossary

Many of the following definitions are taken from [Hol94,AIP90]. Unfortunately, this glossary is not yet complete. Please forward suggestions for new entries to this author.

``A Matrix'' formalism
Consider the matrix equation D = AS, where D is a vector of measured data, S is a vector representing the sky brightness distribution, and the ``A'' matrix represents a linear measurement process such as observing total power with a single dish or sampling the Fourier transform of the sky brightness distribution with an interferometer. Such an approach has been taken in [Cor92a,Cor92b] in analyzing the MeasurementModels of several different types of observations.

Abstract base class
An abstract base class is a class which has no implementation, only an interface. Thus it is used polymorphically through a derived class.

AIPS
Astronomical Image Processing System; the (still active) predecessor to AIPS++. Also known as Classic AIPS. Described in [BG94]. Written in FORTRAN.

AIPS++
Astronomical Information Processing System: described in this paper. Written in C++.

Application
A program directly invoked by end users to perform desired operations.

Application developer
A person who writes application programs. This person typically uses C++ libraries or writes CLI scripts.

apply()
some Telescope Components contain calibration parameters which must be solved for and then applied to the data. apply() creates a new MeasurementSet from an old one. Usually it will perform an on-the-fly calibration to avoid data duplication. apply() is also available through the TelescopeModel. It merely calls apply on all its contained TelescopeComponents in turn.

Array
An array is a Lattice for which all the elements are uniquen and fit into memory. Also, an aperture synthesis radio telescope is known as an array, but that usage is avoided in this paper.

Association
Often in object oriented systems, one type of object will need to be associated with another object. For example, the MeasurementSet needs to know which particular TelescopeModel is describing its state of calibration. See also Catalog.

Base classes
A class from which other classes are derived through inheritance.

Baseline
For single dish the contribution to a spectrum from ``uninteresting'' sources: the instrument itself, the atmosphere, or even from an unwanted astronomical source.

Big table view of data
A view of telescope data in which all the data appears in a single Table, rather than being separated into tables which vary at different rates. To prevent unacceptable data bloat, the table requires a sufficiently sophisticated storage manager, in particular the Miriad storage manager.

Catalog
the catalog system deals with keeping track of high level objects for the user such as MeasurementSets, MeasurementModels, TelescopeModels, etc. that the user has created to store results in. There will be strong interaction between the catalog system and the user interface. An ObjectID is the fundamental identifier of a catalogued, or any persistent, object.

Class
In C++, a Class is a user-defined type.

Class developer
A programmer who implements Classes.

Class interface
A class may only be accessed through a well defined set of functions. This ensures that the class is manipulated only in predetermined (safe) ways. This situation is different from manipulating a traditional structure or record, which has to rely on conventions for ensuring that it remains valid. See also encapsulation.

CLEAN
a deconvolution algorithm devised by Jan Högbom for use in radio interferometry [J. A. Högbom, Aperture synthesis with a non-regular distribution of interferometer baselines, Astron. Astrophys. Suppl. Ser., 15 (1974) 417-426]. Denote (the discrete representations of) the dirty map by g and the dirty beam by b. The algorithm iteratively constructs discrete approximants fn to a solution f of the equation b * f = g, starting with an initial approximant f0 $ \equiv$ 0. At the nth iteration, one searches for the peak in the residual map g - b * fn - 1. A $ \delta$-function component, centered at the location of the largest residual, and of amplitude $ \mu$ (the loop gain) times the largest residual, is added to fn - 1 to yield fn. The search over the residual map is restricted to a region A termed the clean window. The iteration terminates with an approximate solution fN either when N equals some iteration limit Nmax, or when the peak residual (in absolute value) or the r.m.s. residual decreases to some given level.

To diminish any spurious high spatial frequency features in the solution, fN is convolved with a narrow elliptical Gaussian function h, termed the clean beam. Generally h is chosen by fitting to the central lobe of the dirty beam. Also, one generally adds the final residual map g - b * fN to the approximate solution fN * h, in order to produce a final result, termed the clean map, with a realistic-appearing level of noise.

[This is a description of the Högbom CLEAN algorithm. In practice, a variant of it (Clark, Cotton-Schwab, Steer-Dewdney-Ito) is chosen.]

CLEAN component
in the Högbom CLEAN algorithm, a $ \delta$-function component which is added to the (n - 1)st iterate in order to obtain the nth iterate. Its location is the location of the peak residual after the (n - 1)st iteration, and its amplitude is a fraction $ \mu$ (the loop gain) of the largest residual.

CLI
Command line interpreter.

Command line interpreter
An end user program with which the user can perform interactive calculations (for example, whole-array arithmetic) and start up other applications.

Control hub
A central process which is a repository for centralized configuration information. It is also responsible for starting and stopping processes, and mediating communications among them.

DataManagers
map values to Tables. It is the base class for various StorageManagers which perform actual I/O of data values from a storage device. A DataManager is also used to implement virtual tables and columns.

Deconvolution
the numerical inversion of a convolution equation, either continuous or discrete, in one or several variables; i.e., the numerical solution (for f) of an equation of the form f * g = h + $ \it noise$, given g and given the right-hand side of the equation. Except in trivial cases, deconvolution is an ill-posed problem: In the absence of constraints or extra side-conditions, and in the case of noiseless data--assuming that some solution exists-- there usually will exist many solutions. In the case of noisy data, there usually will exist no exact solution, but a multitude of approximate solutions. In the latter case, if one is not careful in the choice of a numerical method, the computed approximate solution is likely not to have a continuous dependence on the given data. The so-called regularization method (q.v.) (of which the maximum entropy method is a special case) is an effective tool for the deconvolution problem.

Discrete two-dimensional deconvolution is an everyday problem in radio interferometry, owing to the fact that--under certain simplifying assumptions--the so-called dirty map is the convolution of the dirty beam with the true celestial radio image. In addition to the maximum entropy method, the CLEAN algorithm is commonly applied to this problem.

Derived classes
A class which is created from a base class. A derived class may have more functionality than its base class, particularly if it is an abstract base class. It can also modify the meaning of a member function, especially useful if the class is to be used polymorphically.

Encapsulation
Programming errors can be minimized if data can be changed only in a well regulated way. Encapsulation is the process of enforcing these well regulated changes, by only allowing access to the data through a class interface. This is also known as data hiding.

FFT
a fast algorithm for the computation of the discrete Fourier transform (DFT) y0,..., yn - 1 of a sequence of n complex numbers x0,..., xn - 1,

yk = $\displaystyle \sum_{j=0}^{n-1}$xje2$\scriptstyle \pi$ijk/n ,

typically requiring only O(nlog n) arithmetic operations -- or a multi-dimensional generalization thereof. By contrast, straightforward, or naïve evaluation of the DFT requires O(n2) operations.

Filled tables
are Table objects which stage data values to and from a secondary storage device. See also Reference tables, Virtual tables, and Storage managers.

FITS
(Flexible Image Transport System) a magnetic tape data format well-tailored for the transport of image data among observatories. See [D. C. Wells, E. W. Greisen, and R. H. Harten, FITS: A flexible image transport system, Astron. Astrophys. Suppl. Ser., 44 (1981) 363-370].

Glish
Glish is a command line interpreter whish is loosely based on the S programming language, a language commonly used for statistics.. It offers a convenient syntax for manipulating whole arrays (augmented by the AIPS++ group to be multidimensional), and it also has a very flexible, and hierarchical, record data structure. Besides its data manipulation language, it also implements a ``software bus'' which allows functionality in processes to be readily integrated. The master version of Glish is available from ftp://ee.lbl.gov/glish, and the current AIPS++ version can be found at ftp://aips2.nrao.edu/pub/RELEASED/glish. (At any particular time, the AIPS++ version may have features which have not yet been merged into the mainline Glish distribution).

Graphical User Interface
is a term used for the graphical elements, such as menus and buttons, an application, or set of applications, presents to the user.

``Green Bank'' model
are a set of classes, originally described in [Se92], that describe a software model for calibrating and imaging astronomical data. It features a MeasurementSet class, which presents the telescope data, possibly with on-the-fly calibration being applied. This calibration is supplied by a TelescopeModel which marshals the particular calibrations available in various TelescopeComponents. A MeasurementModel describes how a particular instrument turns a MeasurementSet into a SourceModel or Image.

GUI
See Graphical User Interface.

HasA
is a term used when a class has another class embedded within it (aggregation), or sometimes when it is associated with it (a reference or ``pointer'' relationship). Another relationship is IsA.

Image
a class derived from Lattice which contains values of homogenous type arranged in a finite-volume, linear, rectangular, or hyper-rectangular structure. Besides the data values, the image contains an image coordinate system to associate its pixel positions with astronomical Measures, usually related to position on the sky and doppler velocity. ``Arbitrary'' information can also be attached through the use of keywords, and the Image will normally have a processing log attached to it.

Image coordinate system
is an engine attached to an Image for turning positions within the lattice to Measures, usually related to position on the sky and doppler velocity. An image, for example a spectral line cube, might have more than one measure associated with its coordinate system.

ImageStack
A collection of N-dimensional Images images which share the same image coordinate system, viewed as a Lattice.

Inheritance
describes the creation of a new derived class from a base class.

Interface
is the portion of the class which may be used externally, it enforces encapsulation.

Interferometer

invert()
a method of the MeasurementModel is the opposite of predict(). Consider the A Matrix formalism: D = AS. Invert is the operation which, when applied to D, yields an estimate of S:

(ATA)-1ATD = S

IPosition
is an ordered tuple of integers, one per axis, that specifies a particular value in a Lattice.

IsA
is a term used for a class which is a derived class of another. An Array IsA Lattice.

IPC
Inter-process communications.

Karma
Karma is a programmers toolkit for scientific computing with communications support, event management, data structure manipulation, graphics display and user interface support. Information on Karma may be found at http://www.atnf.csiro.au/karma. Karma was developed by R. Gooch. AIPS++ is using Karma for a StorageManager and for graphics.

Keyword
A named value (``keyword=value''). In AIPS++ the value can normally be a scalar type, Array of scalar, or Table. The particular types that may be attached to a keyword are class specific.

Lattice
is an abstract base class which presents an interface to a finite-volume, linear, rectangular, or hyper-rectangular structure. The Lattice is fundamentally described by its shape.

Log
A sequence of informational messages with a priority and a type (both of which may be filtered on). The log is typically attached to both the data being modified and to the user interface (for a history of all operations). Ideally programs may be rerun directly from information contained in the log messagse.

Magic value blanking
An invalid value which is marked by placing a special value (typically an IEEE NaN) into it. Unlike a Mask, magic value blanking is irreversible.

Mask
A collection of Boolean values which are used to mark whether a value is valid or invalid.

Measure
a class identifying the value(s), errors(s), and unit(s) for a measurement with transformation properties determined by the ReferenceFrame and Representation. Epoch, duration, direction, and position are examples of different types of Measures.

Measurement model
an abstraction of the measurement process with a perfect telescope (ie, with no calibration errors). The MeasurementModel has methods predict(), invert(). Specific MeasurementModels will include the Interferometer MeasurementModel, the SingleDish MeasurementModel, the MosaicingMeasurementModel, and the NonCoplanarBaselineMeasurementModel. A MeasurementSet will have an associated MeasurementModel. When a MS is passed to a MM, the MM will convert the MS to the data view which it requires.

Measurement set
All of the data produced by a Telescope which the user cares to keep, including both astronomical data, instrumental data, and monitor data, is the body of the MeasurementSet. A measurement set is derived from a Table, and presents a ``big table'' view of data. The MS has little intelligence, but it has an associated Telescope Model which is able to calibrate data on the fly in the MeasurementSet, and an associated MeasurementModel which is able to convert the data into a Source model or Image or able to convert a model brightness distribution into a model MeasurementSet.

Member function
a function that belongs to a class and is able to manipulate class data. Only member functions are allowed to directly manipulate class data29. This is the mechanism by which encapsulation is enforced. The set of public member functions of a class make up its interface.

Message
The atomic unit of information exchanged between two processes via IPC.

Method
see member function.

Miriad
Multichannel Image Reconstruction, Image Analysis and Display. A software package for the reduction of radio interferometric data. The ideas from its data system are being used in the Miriad storage manager.

Miriad storage manager
A Storage manager which only stores values when they change. This storage manager is thus appropriate for Table columns which vary slowly, which is important for the ``Big Table view of data. It is based on ideas in the Miriad software system.

ObjectID
A globally unique identifier for objects. It is presently a concatenation of the host address, process ID, time, and a per-process unique sequence number. This heuristic suffices for systems that do not ``roll over'' their process ID numbers in a second or less. It is important for persistence.

``On-the-fly'' calibration
or on-demand calibration occurs when computations are interposed between the user and the raw data. This is accomplished through the use of virtual Tables.

``On-the-fly'' mapping
a form of single dish observing and subsequent imaging in which the antenna is slewed continuously across the sky and data are recorded on a timescale which is short compared to the time the antenna moves an entire beamwidth. The pointing position, possibly including pointing error estimates, is recorded with the data. Proper imaging requires use of the pointing data.

Operator overloading
The C++ term for user-defined functions which use the same characters as built-in operators. For example, with operator overloading one can type a = b + c; where a, b, and c are Class objects, such as an Array.

PagedArray
is a Lattice for arrays which are both persistent and possibly larger than memory. The PagedArray uses the Table for its I/O. The PagedArray is used by the Image.

Persistence
Persistence is the ability to reform an object into a running process from data on some storage medium (i.e., normally disk).

Pixel coordinates
are values related to the position of the pixel in the Lattice, i.e., these are coordinates in the frame set by the axes of the Lattice without any astronomical meaning.

Polymorphism
allows classes with a sufficiently similar interface to substitute for one another. This allows, for example, a new kind of clean deconvolution to be introduced without having to change any client code that needs such deconvolution.

Point spread function
the response of a system or an instrument to an impulsive, or point source, input.

predict()
is used by the MeasurementModel to create a new MeasurementSet using a SourceModel and another MeasurementSet as a paraform of where to sample the data.

Primary beam
For a single dish, the point spread function of the image. For an interferometer, the average of the primary beams of all the antennas in the array.

Proxy object
A proxy object is a stub that is used to manipulate the real object which is in somewhere else, probably in an object server. The proxy object forwards its member function invocations to the server, and retrieves the results and presents them to the user of the proxy object. This is a particularly valuable technique for allowing CLI users to manipulate objects created in another language, i.e., C++.

PSF
See Point spread function.

Section
A regular portion of a Lattice defined by a start position, and end position, and a constant increment for each axis. Often a view of another Lattice.

Server
A process that performs calculations at the behest of another process.

Shape
An ordered tuple of integers that defines the length of each axis in a Lattice.

Single dish
A radio telescope that consists of a single antenna. Traditionally a single dish telescope has only had a single receiver, but multi-beam receivers are becoming more common.

solve()
some Telescope Components contain calibration parameters which must be solved for and then applied to the data. These TCs will have a "solve()" method, an "apply()" method, and a Table to store the parameters in.

Source Model
is an estimated sky intensity as a function of position, time, polarization, and frequency. Unlike an Image, it is not necessarily regularly sampled; it will often be parameterized.

Spectrum set
A view of data for image plane spectra. Single dish equivalent of VisSet.

Stokes parameters
the four coordinates relative to a particular basis for the representation of the polarization state of an electromagnetic wave propagating through space.

StorageManager
is a DataManager which physically store and retrieves values from a storage device. Storage managers with several different properties are available; a Karma storage manager, a Miriad storage manager, and a storage manager based on the AipsIO class.

Table
A table consists of a header, and a main data table. The main data table consists of a number of rows and columns. A value is stored at the intersection of each row and column. All values in a column must be of the same type. The header consists of sets of keywords: one set for the whole table, and (potentially) one set per column.

Telescope model
class which describes the state of the telescope during the collection of data in a MeasurementSet. It consists of a number of TelescopeComponents, each containing some telescope state information and calibration parameters (Platform, Receptor, Environment, etc). Its basically a collection of TelescopeCompoenents. The MeasurementSet will have an associated TelescopeModel.

Telescope component
A TelescopeModel consists of one or more TelescopeComponents. Each TelescopeComponent serves to model some feature of the function of the telescope. For example, TelGeometry deals with the geometrical aspects of the Telescope in relation to the earth and sky and knows where the antennas are located and how to calculate (u,v,w), elevation, parallactic angle, etc. ReceptorGains deals with antenna based complex gains and knows how to solve for and apply them to the data. PrimaryBeam stores the model of the primary beam.

User
can refer to either end users (i.e., astronomers), or to users of a class (i.e. programmer).

View of data
occurs when an object has no data of its own, it references data in some underlying object. This means that modifying the data through the view will also modify it in it's underlying object. A C++ example of this is matrix.diagonal() = 1;. The result of the diagonal() member function is to return a Vector which is a view of a portion of the underlying matrix (its diagonal). This view object is set to unity, which changes the underlying Matrix.

Virtual tables and columns
Tables and columns in which some of the data are computed (or come from some other source) are known as ``virtual'' tables or ``virtual'' columns.

VisSet
A view of data for interferometric data that presents a sufficient interface for imaging applications. For example, it would have time, anntennas, pointing centers, weights and the actual visibilities. A VisSet is normally attached to a MeasurementSet.


next up previous contents
Next: Glish Programming Idioms Up: The Design of AIPS++ AIPS++ Implementation Memo 111 Previous: Processing Environment   Contents
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-10-15