next up previous
Next: astMapBox - Find a bounding box for a Mapping
Up: AST Function Descriptions
Previous: astIsA<Class> - Test membership of a class by an Object

astLutMap - Create a LutMap   

Description:
This function creates a new LutMap and optionally initialises its attributes. A LutMap is a specialised form of Mapping which transforms 1-dimensional coordinates by using linear interpolation in a lookup table. Each input coordinate value is first scaled to give the index of an entry in the table by subtracting a starting value (the input coordinate corresponding to the first table entry) and dividing by an increment (the difference in input coordinate value between adjacent table entries).

The resulting index will usually contain a fractional part, so the output coordinate value is then generated by interpolating linearly between the appropriate entries in the table. If the index lies outside the range of the table, linear extrapolation is used based on the two nearest entries (i.e. the two entries at the start or end of the table, as appropriate).

If the lookup table entries increase or decrease monotonically, then the inverse transformation may also be performed.

Synopsis:
AstLutMap *astLutMap( int nlut, const double lut[], double start, double inc, const char *options, ... )

Parameters:
nlut
The number of entries in the lookup table. This value must be at least 2.
lut
An array containing the "nlut" lookup table entries.
start
The input coordinate value which corresponds with the first lookup table entry.
inc
The lookup table spacing (the increment in input coordinate value between successive lookup table entries). This value may be positive or negative, but must not be zero.
options
Pointer to a null-terminated string containing an optional comma-separated list of attribute assignments to be used for initialising the new LutMap. The syntax used is identical to that for the astSet function and may include "printf" format specifiers identified by "%" symbols in the normal way.
...
If the "options" string contains "%" format specifiers, then an optional list of additional arguments may follow it in order to supply values to be substituted for these specifiers. The rules for supplying these are identical to those for the astSet function (and for the C "printf" function).

Returned Value:
astLutMap()
A pointer to the new LutMap.

Notes:
  • If the entries in the lookup table either increase or decrease monotonically, then the new LutMap's TranInverse attribute will have a value of one, indicating that the inverse transformation can be performed. Otherwise, it will have a value of zero, so that any attempt to use the inverse transformation will result in an error.
  • A null Object pointer (AST__NULL) will be returned if this function is invoked with the AST error status set, or if it should fail for any reason.



next up previous
Next: astMapBox - Find a bounding box for a Mapping
Up: AST Function Descriptions
Previous: astIsA<Class> - Test membership of a class by an Object

AST A Library for Handling World Coordinate Systems in Astronomy
Starlink User Note 211
R.F. Warren-Smith & D.S. Berry
30th April 2003
E-mail:ussc@star.rl.ac.uk

Copyright (C) 2003 Central Laboratory of the Research Councils