The Mappings described in provide a set of basic building blocks from which more complex Mappings may be constructed. The key to doing this is a type of Mapping called a CmpMap, or compound Mapping. A CmpMap's role is, in principle, very simple: it allows any other pair of Mappings to be joined together into a single entity which behaves as if it were a single Mapping. A CmpMap is therefore a container for another pair of Mappings.
A pair of Mappings may be combined using a CmpMap in either of two ways. The first of these, in series, is illustrated in the following Figure.
Here, the transformations implemented by each component Mapping are performed one after the other, with the output from the first Mapping feeding into the second. The second way, in parallel, is shown in the Figure below.
In this case, each Mapping acts on a complementary subset of the input and output coordinates.2
The CmpMap forms the key to building arbitrarily complex Mappings because it is itself a form of Mapping. This means that a CmpMap may contain other CmpMaps as components (e.g. the Figure below). This nesting of CmpMaps can be repeated indefinitely, so that complex Mappings may be built in a hierarchical manner out of simper ones. This gives AST great flexibility in the coordinate transformations it can describe.
Further reading: For a more complete description of CmpMaps, see . Also see the CmpMap entry in .
AST A Library for Handling World Coordinate Systems in Astronomy