mscimage

The IRAF task mscimage does an interpolation of the image so that the resulting image has been geometricaly transformed to a tangent-plane projection with constant plate scale.

In order to preserve the noise characteristics of the transformed frame, we use the very nice but slow "sinc" function. By default, this uses a 31 x 31 wide 2D sinc interpolant. We experimented with a 17 x 17 one, but were not as pleased with the results. The sinc interpolation gives good results, but is highly time consuming. On our Ultra-60 SUN workstation with a 360Mhz CPU it takes 33 minutes to transform each image. Dreadful things will happen with bad columns and bleed trails, which is why we were so careful to first interpolate across them in ccdproc. For the output bad pixel masks we use a simple linear interpolation; this actually provides a better match to the resulting image.


ms> lpar mscimage
        input = "@all"          List of input mosaic exposures
       output = "f//@all"       List of output images
      (format = "image")        Output format (image|mef)
     (pixmask = yes)            Create pixel mask?
     (verbose = yes)            Verbose output?\n\n# Output WCS parameters
   (wcssource = "parameters")   Output WCS source (image|parameters)
   (reference = "")             Reference image
          (ra = INDEF)          RA of tangent point (hours)
         (dec = INDEF)          DEC of tangent point (degrees)
       (scale = 0.27)           Scale (arcsec/pixel)
    (rotation = 0.)             Rotation of DEC from N to E (degrees)\n\n# Resa
       (blank = 0.)             Blank value
 (interpolant = "sinc")         Interpolant for data
(minterpolant = "linear")       Interpolant for mask
    (boundary = "reflect")      Boundary extension
    (constant = 0.)             Constant boundary extension value
(fluxconserve = no)             Preserve flux per unit area?
       (ntrim = 8)              Edge trim in each extension
     (nxblock = INDEF)          X dimension of working block size in pixels
     (nyblock = INDEF)          Y dimension of working block size in pixels\n\n
 (interactive = no)             Fit mapping interactively?
          (nx = 10)             Number of x grid points
          (ny = 20)             Number of y grid points
 (fitgeometry = "general")      Fitting geometry
     (xxorder = 4)              Order of x fit in x
     (xyorder = 4)              Order of x fit in y
     (xxterms = "half")         X fit cross terms type
     (yxorder = 4)              Order of y fit in x
     (yyorder = 4)              Order of y fit in y
     (yxterms = "half")         Y fit cross terms type\n\n
       (fd_in = "")             
      (fd_ext = "")             
    (fd_coord = "")             
        (mode = "ql")           


Note that we have chosen to transform all of our images to a common plate scale (0.27"/pixel) and orientation (N up). The choice of the tangent point RA and DEC is a little tricky. If left to INDEF it will simply take the RA and DEC from the first image (actually the values of telra and teldec) and apply that to ALL of the images---a real bad choice if you have fed it a list of standard stars. So, how we proceed is as follows.

For the program fields we adopt the following tangent points for each galaxy:


Pegasus       23:28:36.2 +14:44:35
WLM           00:01:57.9 -15:27:51
IC10          00:20:24.5 +59:17:30
M31[all 10]   00:43:18.8 +41:19:46
IC 1613       01:04:46.2 +02:07:04
M33[all 3]    01:33:50.9 +30:39:37
Phoenix       01:51:06.3 -44:26:41
Sextans A     10:11:00.8 -04:41:34
Sextans B     10:00:00.1 +05:19:56
NGC 6822      19:44:56.1 -14:48:05

We would thus do something like:
files obj*.fits > all
mscimage @all f//@all ra=23:28:36.2 dec=14:44:35 scale=0.27 rot=0.0

in order to transfer any images of the Pegasus dwarf.

For the standard stars, we have to do something tricky if they are to all be processed together. We first dump the image names into a file:
files obj*.fits > allstnds
and we then use a little script to process them one by one, so that the ra and dec are gathered frome each image's header:


	procedure mscstands (input)
	string input {prompt="List of images to be mscimaged"}
	begin

	string inlist, s1, s2
#Get parameter
	inlist=input
	list=inlist
#Loop through the images:
	while (fscan(list,s1) !=EOF) {
#Create output name
	s2="f"//s1
	mscimage(s1,s2,ra=INDEF,dec=INDEF,scale=0.27,rot=0.0)
}
end