Next: ASC Coordinate Transformation -- The Pixlib Library, II
Up: Data Analysis Applications
Previous: The IRAF Client Display Library (CDL)
Table of Contents -- Index -- PS reprint -- PDF reprint
Eric W. Greisen
National Radio Astronomy Observatory
The Astronomical Image Processing System (``AIPS'', Greisen 1990; van Moorsel et al. 1996) was developed at the NRAO beginning in the late seventies. Since then, we frequently encountered the conflict between the desire to develop new ideas and capabilities and the desire to provide to the users a stable, reliable software package. Some new capabilities are simply new programs added with little or no effect on current AIPS usage. However, since AIPS is in many areas a tightly connected system, some new ideas are potentially disruptive since they affect, for example, how all interferometer data are calibrated or how image models are computed. The conflict between stability and the desire to continue to develop new ideas led the author, beginning in April 1996, to develop a separate, openly experimental version of the AIPS package called AIPS CVX. This version contains a variety of new and improved capabilities developed by the author as well as the full functionality of the version that is sent out by NRAO. Periodically, a copy of CVX is frozen in tar files and made available for down-loading over the Internet. The current state of CVX is described on the author's home page which includes instructions, comments, and links for installing the most recent copy of CVX. The remainder of this paper is used to describe some of the highlights of the new code.
The ability to allocate memory at run time for use by FORTRAN routines was added to AIPS just before the initiation of CVX. The memory is actually allocated by a C-language procedure with malloc which passes the start address of the memory back as a subscript into an array whose address was provided by the FORTRAN calling routine. A top-level ``Z'' routine acts as an interface between the programmer and the C procedure and manages the allocation/deallocation in an attempt to avoid memory leaks. Dynamic memory is now used where appropriate in CVX in order to scale memory to the size of the problem and to avoid, for example, burdening continuum users with large spectral-line arrays.
The AIPS ``TV'' image display has always been ``stateful.'' A program could query the system to determine which portions of the display are visible and what the coordinates and other header parameters are for the image(s) displayed. This was implemented through disk files containing device descriptions and other files containing the display catalog. This technique tied the displays to a particular local-area-network, a particular computer byte ordering, and a hand-maintained set of link files for the cooperating workstations. In CVX, for the now ubiquitous X-windows form of TV display, I have eliminated both sets of disk files, placing the device and catalog information inside the software (XAS) which implements the display. I have simplified the machine-dependent routines to remove all knowledge of the meaning of the bytes being passed. Instead, the packing and unpacking of data to/from the TV (including conversion to/from network-standard integers and floats) is done by the routines which must know about the TV, namely XAS itself and the XAS version of the TV virtual device interface (the ``Y'' routines). Among numerous benefits, this simplifies the addition of new capabilities and allows passing of data words of any length and type. To implement the remote catalog, machine-independent routines convert the AIPS header structure to/from standard FITS binary forms. XAS was enhanced to do initialization and vector and character generation internally, reducing the amount of data which has to be sent from the calling programs.
XAS communicates with programs running on the same and different computers through an assigned Internet socket. It was found that, when the socket is busy for one program, a second program's request for the socket is apparently honored even when XAS is coded not to queue requests. The second program then hangs waiting for the socket to respond to its opening transmission. In the past, this undesirable delay was avoided by doing file locking on the image device file (a shaky proposition over networks) which will respond immediately when the file is already locked. To avoid this hanging in CVX in which there are no disk files for locking, a new TV lock server was written. The Internet socket to it may still hang, but the lock server does so little that the hanging time is negligible. In this way, any computer running CVX may display images on any workstation anywhere in the world running CVX's XAS server. Collisions are noted immediately so that calling programs need not wait for busy displays. Pixel values, coordinates, and other parameters of the displayed images are then available to the compute servers. Thus, a scientist in Sonthofen might reduce data in a large compute server in Socorro while interacting with displays run on the local workstation. The only limitations are security restrictions on Internet sockets (if any) and available data rates.
A major area of experimentation in CVX has been the calibration of interferometric data, especially multi-spectral-channel data. Because the software did not handle time dependence properly, users were required to handle the antenna-based, channel-dependent complex gains (the ``bandpass'') as if they were constant or only slowly varying in time. I changed the bandpass solutions to use weighting of antennas in solving for and averaging bandpasses and corrected the bandpass application code to apply time-smoothed calibrations properly. These two corrections have allowed overlapped spectra to be ``seamlessly'' stitched together for the first time (J. M. Uson and D. E. Hogg, private communications). It has been long believed that VLA spectral-line images should, but do not, have noise which is independent of channel. Using a variety of new techniques to record and report the failure of calibrator data to contain only antenna-based effects, I have found that these closure errors are a function of spectral channel that closely matches the noise spectra found in the final image cubes. Since some configurations of the VLA correlator have very much worse closure failure than others we hope to find and correct the hardware cause of the problem.
Better calibration is only useful if bad data are properly excluded. With instruments as large as the VLA and VLBA, it is very time consuming to examine all the data and bad data are not always readily apparent (i.e., unusually small amplitudes tend to be invisible). Using object-oriented programming in FORTRAN (Cotton 1992), I have developed an editor class which allows the user to interact with the visibility data, or various tables associated with those data, to prepare tables of deletion commands. It has been found that editing based on the antenna system temperatures is not particularly time consuming and detects a very large fraction of the data which should be deleted. The editor class uses the AIPS TV display as a multi-color graphics device to display a function menu, the data to be edited, and data from other antennas/baselines for reference. The editor class is implemented in normal AIPS CVX tasks to edit uv data using the system temperature and the uv data themselves. Since it is a class, I inserted it as a menu choice in the iterative imaging and self-calibration task SCMAP by adding only about 100 lines of code some of which pass the new user parameters needed by the editing. An example screen from SCMAP may be found in the author's home WWW page previously cited.
AIPS has long supported the imaging and deconvolution of fields surrounding the direction toward which the telescopes were pointed. Among other things, this allows for removal of sidelobes due to distant sources from the field of primary interest. Previously, the phases of the data were rotated to the center of each field before imaging, but no other geometric corrections were made. This makes each field parallel to the tangent plane at the antenna pointing direction. Such planes separate from the celestial sphere very much more rapidly with angle from their center than would a tangent plane. Therefore, I have changed CVX to offer the option of re-projecting the data sample coordinates for each field so that all fields are tangent planes capable of a much larger undistorted field of view. (In direct comparisons, the re-projection surprisingly adds virtually no cpu time to the job.) This option requires each field to have its own synthesized beam image and to be Cleaned in a somewhat separated manner. In CVX, up to 64 fields may be used; source model components may be restored to all fields in which they occur, rather than just the one in which they were found; and a Clean search method may be used to minimize the instability that arises if the same direction is searched in more than one field. The results of using the ``3D'' option are illustrated in Fig. 1 which shows the Cleaned image of a model source separated from the pointing direction by (18575 synthesized beams) and separated from the field center by 14.9 arcsec (36 synthesized beams). The non-signal rms of the uncorrected image is 35 times that of the corrected one. The source model found with 3D-Cleaning may be used in all other AIPS tasks in CVX, in particular for self-calibration. Since sidelobes of distant sources are frequency dependent, the ability to make and subtract accurate models of such sources greatly increases the spectral dynamic range and the field of view free of systematic errors in multi-channel images.
Cotton, W. D., 1992, ``Object-Oriented Programming in AIPS FORTRAN,'' Aips Memo No. 78, NRAO.
Greisen, E. W., 1990 ``The Astronomical Image Processing System,'' in Acquisition, Processing and Archiving of Astronomical Images, eds. G. Longo and G. Sedmak, (Osservatorio Astronomico di Capodimonte and Centro di Formazione e studi per il Mezzogiorno), Naples, Italy. Also appeared as AIPS Memo No. 61, 1988,3 NRAO. See also Aips Memo No. 87
van Moorsel, G., Kemball, A., & Greisen, E. W. 1996, ``AIPS developments in the Nineties,'' in Astronomical Data Analysis Software and Systems V, ASP Conf. Ser., Vol. 101, eds. G. H. Jacoby and J. Barnes (San Francisco, ASP), 37
Next: ASC Coordinate Transformation -- The Pixlib Library, II
Up: Data Analysis Applications
Previous: The IRAF Client Display Library (CDL)
Table of Contents -- Index -- PS reprint -- PDF reprint