Next: The Horizon Metadata Model Up: Supporting Metadata and Coordinate Previous: Contents

# Motivation and Context

A general character of scientific data is that they represent measurements or estimates of some physical quantity (e.g. temperature, brightness, voltage, magnetic field, etc.). The measurements are made under certain quantifiable conditions, some of which may be made to vary. For example, one might measure temperature over a range of pressures or brightness from different positions within an area of the sky. Thus, the data have a context, or in mathematical terms, a domain which provides them with relevance. This context can be described as a multidimensional space in which each axis is a quantifiable parameter describing the condition under which each measurement was made. If the space is well-defined (i.e. its axes are orthogonal), then each datum can be mapped to a single position within that space. This domain space is often referred to as the data's world coordinate system.

The Horizon Image Data Browser Java package supports a special type of scientific data it refers to as an image. In a scientific context, an image is a set of data that regularly samples a volume of N-dimensional space. Data points that make up an image are often referred to as pixels; this term, however, connatates two dimensions, so to reflect the N-dimensional nature of the data, the more general term of voxel will be used instead. Within a computer application, the data are usually represented as an N-dimensional array in which each position in the array maps to a position in the dataset's world coordinate space. When visualizing this data, the scientist is usually more interested in a datum's position within the coordinate system than its absolute position within some data array. So, by way of example, a useful visualizing tool displaying a satalite image of a patch of the earth might display the longitude and latitude of any voxel in the image whenever it is selected with a mouse.

Implicit to displaying coordinate positions is a conversion from the positions in the data array to positions in the coordinate system. The function mapping the two spaces might be described by a variety of parameters. The parameters can be considered as metadata of the coordinate system. Horizon's support of world coordinate systems relies heavily on its support for the notion of metadata; thus, this document takes some time to describe Horizon's metadata model (§2) and shows how it is well suited for handling coordinate systems.

Horizon's object model for coordinate systems tries to be flexible enough to handle a wide variety of scientific applications. Features of the model include:

- support for multiple schemas, or ways of describing a coordinate system. In general, the model makes no assumptions about how a system should be parameterized or, in particular, what names should be given to those parameters.
- support for mulitple coordinate systems. Image voxels may logically map to positions in a variety of different coordinate systems. For example, positions in a satalite image might be given either by longitude and latitude, by a relative grid position in units of miles, or by the name of the country the position resides within. The user can easily switch between the various systems when necessary.
- two-way conversion between dataset positions and world coordinate positions. The mapping can be non-linear. The conversion might be non-reversible due to some loss of information; for instance, converting a data position to a state name then back to a data position might not result in the original position.
- continuous data spaces. Positions within datasets may be fractional, allowing one to ask the coordinate position of a location between two adjacent data voxels.
- automatic display of coordinate systems in an application-specific format.

As our definition of an image suggests, the Horizon world coordinate system model does not explicitly support irregularly sampled data. In most cases, one should be able to ``squeeze'' such data into Horizon's image model and make use of Horizon tools to visualize the data; however, given that such data lies at least in part outside of Horizon's image model, the user may eventually encounter a limit to the usefulness of using Horizon to visualize this type of data.

When it comes to ``ease of use'', the Horizon design tries to favor the application programmer. That is, when working with a fully supported data format, one can in a few lines instantiate full-featured objects with access to all the data necessary for visualization and analysis; the programmer does not need to concern him- or herself so much with how the data is read or where it is coming from. The programmer wishing write a reader to support a new data format needs to understand a little more about the Horizon model; however, a number of tools are provided to make this easier. This document covers both levels of detail.

Next: The Horizon Metadata Model Up: Supporting Metadata and Coordinate Previous: Contents