.help news Jul86 "Ancient News" .nf 30 July 86 IMIO Modifications ------------------------------------------------------------------------------- The new IMIO interface, used by all IRAF tasks to access bulk image data on disk, is now capable of operating upon both the old IRAF format (OIF) images as well as STScI SDAS/GEIS format images. The default image type is the OIF format. Any existing OIF format images are readable by the new system without change. Although IRAF can read either OIF or STF format images, SDAS can read only STF format images, so serious SDAS users should configure IRAF to work with STF format images as the default. All other users should continue to use the OIF format images as image access is more efficient, and the IRAF software has been extensively tested only for OIF format images. Users of the OIF format should note that they can read a VMS BACKUP tape (or UNIX TAR tape) containing STF format images directly to disk and immediately access the images, without changing the default configuration of IRAF. The image type is specified by a filename extension; extensions for the OIF format images are new in this release of the system. The recognized extensions are shown below. image type header file extensions OIF .imh STF .??h (? stands for any character) In most cases when operating upon an image with an IRAF task the extension can be omitted. The most important exception occurs in image templates. THE PATTERN GIVEN IN AN IMAGE TEMPLATE MUST FULLY MATCH THE IMAGE HEADER FILE NAMES AS THEY APPEAR IN A DIRECTORY LISTING, i.e., the header filename extension must be matched by the image template. The image type extension must also be specified to access an image which is not of the default image type (OIF or STF), or when changing the type of an image. For example, cl> imcopy dev$pix.imh pix.hhh will make an STF format copy in the current directory of the OIF format image "dev$pix". The default image type is controlled by the new environment variable IMTYPE. The string value of IMTYPE is the desired image header file extension, e.g., "imh" (omit the dot) for an OIF format image. If IMTYPE is not defined the default image type is "imh". For STF format images there are many possible image header extensions, and IMTYPE specifies the default type IMIO should look for when the extension is not explicitly given, or the default extension to use when a completely new image is to be created. When making a new copy of some existing image, IMIO will make a new image of the same type as the existing input image unless an extension is given to force some other type of image to be created. environment variable description IMTYPE the default image type (extension) IMDIR pixel storage directory for OIF images The IMDIR environment variable defines the directory in which the pixel file is to be placed when creating a new OIF format image. In V2.2 and older versions of IRAF, IMDIR could only be a logical or machine dependent directory pathname. The new system also recognizes the special "builtin" logical directory name "HDR$" (must be upper case). If the value of IMDIR is "HDR$", IMIO will create the pixel file in the SAME directory as the header file, rather than in some other directory. It is also possible to place the pixel file in some subdirectory of the header directory, e.g., "HDR$pixels/" will cause the pixel files to go into the subdirectory "pixels". set imdir = "/tmp/user/" # pixel files -> specified directory set imdir = "HDR$" # pixel files -> header file directory set imdir = "HDR$pixels/" # pixel files -> subdirectory of HDR$ The root filename of OIF pixel files is now the same as that of the header file, rather than a computer generated name. The filename extension of an OIF pixel file is ".pix". The STF format images support group format, a format very similar to that used for group format FITS tapes. IRAF users accessing an STF group format image can specify the `group' (subimage) to be accessed by appending a subscript to the image name, e.g., cl> imstat pix.aah[3] # access group 3 or cl> imstat pix.aah[3][*,100] # line 100 of group 3 A new group format image can be created in a similar fashion, specifying the number of groups to preallocate space for, e.g., cl> imcopy dev$pix testimage[1/10] would create a new group format image "testimage" with space for 10 groups (subimages), and initialize group 1. The remaining groups would then be initialized by specifying only the group subscript "[N]". Note that all groups must be the same size, new groups cannot be allocated, old groups cannot be deleted, the set of possible group parameters is fixed at creation time, and all groups share the same FITS header. 15 June 86 System Tasks ------------------------------------------------------------------------------- The DIRECTORY, HELP, and PAGE system tasks have all undergone important revisions. The directory task has been completely rewritten and now handles directory pathnames, etc., correctly, and in addition it has a more concise syntax. The HELP and PAGE tasks have been modified to replace the old "more" boolean query mechanism (used to pause between pages of output) with a nicer keystroke driven mechanism which offers more options and is faster. Read the manual pages for additional details. The old parameter files should be unlearned. 28 April 86 Package Reorganization ------------------------------------------------------------------------------- The basic package structure of IRAF has been modified to make a distinction between the system packages and the NOAO optical astronomy packages. The basic directory structure of the system was also changed to reflect the new package organization, and the printed documentation will be changed as well when time permits. These changes were necessary to better isolate science software such as the NOAO and STScI/SDAS packages from the system software, for a more logical package structure, and to make it easier to install and maintain the science packages. The new root menu of IRAF is as follows: dataio images lists noao sdas system dbms language local plot softools utilities The NOAO menu is as follows: artdata astutil focas mtlocal proto twodspec astrometry digiphot imred onedspec surfphot Three new packages were added and three old packages were extensively revised. The NOAO mountain tape readers were moved from the DATAIO package into the new MTLOCAL package. The astronomically oriented utility tasks were moved from the UTILITIES package to the new ASTUTIL package. The old LOCAL package was renamed PROTO, and a new LOCAL package was added in the directory "iraf$local/tasks". The concept of the new PROTO package is appropriate for what the old LOCAL package was used for, i.e., prototype, temporary, or contributed tasks which are part of the NOAO package and which are exported with the system, but which are expected to eventually disappear or be replaced by planned system facilities. The new LOCAL package is a place to put tasks of strictly local interest, or tasks which are not portable, e.g., foreign tasks and the Peritek package. The LOCAL package should be particularly useful for outside sites as it gives them a place to put locally added tasks which will not be affected by future updates of the system. Also, the framework (mkpkg, local.cl, etc.) is all set up, making it easier for outside sites to add their own software without having to figure out how to set up an IRAF package. 20 Feb 85 Recovery from Interrupts ------------------------------------------------------------------------------- Tests today (unfortunately only shortly before the first IRAF release) have shown that VMS/IRAF has higher failure rate than expected for recovery from a ctrl/c interrupt of a running subprocess, especially if the process is actively doing i/o. It is probably much safer to interrupt a compute bound process than a process which is doing heavy i/o, e.g., reading a tape or doing many file opens, or probably large numbers of any type of system calls. The failure rate for i/o intensive processes was as high as 1 failure to recover in 4 interrupts in some of the cases tested. Testing of UNIX/IRAF turned up some of the same problems, but the failure rate was considerably lower, probably because the kernel and i/o system are so much simpler. Interrupting a process at the wrong time can cause many problems, e.g., [1] subprocess memory can be corrupted, resulting in unpredictable behavior and possibly deadlock when the CL later tries to talk to the process, [2] a VMS forced exit of the process can occur, e.g., when trying to deliver an AST to an invalid address, [3] corruption of the CL/subprocess communications protocol can occur, resulting in deadlock or the loss of sync (the output of a task will come out when the next command is entered), and various other problems as well. Tests on the old version of VMS/IRAF, which dates back to last fall, show that the problem has existed all along. The fact that we did not fully appreciate the problem until now indicates that the problem is not a serious hindrance provided one is conservative about the use of interrupts. It also appears that this will not be an easy problem to solve, hence it is likely to be with us for a while. Probably nothing at all will be done about it for some months since other projects are likely to have a higher priority if this problem is understood and can be worked around. In summary, try to minimize the use of interrupts, and in particular, avoid interrupting processes which are doing heavy i/o. When in doubt, type "flpr" after interrupting a process to force it to be restarted. If a subprocess becomes hung it may be necessary to restart the CL itself. 20 Feb 85 Process connect failure during ":.snap" in cursor mode ---------------------------------------------------------------------------- We are still occasionally having problems when trying to spawn a graphics subkernel in response to a ":.snap" command in cursor mode. This happens infrequently (which is why it is so hard to find the bug), and will usually go away after exiting and reentering cursor mode and trying again. It might also help to do a ":.gflush" while in cursor mode. .fi .endhelp