This is a short update on new software to help determine shifts
between images.  The basic software is described in the paper
that Max Mutchler and I wrote on the Dither II package.  In
the past couple of month, Richard Hook and I have updated
the programs in that package to more automatically handle rotations
between images.  We have also written a C program that uses the
positional information from the jitter files to derive offsets
and rotations.

1) Out with the old, in with the new (and hopefully not buggy)

   There is a new version of the dither package, called xdither
in /data/electra4/xdither. To use it, set

cl> reset xdither=/data/electra4/xdither/
cl> task xdither=xdither$xdither.cl

Again, the task names here are the same as in the dither
package.  However, the programs have been updated
to better handle rotation (sorry about the split
inifinitive, Harry).    The programs maintain
and pass information through the image headers, and
unfortunately Richard and I could not get the hedit
command to work in a consistent fashion.  Therefore,
you may occasionally see complaints even when the
programs are working properly.  Hopefully, Ivo will
solve this problem.

The first difference you will see when handling rotated
data is that you will need to provide the tasks "offsets" 
or "crossdriz" with the rotation value.  In the case
of offsets you would write a line something like

cdriz.rot=0.25;offsets image2_obj image1_obj cor2x1

In the case of crossdriz you need to set both mintheta
and maxtheta to the rotation angle.

You would then run shiftind as in Dither II.  When
it comes time to run avshift, if angle=INDEF, then
avshift knows to look into the header of the file
to find the rotation angle.

Here is the new snazzy format of avshift  -- you
will need a wide screen to read this:


#Rotation angles read from table
#
# Image      Group   xsh_in   ysh_in best_xsh  best_ysh tot_sh_in  del_xsh   del_ysh   rot  exptime
NGC_36to38.hhh   1   -231.324  -20.046   16.395    1.225   16.441 -247.719   -21.270  0.180  1700.00
NGC_36to38.hhh   2     -1.028   -6.905   -1.058   -6.903    6.983    0.030    -0.003  0.180  1700.00
NGC_36to38.hhh   3     -9.084    1.136   -9.114    1.075    9.177    0.029     0.061  0.180  1700.00
NGC_36to38.hhh   4     -1.142    9.144   -1.111    9.117    9.184   -0.031     0.027  0.180  1700.00
# Weights: 0. 1. 1. 1.
# RMS error (all chips on WF scale)):  56.8723
# RMS error (WF only):     0.0491
# weighted RMS error (all chips on WF scale)):   0.0491
# weighted RMS error (WF only):     0.0491
#
# Image      Group   xsh_in   ysh_in best_xsh  best_ysh tot_sh_in  del_xsh   del_ysh   rot  exptime
NGC_46to48.hhh   1   -159.176  111.434   95.025    6.577   95.252 -254.201   104.857  0.920  5700.00
NGC_46to48.hhh   2     -5.251  -40.473   -5.233  -40.471   40.808   -0.018    -0.002  0.920  5700.00
NGC_46to48.hhh   3    -51.729    5.175  -51.772    5.278   52.041    0.043    -0.103  0.920  5700.00
NGC_46to48.hhh   4     -5.763   51.756   -5.848   51.715   52.045    0.085     0.041  0.920  5700.00
# Weights: 0. 1. 1. 1.
# RMS error (all chips on WF scale)):  62.8991
# RMS error (WF only):     0.0848
# weighted RMS error (all chips on WF scale)):   0.0848
# weighted RMS error (WF only):     0.0848
#
# Image      Group   xsh_in   ysh_in best_xsh  best_ysh tot_sh_in  del_xsh   del_ysh   rot  exptime
NGC_70to74.hhh   1    -98.595  -43.666  108.652    7.286  108.896 -207.247   -50.952  1.100  7800.00
NGC_70to74.hhh   2     -6.429  -46.170   -6.547  -46.137   46.599    0.118    -0.033  1.100  7800.00
NGC_70to74.hhh   3    -59.555    6.700  -59.647    6.567   60.008    0.092     0.132  1.100  7800.00
NGC_70to74.hhh   4     -6.770   59.613   -6.756   59.555   59.937   -0.014     0.058  1.100  7800.00
# Weights: 0. 1. 1. 1.
# RMS error (all chips on WF scale)):  48.8179
# RMS error (WF only):     0.1219
# weighted RMS error (all chips on WF scale)):   0.1219
# weighted RMS error (WF only):     0.1219

The image name on the left is the name of the image input to
precor.  In this case, I was averaging together several images
taken at a single dither to get a first estimate of shifts.
I have another program for doing delta shifts in a xditherII,
but that is for another time (I am not really sure how
helpful it is).

Note that because you get the original image name, the group,
the shifts and the exposure time it is easy to write an
awk script that will either drizzle the input image
or blot a median image to be compared to the original image.

Here is an awk script for blotting a median image of the form g2_medz,
g3_medz etc (I ran Mark D. zap program on the median image to remove
the few remaining bad pixels)

{printf ("blot g%1d_medz group%1d/%s_bl xsh=%f ysh=%f rot=%f expout=%f\n",$2,$2,$1,$3,$5,$7,$8)}


Now, if you don't even what to do cross-correlation (or can't,
because you are working in F300W and you really have an
image of cosmic rays, not stars) you can use the jitter file,
and a new program called "bearing", which I am also moving
into the xdither directory, though you must run it from outside
of iraf for now.  To run the program you use the form

bearing wf2 <file.list

where wf2, could instead be pc1,wf3,wf4,nic1,nic2,nic3,or stis.
Only wf2-4 and nic3 have been checked against data, however.
file.list is created by running in iraf:

hselect *jif.fits[1] $I,ra_avg,dec_avg,roll_avg > file.list

The output will look something like:

NGC01 166.410256 72.663876 321.909525 
NGC02 166.410203 72.663870 321.907356 
NGC03 166.411149 72.664146 322.090419 
NGC04 166.411145 72.664145 322.090239 
NGC05 166.409051 72.663599 321.725027 
NGC06 166.409045 72.663599 321.724907 
NGC07 166.413043 72.664692 322.456165 
NGC08 166.413044 72.664693 322.456286 
NGC09 166.411968 72.664431 322.279483 
NGC10 166.411969 72.664431 322.279537 

running bearing on this file produces:

bearing nic3 < jifn.list
# Setting origin using NGC01
 NGC01 7 xsh=0.000000 ysh=0.000000 rot=0.000000 
 NGC02 7 xsh=0.138248 ysh=0.264977 rot=-0.002169 
 NGC03 7 xsh=-5.309591 ysh=-4.087475 rot=0.180894 
 NGC04 7 xsh=-5.289544 ysh=-4.068604 rot=0.180714 
 NGC05 7 xsh=5.626143 ysh=5.709251 rot=-0.184498 
 NGC06 7 xsh=5.629877 ysh=5.740714 rot=-0.184618 
 NGC07 7 xsh=-16.101519 ysh=-12.816077 rot=0.546640 
 NGC08 7 xsh=-16.119695 ysh=-12.819213 rot=0.546761 
 NGC09 7 xsh=-10.837432 ysh=-7.753858 rot=0.369958 
 NGC10 7 xsh=-10.838049 ysh=-7.759089 rot=0.370012

The shifts are pretty good.  On our NGC3516
data we got nic3 and WF shifts to a fraction
of a pixel.  The WF shifts appeared to be
better than the nic chips by about a factor
of two in absolute terms, but comparable in
relative terms (~0.2 pixel r.m.s.).  

