Suppose you have two complete sets of chip images which differ in some way not dependent on either space or time coordinates - for example, they may represent the same exposure but in two different energy bands. It would be simple enough to run eimchip2sky twice, one time per set. However this is essentially wasted work because the details of the coordinate transform are identical for the two sets. It is in order to allow the coordinate transform to be done just once for such sets that the indices parameter has been introduced. An example is the best way to illustrate how it works in detail. Suppose there are two sets as above but (for brevity) each set contains just images from chips 1, 2 and 3 of a given instrument. Let the images at band `a' be named im_1_a, im_2_a and im_3_a, and those at band `b' be named im_1_b, im_2_b and im_3_b. The user should set parameters (among others as appropriate for other functions) as follows:
chipimgsets='im_1_a im_2_a im_3_a im_1_b im_2_b im_3_b' indices='1 1 1 2 2 2' outsets='out_a out_b'
In this case, the task performs 3 transforms instead of the 6 that would be necessary if the `a' images were done separate to the `b's: proper use of the indices as above allows it to group for example im_1_a and im_1_b together and apply the necessary transform just once.
The indices parameter thus serves to connect the input and output lists of images; ie it indicates, for each input image, which member of the list of output images it contributes to. Therefore indices must have the same number of elements as chipimgsets, but its range of values (in this case 1 and 2) must span the number of elements in outsets.
Note that, strictly speaking you should also set withindices=`yes'. However, with the current parameter interface this is unnecessary.
What if you only have chip images from 1 band, and only 1 output image? In this case, do nothing: ignore indices, it will automatically have the correct default behaviour.