The core routines for ARCHANGEL began as reduction programs
needed to analyze the structure of cluster elliptical for my
thesis work. The first ellipse fitting programs (cleverly
called ELLIPSE, running on a PDP-11/70) was written by a fellow
grad student Nelson Caldwell with substantial re-writes by
myself. Some primitive graphics on a Tek4010 allowed for some
interactive masking and a greyscale printer (VERSATEC plotter)
for checking the image. The procedures for surface photometry
fitting (what will become routine bdd) were developed
with greater success since this was easily to implement on a
graphics Tek4010 terminal with cursor wheels.|
The routine that would be, at the time, called ARCHANGEL started as display and reduction program written in FORTRAN for a Grinnell GMR-27 Display Processor at Caltech Astronomy Dept in the mid-1980's. With a trackball and full color support, this program provided all the necessary functions to edit and mask an image. With a little extension of the code, the display program could also find objects on the frame using moment analysis, remove cosmic rays, display fitted ellipses. But quickly, it became apparent that the function of displaying the data and running photometry routines needed to be separated with command line routines performing the analysis tasks which then feed into the display routine (by calling various files with the analysis information stored in them). Around this time, the GASP package, written by M. Cawson, circulating with its very nice ellipse fitting routine PROF and moment analysis routine called IMAGES. The package was written in FORTRAN but was very flexible. PROF was enhanced by R. Jedrzejewski to study the Fourier components of isophotes. These routines form the core of the ellipse fitting in ARCHANGEL (with much of the original FORTRAN code still in place).
Parallel to this work, the IRAF package, out of the KPNO labs, was becoming more popular. The IRAF cl system seemed like the natural environment for the development of reduction packages. Most of the ARCHANGEL routines were ported to the Sun Unix environment with IRAF hooks and the switch from FORTRAN to C++ at the UMichigan Astronomy Dept. The emphasis for the package at this time was the analysis of LSB galaxies, so particular attention was given to the cleaning and masking routines, and the stability criteria for galaxy photometry of objects that were extremely low in contrast to the sky. Using csh scripts provided a framework for automating many of the tasks that previously required a great deal of interactive time. In the late 80's/early 90's, CPU processing power finally caught up with CCD array sizes. The need for specialized C++ code faded with better FORTRAN compilers.
The ARCHANGEL routines were developed sufficiently by the early 90's to take on large pipeline process needed by an all-sky digital survey, in this case 2MASS. While the extragalactic science drivers were primarily focused on small galaxy photometry, the 2MASS database would contain thousands of high surface brightness galaxies with arcmin angular sizes (i.e. dozens of pixels in radius). Given the demands of a NASA archive, a new approach was needed by the reduction pipeline that could handle analysis plus file management and network tasks. Fortunately, all these needs are supplied by a new interpretive language to the community, Python. Unfortunately, 2MASS decided to go with a primitive galaxy pipeline, one that does not adapt to the shape of the isophotes and, in the end, produces horribly inaccurate and biased results (see Documentation section for a the cautionary tale of the 2MASS galaxy catalog).
The switch to Python for the ARCHANGEL package provided six notable advantages. First, the package became highly portable as Python is available on almost all OS's. The second is that the flexible of the Python language provides for a higher level of decision-making by the controlling scripts. Third, Python is easy to adapt to a client/server CGI, thus providing a web aspect to the reduction package as well as straight user processing. Fourth, there exists a PGPLOT port to Python which means a direct transition to graphics that astronomers are familiar with. Fifth, the network aspects to Python means that the user can automatically download matching data from any data archive without the interactive delay of a web page. Lastly, being a interpretative language means that runtime modifications to the code can be made by the controlling scripts. When combined with the XML database modules in Python, this means the user can evolve the codes being used.
Funding from NASA's AISR program placed ARCHANGEL in the public domain. It also funded a web client/server version as well as firming up the documentation and training manuals for the package. As it stands now, ARCHANGEL has been tested on most of the Unix OS's and the client/server provides access for Windoze users. Future work will emphasize adding quantitative morphology options to the package and a demonstration of the package on multi-wavelength databases.