Back to Volume
Paper: AIPS++ Table Data System
Volume: 61, Astronomical Data Analysis Software and Systems III
Page: 417
Authors: van Diepen, Ger; Farris, Allen
Abstract: AIPS++ is being developed by an international consortium of mainly radio astronomical observatories as the successor of the current AIPS system. It will be an object-oriented system written in C++. The data handling subsystem is based on a table structure and is a superset of the FITS binary tables. Although major parts of the table system have already been written, it is not yet completed. An AIPS++ table consists of a set of keywords (i.e. header data) and a set of columns. A keyword or column can contain scalar or array values of any data type (including complex) or they can contain a reference to another table. The latter allows the construction of a hierarchy of tables. The AIPS++ Table Data System provides the application programmer with a uniform interface to different kind of tables. Apart from so-called filled tables, which are the usual tables containing data, there are also virtual tables. Virtual tables offer the possibility to handle data calculated on-the-fly as if they were stored directly. For example, one could implement an artificial observation using virtual tables in a way that application software cannot tell them from regular observations. Reference tables, which are also ordinary tables to the user, are used to hold the results of a select or sort operation on a table. Using polymorphism properties, it proved straightforward to create a uniform table interface to the application programmer and to hide all details. Another interesting property of the AIPS++ table data system is its ability to handle table columns and rows as ordinary vectors. Using C++ overloaded operators and functions arbitrary vector expressions can be written in a natural way. An X-based table browser/editor is currently being developed using the InterViews package. This allows a user to browse through the data in a table and change data where needed. It will be possible to handle specific rows only by selecting them using arbitrary expressions. The table system is not incorporated yet in the separately developed AIPS++ command language. In the future it will, however, be possible to manipulate tables and table vectors on the command line.
Back to Volume