CHANGES to the "catlib" Catalog Interface Library ------------------------------------------------- This file contains a list of changes to the "catlib" libraries. The latest changes are at the top. --------------- 17.02.01 released catlib-3.7.1 ----------------- * Fixed a bug that occurred when a catalog config entry had a copyright field but no x,y or ra,dec columns defined. --------------- 20.09.00 released catlib-3.7 ----------------- * Added changes to support galactic and ecliptic coordinates (pass equinox as a string instead of a double, where the value may be a number (2000, 1950, ...) or a coordinate system name ("FK5, "GALACTIC", ...). --------------- 02.03.00 released catlib-3.6 ----------------- * TclAstroCat.C::queryCmd: now returns a TCL_ERROR if a table row does not contain a valid coordinate position when it should. The previous versions tried to continue, but the error message overwrote the result of the query (in the Tcl result). --------------- 25.10.99 released catlib-3.5 -------------------- * Merged in changes made by Peter Biereichel --------------- 09.09.99 released catlib-3.4.1 -------------------- * Updated for egcs/gcc-2.95. --------------- 22.07.99 released catlib-3.4 ---------------------- * TCS catalogs: fixed a bug dealing with TCS catalogs (error message was "empty TCS result"). The problem was caused by adding an extra parameter to the init() method in the base class (TabTable), but not in the derived class (TcsQueryResult), so that inheritance did not work as expected. * Fixed problem with catalog directory hierarchies. Previously, catalog names had to be unique in the entire catalog hierarchy. Now, the interface has been changed slightly to fix this. A catalog directory argument may now be either a name, as before, or a tcl list of catalog directories, forming a path to the catalog's parent directory. Also, catalogs are now searched for only in the given directory, not recursively down the tree. The "astrocat open" command now also takes an optional directory argument, so that you can open a catalog in a specific directory. The changes are all backward compatible, except for one: there is no more recursive search for catalogs in the tree. However, it is not likely that this feature was used. --------------- 21.06.99 released catlib-3.3.3 ---------------------- * TclAstroCat.C: allow empty RA and DEC columns in query results where ra_col and dec_col are defined (previously an error mesage was generated: "error in RA value, expected HH:MM:SS"). --------------- 22.03.99 released catlib-3.3.2 ---------------------- * Replaced itclsh2.2 with itclsh@ITCL_VERSION@ in Makefile.in. * Fixed a potential bug in the handling of local catalogs. "mmap" was being used to read the catalog file and the resulting string was not always null terminated. Now class LocalCatalog makes a null terminated copy and passes it to class TabTable, which reuses it instead of making a copy of it again. --------------- 28.12.98 released catlib-3.3.1 ---------------------- * Rebuild tclIndex file whenever configure is run, since Tcl8 version is not compatible with tcl7 version (see makelinks script). * TcsCatalog.h: fixed problem with hidden virtual methods reported by the sunpro CC compiler. --------------- 16.11.98 released catlib-3.3 ---------------------- * Ported to tcl8.0.3 (still compatible with tcl7.6/tk4.2/BLT2.1) - Updated namespace syntax and BLT graph handling * Local catalog files starting with "/tmp/" are no longer written to the ~/.skycat/skycat.cfg file. --------------- 30.9.98 released catlib-3.2.2 ---------------------- * Changed the release structure of the catlib package to include the necessary utility packages. Now the catlib tarfile also contains the astrotcl and tclutil packages. The top level Makefile and configure script automatically determine which packages to make. * Fixed a problem dealing with temporary image files and mmap (The fix in the previous version was not working). * Fixed minor bug in TclAstroCat.C::saveCmd() (when the headings argument is not specified). * Added a "History" menu item in the Data-Servers menu for displaying the new image history catalog. --------------- 23.9.98 released catlib-3.2.1 ---------------------- * Fixed minor bugs in test programs, updated docs, updated C interface, added comments indicating that the astroImage interface is obsolete and that the astroCatalog interfaces should be used instead. * Fixed a bug introduced in the previous version. The temp file for images from image servers was being reused instead of using a new file each time, which caused problems with the display that had the file mapped. * Changed the error handling for empty catalogs so that a catalog with no headings (and no dashed line after the heading) is not considerred an error, but just an empty catalog. --------------- 7.9.98 released catlib-3.2 ---------------------- * Fixed a bug dealing with catalog name servers (SIMBAD, NED) introduced in the previous version. * Removed default for limit on number of rows returned from a catalog query (%n in URL). * Merged the image server interfaces with the catalog interfaces. The AstroImage and TclAstroImage classes, and the astroimage Tcl command are still available for backward compatibility, but are now obsolete and should no longer be used. The AstroCatalog and TclAstroCat classes, and the astrocat Tcl command now handle image servers as well as catalogs. The "getimage" methods/subcommands are now part of the catalog classes. The merge was made to avoid duplicating large chunks of code, since there are many similarities in the two interfaces. * Now it is possible to generate image server windows with custom search labels and without the default search widgets (name, ra, dec, radius). This was previously only supported for catalogs. In both cases, if you don't want the default search widgets, add these lines to the config entry: ra_col: -1 dec_col: -1 x_col: -1 y_col: -1 For catalogs, this means that there are no searchable ra,dec or x,y columns. For image servers, it means that you can't search by these values, so they are not displayed. * Catalog config file: Allow search columns with only one value (previously only min and max values were allowed). This feature is enabled if the second label is missing in the "search_cols: " keyword in the catalog config file. For example, in an image server: search_cols: patch Patch will display a "Patch:" label and entry in the user interface. In the URL for the image server, "%cond" will then be replaced by "patch=22", if the user typed in 22. * Fixed the handling of the "maxRows" field for searching catalogs, so that, if it is left blank or zero, there is no limit (previous versions had a default limit). --------------- 5.8.98 released catlib-3.1.18 ---------------------- * AstroCatalog.C:getPreview() Added code to check the the HTTP Content-Encoding of image files (instead of only the Content-type), to help recognize compression types. * TclAstroCat.C, TclAstroImage.C: added "authorize" subcommands to set username and password for HTTP access after an HTTP server returns an "Authorization Required" error. This can be used together with the tclutil/PasswdDialog widget to ask for the username and password for an HTTP service. * AstroCat.tcl, AstroImage.tcl: added a check for a special authorization error message returned from an HTTP GET. A password dialog is displayed where the user can type in the username and password for the HTTP service (first time only). * AstroImage: added support for backup URLs for image servers (was previously only supported for catalogs). This is activated by using the "backup1" and "backup2" keywords in the catalog config file. * "Reload Config File" now works recursively and reloads the information in any remote catalog directories that were open. Previously, only the top level catalogs were reloaded. * Added the X11 library directory to shared lib path in startup script. * Fixed a bug in TabTable.C where the "id" column was still assumed to be always 0. Now the id column index is given as a parameter (taken from catalog config file). * Changed the way that rows are inserted into local catalogs. They were previously appended to the end of the file after removing duplicates. Now the original row position is kept and the row is updated if it already exists (same id) and appended otherwise. (Changed TabTable::insert()). * The catalog and image server windows were using up too many file descriptors (1 each for a log file and 2 each for an HTTP feedback pipe) and in one case, the log file was being opened, but not closed, so that you could eventually run out of fds. Now the pipe and log file are only opened as needed and closed again immediately. --------------- 07.07.98 released catlib-3.1.17 ---------------------- * AstroCat.tcl: Fixed minor debugging problem: propagate -debug flag to AstroQuery.tcl. * QueryResult.C: allow local catalog search without ra,dec columns * CatalogInfo.C: fixed handling of default column positions for ra and dec, to allow catalogs with no ra,dec or x,y columns. --------------- 26.6.98 released catlib-3.1.16 ---------------------- * TcsCatalogObject.h: removed unused method "isNull(int v)", to avoid error message from egcs-1.0.3 compiler about value being too large for int. * AstroCat.tcl, ProxyDialog.tcl: added a menu (under Options) and dialog window for setting a proxy server for HTTP catalog access from behind a firewall. --------------- 19.6.98 released catlib-3.1.15---------------------- * TclQueryUtil.C: Minor change in the way query coordinates are interpreted. If the RA value is an integer, it is assumed to be in hours (as before), but if it is a decimal number (3.2, for example), it is assumed to be in degrees. * AstroCat.tcl: fixed bug in the handling of the MORE URL (mostly used for HST catalogs). The "M=" part before the URL was not being recognized. --------------- 28.5.98 released catlib-3.1.14---------------------- * AstroCat.tcl: MORE and PREVIEW fields can now be commands. No special check is made for "http://" or "file://" as before. * AstroCatalog.C: added check for "SIMPLE" keyword in PREVIEW result, in case the PREVIEW URL is a command and there is no mime-type. * AstroCat.tcl: "Data-Servers/Local catalogs" menu: Added check for local catalogs, to see if the file exists. If not, you are asked if you want to specify a new name or remove the catalog from the menu. * TclAstroCat.C: Minor change in handling of equinox to default to "2000" for galactic or ecliptic coords. * AstroImage.tcl: added "Select Area..." button to AstroImage window to select the area of the image to fetch (as with the catalog window). --------------- 13.5.98 released catlib-3.1.13---------------------- * Added a "help" field to the catalog config file, which may optionally contain a URL pointing to information about the catalog. If the "help" URL is specified, a "Help" button appears in the user interface, which displays the URL in netscape (using the remote interface, if netscape is already running). Changes in AstroCat.tcl, AstroImage.tcl, TclAstroCatalog.[Ch], CatalogInfo.[Ch], TclAstroImage.[Ch]. * Fixed problem with "Preview" images that was caused by using the same temporary file to hold the image each time (now uses a new file each time and deletes the old one). --------------- 4.5.98 released catlib-3.1.12---------------------- * CatalogInfo.C: Fixed the "reload()" method ("Reload Config File") to remove "dead" catalog entries (entries that were removed from the config file since the last time it was read). --------------- 28.4.98 released catlib-3.1.11 --------------------- * Fixed minor bugs in AstroCat.tcl::get_table and get_equinox (was using wrong component name) * AstroCat (catalog window) layout: removed some padding to save space. --------------- 15.4.98 released catlib-3.1.10 --------------------- * (doc, *.tcl): For documenting the "public interface": Updated comments on all Itk component declarations and added "public", "private" and "protected" keywords in the source to help identify the public interface, which is documented in man pages generated from the source by the itcldoc utility (tclutil package). * AstroImage.tcl: Clear image before loading a new image (to avoid problems with decompression and temp files). * Minor changes in configure script and top level makefile for shared libraries * Fixed some bugs added in recent releases (printing query results, setting search columns). --------------- 25.03.98 released catlib-3.1.9 --------------------- * Updated man pages and documentation --------------- 25.03.98 released catlib-3.1.8 --------------------- * Removed declaration for strcasecmp in TabTable.C, since it reportedly conflicted with system definitions in dec alpha. * Added "clone" number to window headers, to help identify related windows when there is more than one main window. --------------- 05.03.98 released catlib-3.1.7 --------------------- * Added short help message for plot symbols * For backward compatibility: Removed dependence on the Tix package (now part of tclutil package). * For backward compatibility with applications using the cat library: The dependency on the astrotcl and tclutil packages is now hidden from applications. libcat.a (.so, .sl, etc.), now contains the astrotcl and tclutil object files, the $prefix/include/cat dir contains copies of the astrotcl and tclutil header files, and the Cat_Init() routine also initializes these packages as well as the Tix package, which is now also included in the tclutil package. --------------- 13.2.98 released catlib-3.1.6 --------------------- * Minor change: removed AstroCat::list_windows method, since no longer needed. --------------- 9.2.98 released catlib-3.1.5 --------------------- * Fixed minor problems with test programs --------------- 3.2.98 released catlib-3.1.4 --------------------- * Added a default mag range of (0..15) for gsc-server only, as a temporary special case until the gsc-server is modified to allow the magnitude to be empty, (i.e.: "mag=," instead of "mag=0,15"). gsc-server doesn't accept a negative mag value, so it doesn't help to set the default range to (-99..99) or some arbitrary range. --------------- 25.01.98 released catlib-3.1.3 --------------------- * Updated comments in Itcl sources for automatic generation of man pages. (There are now man pages for all Itcl classes). * Split the "top level" AstroCat class into different "frame" classes, by request. Now the AstroCat class is made up of an AstroQuery class (defines the panel with the search entries) and the QueryResult class (defines the table for displaying the query results). None of these classes knows about images. For image support, see the Skycat package, which contains classes that are derived from these and add image support. * Added additional plot symbols: arrow, line, compass, ellipse. These (and the "plus" symbol) are all rotated relative to world coordinate "north", if it is known. --------------- released catlib-3.1.2 --------------------------- * Fixed PreviewPlot class (used to plot HST preview data). (Was out of date after upgrade to BLT-2.1). * Split AstroCat class to remove dependence on Skycat. All image related operations, such as plotting objects on an image, are now done in a subclass in the Skycat package. * Catalog config entry: If ra_col, dec_col, x_col, and y_col are all set, then the catalog is assumed to have both ra,dec and x,y columns in the query output. In this case, allow searching by ra,dec, but plot the results using x,y (image coords). (Requested by awicenec@eso.org, for cases where WCS info is incorrect, but x,y coordinates are OK). * Compilied sources with the SunPRO C++ compiler and fixed problems that showed up there and not with gcc. * Reorganized sources: The catalog library is no longer dependent on the RTD package. It is now dependent on two new packages: The Tclutil package was created by gathering "generic" Tcl and C++ code from various applications into a single generic Tcl package. The Astrotcl package was created by gathering general astronomy related Tcl and C++ code from other packages into a single, reusable package. If you were previously loading the Cat and Rtd packages dynamically, you will need to add "package require" statements for the Tclutil and Astrotcl packages, and remove the reference to Rtd, if you don't need Rtd image support. If you were linking the packages statically, you will need to add calls to Tclutil_Init and Astrotcl_Init in tkAppInit.C, and remove the call to Rtd_Init, if you don't need the Rtd image features. If you were using the catalog C++ classes directly, you will need to add some -I compiler options to your Makefiles: (-I$(INSTALLDIR)/astrotcl -I$(INSTALLDIR)/tclutil). The C interface is not affected by this. * The Itcl catalog widgets (AstroCat, AstroImage, etc.) are now a part of the cat package (They were previously part of the skycat package). --------------- 3 Nov 97 released catlib-3.0 ---------------------- * Added support for catalog directories via the new keyword "directory" in the catalog config file. An entry with "serv_type" equal to "directory" should have in the "url" field a URL pointing to another catalog config file. The catalog list is stored as a hierarchical list of catalog entries. New methods and Tcl subcommands have been added to navigate the hierarchy. * Added support for specifying search and sort columns, sort order, column display order, columns to hide or show (see below). * Config file: added new keywords: is_tcs: boolean value indicates whether catalog is a TCS catalog search_cols: list of columns that can be searched sort_cols: list of columns to sort by sort_order: "increasing" or "decreasing" - tells how to sort. show_cols: list of columns to display (default all). Indicates the order of the columns and which ones to show or hide. * Config File: extended the meaning of the "symbol" entry to include information about the color, shape, angle, size and units of plot symbols. New syntax: symbol: colnames symbol sizeexpr : colnames symbol sizeexpr : ... where colnames - is a list of column names used as variables in the entry symbol - is the symbol to use, one of: square, circle, triangle, cross, plus, diamond, elipse. The symbol may also be a list such as {circle yellow} and some symbols take extra args for ratio and angle (elipse, plus), which may be expressions using column names as variables. sizeexpr - is an expression in terms of colnames above, used to determine the size of the symbol. It may also be a list {expr units}, where units is one of {image "deg J2000" "deg B1950"} (default: image, for image pixel coords, see RTD doc for coordinate syntax). The column names can be used as variables in the expression using "$" (following Tcl syntax). examples: symbol: mag circle 15-$mag : xyz square (1-$xyz)*2.5 symbol: {a/b pa mag} {ellipse yellow ${a/b} $pa} {15-$mag} symbol: "a/b pa mag" "ellipse yellow ${a/b} $pa" "15-$mag" * Tcl interface: added new astrocat Tcl subcommands: $cat entry get ?name? ?directory? $cat entry update $info ?name? ?directory? $cat entry add $info ?directory? $cat entry remove $name The entry subcommand can be used to navigate and edit the catalog config information. $cat reload Reload the catalog config file. Use this if the config file was edited and you want to access the new info. $cat sortcols $cat sortorder $cat showcols $cat searchcols Get or set the values of these new keywords in the catalog config file. $cat root Returns the name of the root catalog directory. * Tcl interface: Added options to astrocat Tcl subcommand to support catalog directories. New usage: $cat info $serv_type ?$directory? * C++ interface: - class CatalogInfo: added methods for dealing with catalog directories appending, updating, removing entries, reloading the config file. The file ~/.skycat/skycat.cfg is no longer referenced in this lib (skycat does a "setenv CATLIB_CONFIG ~/.skycat/skycat.cfg" on startup). $SKYCAT_CONFIG is still supported, but $CATLIB_CONFIG is preferred. - class CatalogInfoEntry: added new members for new catalog config keywords, added a "link" member for directory entries, added append() method. - TcsCatalog classes: added code to handle the new ra_col and dec_col changes. * catalog URLs (entries in the config file) may now be local commands as well as file:/ and http:/ entries. If the URL starts with a / and is the name of a local file AND the config file is also local the command will be executed with the given arguments and the result should be a standard query result in tab table format. Substitution is performed on the arguments in the same way as for the http:/ and file:/ entries (%ra for ra, etc...). * Added code to support catalogs in either World coordinates or image coordinates (previously only World Coordinates were supported). A catalog is considerred to be in World Coords by default unless the keywords "x_col" and "y_col" are used (see below). * The catalog library now allows catalogs with varying column order. Previously catalogs were required to have the first 3 columns "id", "ra", and "dec". This is now the default behaviour, but may be overridden with the keywords: "id_col", "ra_col", and "dec_col" in the catalog config file or the header of the search results or local catalog. For example: serv_type: catalog long_name: My test catalog server ... id_col: 6 ra_col: 0 dec_col: 1 Or if the catalog is using image coords instead of World coords: id_col: 6 x_col: 0 y_col: 1 * Catalog config information is now read from query results as well as from the catalog config file and local catalog headers. --------------- 24 April 97 released catlib-2.9 ---------------------- * AstroCatalog: The methods getObject and searchClosestStar (and the C versions acGetObject and acSearchClosestStar) no longer return an error if the object is not found (requested by mcomin). Updated the man pages to state this. *** NOTE: This is a change in behavior from the previous versions *** * Minor changes to man pages to make args and return values more clear. * class AstroCatalog: added "%cond" to the list of variables that are substituted in the catalog config file URLs. This is needed in order to implement the "CatalogSearch()" method, which specifies a list of columns and min and max values to search for. %cond - insert search condition, if any, in the format col1:minVal:maxVal,col2:minVal:maxVal,... Note that there are not yet any catalog servers that use this field, so that the CatalogSearch() method will still not work, but this should change when the servers support this type of search. --------------- 22 April 97 released catlib-2.8 ---------------------- * More minor changes in the configure scripts and makefiles for dealing with shared libraries on HP. * allow mag to be negative (was previously not allowed) in catalog searches. * added this text to the man pages AstroCatalog.man3 (C++ version) and astroCatalog.man3 (C version) QUERY PARAMETERS Parameters for catalog searches are checked to make sure they are valid and in the correct range. A radius value must be between 0.0 and 300.0 arcmin. A magnitude may have any value. For ranges, such as min and max radius and min and max magnitude, the order of the arguments is not important, since they will be rearranged as needed. If both min and max values are 0.0, they are ignored for that search. * made minor changes to the INSTALL file and installation section of the frame docs. --------------- 11 Apr 97 released catlib-2.7 --------------------- * added support for shared libraries and loadable Tcl modules use: configure --enable-shared to create the shared library (libcat.so or libcat.sl). * changed the name of the Tcl init routine for the cat lib from TclAstroCat_Init to Cat_init, to comply with the standards for loadable modules in the new Tcl version (The old version is still supported for backward compat.) * changed the configure script and Makefiles to get information from the rtdConfig.sh script installed by Rtd and produce a catConfig.sh with more information, that can be used by other applications. (Rtd gets the info from tclConfig.sh, tkconfig.sh, etc...). * fixed bug in local catalog search when there is no "mag" column. Now the mag range is ignored if there is no mag column. --------------- 10 Feb 97 released catlib-2.6 --------------------- * fixed bug in local catalog search method (TabTable::search) * added error message for case where you search by ID, but the catalog URL doesn't support it, and when you search by RA,DEC and the URL doesn't support that. Note that the GSC now does support search by object ID, but the default catalog config file (http://archive.eso.org/skycat/skycat.cfg) doesn't include support for it yet, since it would break earlier skycat releases. You can fetch the above URL (with netscape) and look for the GSC entry, which has an alternative URL for GSC commented out. You can put the file in your ~/.skycat directory (named skycat.cfg) or set the environment variable SKYCAT_CONFIG or CATLIB_CONFIG to a URL pointing to the file (file:... or http:...). A future version of skycat will allow the user to build up a private catalog config file interactively. --------------- 30 Jan 97 released catlib-2.5 --------------------- * Added support for backup catalog servers and local catalog config files. The config file has 2 new keywords: "backup1" and "backup2". These are used if there is an error accessing the "url" field for the catalog. * Made changes to the handling of local catalogs to try to improve the performance. Local catalogs are kept entirely in memory now. --------------- 21 Nov 96 released catlib-2.4 --------------------- * Made configure scripts and sources Linux compatible. Thanks to Sidik Isani for supplying the patches for this. * (Catlib) It is now possible to search GSC by Id. --------------- 8 Nov 96 released as catlib-2.3, part of skycat 1.0.1 * Added copyright field to catalog config file and the CatalogInfo class. --------------- 7 Nov 96 released as catlib-2.2, part of skycat 1.0 * Fixed bug in impl. of AstroImage::getArea (where you specify 2 positions and want to get the objects in the box). Now the 2 positions are translated into a center position and radius (since none of the catalog server URLs currently have a place for 2 positions...). To do this, addded a method "WorldCoords::center()" to get the center pos and radius from 2 positions. * Fixed bug when saving local catalogs for images that are not J2000. (The catalog was saved as B1950, for example and later treated as J2000 when loaded). Now all local catalogs are saved (the ra,dec columns) in equinox J2000 and are expected to be in J2000 when opened. For this, an extra argument was added to some astrocat tcl subcommands: the "save" and "remove" commands now take an "equinox" optional argument that defaults to 2000. * Local catalogs: class QueryResult/TcsQueryResult: The catalog config file entry info is now written to local catalog headers. This is needed so you can determine what plot symbols and columns to use in skycat. The syntax is the same as in the catalog config file and the entry is used if it is found. * added rcs keywords as static constants to source files (for Giorgio). --------------- 1 Oct 96 released as catlib-2.0, part of skycat 1.0b12 --------------- 20 Sep 96 released as catlib-2.0b1, part of skycat 1.0b11 * the environment variable CATLIB_CONFIG is accepted instead of SKYCAT_CONFIG (they both have the same meaning: a URL pointing to the catalog config file with the default list of catalogs and their descriptions. * split the "./cat" directory into "./cat" (catalog libraries only) and "./skycat" (skycat application, interpreted and single binary versions), by request. Note that the catalog libraries still depend on two rtd libraries: libwcs.a (rtdwcs) and libutl.a (rtdutl). These are general purpose libraries for handling world coordinates and shared memory, etc. ---------------- 14 Aug 96 released as part of skycat-1.0b10 ------------------ * added bounds checking in catalog classes (catalog query), now enforces: 0 <= ra < 24 -90 <= dec <= 90 mag (no check, order so that min