" method can be used to make a map by coadding all the samples in the correct location
using a number of different convolution techniques. This is useful when the time series has been
processed independently of the map-maker and the map should be made
" . Raw data
will be flatfielded but this method will not apply any extinction correction, sky removal
or filtering. It is assumed that this has been handled by other tasks prior to making the
" method takes a more holistic approach to map making using an iterative
technique to fit for a number of models for noise and instrumental behaviour, one of which is
the underlying astronomical image. Details of the map making process can be controlled
using the CONFIG parameter.
"(case-insensitive) or a null (!) value is supplied, a set of default configuration parameter values will be used. A full list of the available configuration parameters is available in the appendix of SUN/258. A smaller list of the more commonly used configuration parameters is available in SC/21.
The supplied value should be either a comma-separated list of strings or the name of a text file preceded by an
, containing one or more comma-separated lists of strings. Each string is either a
" setting, or the name of a text file preceded by an up-arrow character
" . Such
text files should contain further comma-separated lists which will be read and interpreted in the same
manner (any blank lines or lines beginning with
" are ignored). Within a text file, newlines can be
used as delimiters, as well as commas. Settings are applied in the order in which they
occur within the list, with later settings over-riding any earlier settings given for the same
Each individual setting should be of the form:
The parameters available are listed in the
" Configuration Parameters
" appendix of SUN/258.
Default values will be used for any unspecified parameters. Assigning the value
(case insensitive) to a keyword has the effect of reseting it to its default value. Unrecognised options
will result in an error condition. This is done to help find spelling mistakes. [current value]
"configuration parameter. [!]
"is TRUE, the
"parameter is ignored. [FALSE]
"is set TRUE, the zero-based indicies of the created JSA tiles will be written to this output parameter. The number of such indices is given the
" – Use a single pass rebinning algorithm. This technique assumes that the data have
previously had atmosphere and instrument signatures removed. It makes use of the standard AST
library rebinning algorithms (see also KAPPA:WCSMOSAIC). It is an excellent choice for obtaining an
image quickly, especially of a bright source.
" – Use the iterative map maker. This map maker is much slower than the REBIN
algorithm because it continually makes a map, constructs models for different data components
(common-mode, spikes etc.). See CONFIG for parameters controlling the iterative map maker.
PARAMS( 1 ) is required by all the above schemes. It is used to specify how many pixels on either side of the output position (that is, the output position corresponding to the centre of the input pixel) are to receive contributions from the input pixel. Typically, a value of 2 is appropriate and the minimum allowed value is 1 (i.e. one pixel on each side). A value of zero or fewer indicates that a suitable number of pixels should be calculated automatically. 
PARAMS( 2 ) is required only by the SombCos, Gauss, SincSinc, SincCos, and SincGauss schemes. For the SombCos, SincSinc, and SincCos schemes, it specifies the number of pixels at which the envelope of the function goes to zero. The minimum value is 1.0, and the run-time default value is 2.0. For the Gauss and SincGauss scheme, it specifies the full-width at half-maximum (FWHM) of the Gaussian envelope. The minimum value is 0.1, and the run-time default is 1.0. On astronomical images and spectra, good results are often obtained by approximately matching the FWHM of the envelope function, given by PARAMS(2), to the point-spread function of the input data.
"in column one. These are comment lines, but if any comment line has the form
"then it determines the system in which the pointing correction are specified (SYSTEM defaults to AZEL). The last comment line should be a space-separated list of column names, including
". Each remaining line should contain numerical values for each column, separated by white space. The TAI column should contain the TAI time given as an MJD. The DLON and DLAT columns should give arc-distance offsets parallel to the longitude and latitude axes, in arc-seconds. The TAI values should be monotonic increasing with row number. The longitude and latitude axes are either AZEL or TRACKING as determined by the SYSTEM value in the header comments. Blank lines are ignored. The DLON and DLAT values are added onto the SMU jiggle positions stored in the JCMTSTATE extension of the input NDFs. DLON and DLAT values for non-tabulated times are determined by interpolation.
If you need to apply two sets of pointing corrections, one in TRACKING and one in AZEL, you can include two tables (one for each system) in a single text file. Both tables should use the format described above. The two tables must be separated by a line containing two or more minus signs with no leading spaces. [!]
". If an NDF is supplied, the output grid will be aligned with the supplied reference NDF. The reference can be either 2D or 3D and the spatial frame will be extracted. If
"is supplied, the JSA all-sky pixel grid will be used (note, the map will still be created as a single NDF - if multiple NDFs, one for each JSA tile, are required, the
"parameter should beset TRUE instead of using the
"parameter). If a null (!) value is supplied then the output grid is determined by parameters REFLON, REFLAT, etc. In addition, this NDF can be used to mask the AST, FLT or COM model. See configuration parameters AST.ZERO_MASK, FLT.ZERO_MASK and COM.ZERO_MASK. [!]
"syntax. An example can be found in $STARLINK_DIR/share/smurf/resist.cfg [$STARLINK_DIR/share/smurf/resist.cfg]
"is always assumed. SPREAD can take the following values:
" – The input pixel value is divided bi-linearly between the four nearest output pixels.
Produces smoother output NDFs than the nearest-neighbour scheme.
" – The input pixel value is assigned completely to the single nearest output pixel. This
scheme is much faster than any of the others.
" – Uses the sinc(pix)
kernel, where x is the pixel offset from the interpolation point (resampling) or transformed input pixel
centre (rebinning), and sinc(z)=sin(z)/z. Use of this scheme is not recommended.
" – Uses the sinc(pix)sinc(kpix)
kernel. A valuable general-purpose scheme, intermediate in its visual effect on NDFs between the
bi-linear and nearest-neighbour schemes.
" – Uses the sinc(pix)cos(kpix)
kernel. Gives similar results to the
" – Uses the sinc(pix)exp(-kxx)
kernel. Good results can be obtained by matching the FWHM of the envelope function to the
point-spread function of the input data (see parameter PARAMS).
" – Uses the somb(pix)
kernel, where x is the pixel offset from the transformed input pixel centre, and
(J1 is the first-order Bessel function of the first kind). This scheme is similar to the
" – Uses the somb(pix)cos(kpix)
kernel. This scheme is similar to the
" – Uses the exp(-kxx)
kernel. The FWHM of the Gaussian is given by parameter PARAMS(2), and the point at which to
truncate the Gaussian to zero is given by parameter PARAMS(1).
For further details of these schemes, see the descriptions of routine AST_REBINx in SUN/211. [
", in which case the system used will be which ever system was used as the tracking system during the observation. The supplied value is ignored if a value is supplied for parameter
The choice of system also determines if the telescope is considered to be tracking a moving object such as a planet or asteroid. If the system is GAPPT or AZEL, then each time slice in the input data will be shifted in order to put the base telescope position (given by TCS_AZ_BC1/2 in the JCMTSTATE extension of the input NDF) at the same pixel position that it had for the first time slice. For any other system, no such shifts are applied, even if the base telescope position is changing through the observation. [TRACKING]
"(see KAPPA:SHOWQUAL). 
"is set TRUE.
For large data sets, it may sometimes be beneficial to break the output array up into a number of
smaller rectangular tiles, each created separately and stored in a separate output NDF. This can be
accomplished by supplying non-null values for the TILEDIMS parameter. If supplied, these values
give the nominal spatial size of each output tile, in pixels. Edge tiles may be thinner if the
TRIMTILES parameter is set TRUE. In order to avoid creating very thin tiles around the
edges, the actual tile size used for the edge tiles may be up to 10 % larger than the supplied
value. This creation of
" edge tiles may be prevented by supplying a negative value
for the tile size, in which case edge tiles will never be wider than the supplied absolute
If only one value is supplied, the supplied value is duplicated to create square tiles.
Tiles are created in a raster fashion, from bottom left to top right of the spatial
extent. The NDF file name specified by
" is modified for each tile by appending
to the end of it, where N
is the integer tile index (starting at 1). The number of tiles used to cover the entire output array is
written to output parameter NTILES. The tiles all share the same projection and so can be
simply pasted together in pixel coordinates to reconstruct the full size output array. The
tiles are centred so that the reference position (given by REFLON and REFLAT) falls at
the centre of a tile. If a tile receives no input data, then no corresponding output NDF
is created, but the tile is still included in the tile numbering scheme. If a null (!) value is
supplied for TILEDIMS, then the entire output array is created as a single tile and
stored in a single output NDF with the name given by parameter OUT (without any
If multiple masks are specified for a single model component, then the source areas of the individual
masks are combined together to form the total mask. For instance, if values are supplied for both
AST.ZERO_MASK and AST.ZERO_LOWHITS, then a pixel in the total mask will be considered to be a
" pixel if it is a source pixel in either the external mask specified by AST.ZERO_MASK, or in
" low hits
The iterative algorithm can be terminated prematurely by pressing control-C at any time. If this is done, the current iteration will complete and the user will then be asked how to continue. Options include: 1) abort immediately without an output map, 2) close retaining the current unfinalised output map, and 3) perform one more iteration to finalise the map and then close. Note, if control-C is pressed a second time, the application will abort immediately, potentially leaving files in an unclean state.
A FITS extension is added to the output NDF containing any keywords that are common to all input NDFs. To be included in the output FITS extension, a FITS keyword must be present in the NDF extension of every input NDF, and it must have the same value in all input NDFs. In addition, certain headers that relate to start and end events are propogated from the oldest and newest files respectively.
The output NDF will contain an extension named
" containing an NDF named
" , which contains the exposure time associated with each pixel.
The FITS keyword EXP_TIME is added to the output FITS extension. This header contains the median value of the EXP_TIME array (stored in the SMURF extension of the output NDF).If this value cannot be calculated for any reason, the corresponding FITS keyword is assigned a blank value.
If parameter TILEDIMS is assigned a value, FITS keywords NUMTILES and TILENUM are added to the output FITS header. These are the number of tiles used to hold the output data, and the index of the NDF containing the header, in the range 1 to NUMTILES, but if JSATILES is TRUE then FITS keyword TILENUM is also added but is instead used for the JSA tile number in the range 0 to 12 Nside 2 - 1.
The model configuration parameters can be sub-instrument dependent. For example, 850.flt.edgelow will copy the edgelow value into the flt section only for 850 micron data. Similarly for 450.flt.edgelow.
Default values can be read from the $SMURF_DIR/smurf_makemap.def file.