Previous: Obsolete Routines Up: RTL Routine Changes

Property Labels

Property labels are a new feature in the RTL in delivery 8.0. While they have nothing to do with portability per se, they are documented here until such time as the RTL Reference Manual can be rewritten.

There are now three major sections of labels: system, history, and property. System and history existed previously, while property labels are new.

System labels are defined by the VICAR RTL and contain all the information necessary for the RTL to access the image, such as size, pixel type, and host format information. System label items are not normally modified once the image is created. Since they are defined by the RTL, application programmers may not add their own system label items.

History labels contain the processing history of the image. Each time a VICAR task is run on an image, a new history task gets added to the history label of the image. The history labels are copied from the ``primary input'' file (usually the first input file), and the new task is appended to the end. Application programs are free to add label items as they wish to the history label.

Previously, history labels served a dual role: they contained processing history (what tasks were run in what order), but they also contained information about the current state of the image, which has nothing at all to do with history. A good example is the Magellan MIDR label. All descriptive information about the MIDR product is kept by convention in the first LOGMOS history task. They have no historical meaning whatsoever, as they are updated by later processing runs. They describe the current state of the image. Another example is map labels. The map labels describe the map projection the image is in. A program that changes the projection adds a new map label entry to the history label. The last entry is the current projection. While in this case the map labels are historical, it is confusing to search through all the map labels to find the last (current) one. It is useful to keep a history of previous projections, but it is not clear to an inexperienced user which projection is current.

This dual role for history labels was confusing. Which of potentially several LOGMOS runs were the MIDR labels kept in? What task created the map labels? What was the actual processing history? Since previous tasks were modified, some historical information was lost. These problems led to the creation of property labels.

Property labels are used to describe the current state (or properties) of the image. They should eventually take over that function from the history labels, leaving the history labels to be only history. This may take a while, due to the large amount of software and images that use the history labels, but the goal is to make property labels the only place for non-historical image labels.

Property labels can also be used instead of binary labels for many applications. Property labels do not suffer the same portability problems as binary labels, and they are more readable. They can replace binary headers in most cases. Replacing binary prefixes may be more difficult. Although binary labels are still allowed, the use of property labels instead is encouraged.

Property labels are divided into named groups or sets called ``properties'', much like history labels are divided into named groups called ``tasks''. There is only one instance of each property name, unlike history tasks. For example, while there may be a half dozen ``LOGMOS'' tasks in the history label, there could be only one ``MIDR'' property in the property label.

Within each property group are individual label items. The label items look identical to their counterparts in the system and history labels. They may be string, integer, real, or double precision, and may have multiple values (i.e. an array). The keys for each label item must be unique within the property group, but may be duplicated between groups. The keys can be up to 32 characters long, just like any other label key. The label keys ``PROPERTY'' and ``TASK'' are reserved to separate property and history label sets, and may not be used by applications.

An example property label is listed (via label-list) below. Please note that the properties and names listed are only examples, and do not in any way establish the official names of anything.

---- Property: TSTMAP ----
CENTER=(45.0, 12.7)
---- Property: TSTLUT ----
RED=(1, 2, 3, 4)
GREEN=(4, 5, 6, 7)
BLUE=(7, 8, 9, 10)