Uses least squares to fit a plane (excluding outlier pixels) to an image. It is used on the difference images generated using mDiff or mDiffExec.
mFitplane [-b border] [-d level] [-s statusfile] in.fits


-b border
Number of border pixels to ignore at edges of image.
-d level
Turns on debugging to the specified level (1-3).
Level only: don't fit a slope; just get a zero level.
-s statusfile
Output and errors are written to statusfile instead of stdout.


Input FITS file is a difference file between two other FITS files, as can be generated using mDiff.
The plane fit to the image is of the form:

fit = A*x + B*y + C
where x is the "horizontal" pixel offset from CRPIX1 in the FITS header and y is the "vertical" offset from CRPIX2. Since all reprojected images use the same reference pixel, this is a uniform definition for x,y for the whole image set.
The fitting is a simple least squares, with an iterative loop to exclude points more than 2 sigma (sigma defined as the rms from the previous loop).
The rms output is the value computed above. The xmin, ... ymax output correspond to the range of x,y values found while fitting. The rms is for information only but the xmin, ... ymax are used in the background fitting (mBgModel). crpix1 and crpix2 are the reference pixels for each axis, as determined from the FITS header.


$ mFitplane 2mass-atlas-990322n-j0640266.fits
[struct stat="OK", a=-8.9198e-11, b=-2.54173e-10, c=5.24277e-05, crpix1=808, crpix2=212.5, xmin=-808, xmax=167, ymin=-210.5, ymax=638.5, xcenter=-320.871, ycenter=213.014, npixel=314299, rms=0.393003, boxx=-320.92, boxy=212.424, boxwidth=835.421, boxheight=509.274, boxang=-29.5537]

Return Codes:

  • [struct stat="OK", a=A, b=B, c=C, crpix1=crpix1, crpix2=crpix2, xmin=xmin, xmax=xmax, ymin=ymin, ymax=ymax, xcenter=xcenter, ycenter=ycenter, npixel=npixel, rms=rms, boxx=boxx, boxy=boxy, boxwidth=boxwidth, boxheight=boxheight, boxang=boxang]
  • [struct stat="ERROR", msg="Usage: mFitplane [-b border] [-d level] [-s statusfile] in.fits"]
  • [struct stat="ERROR", msg="Argument to -b (string) cannot be interpreted as an integer"]
  • [struct stat="ERROR", msg="Cannot open status file: statusfile"]
  • [struct stat="ERROR", msg="Image file filename missing or invalid FITS"]
  • [struct stat="ERROR", status=n, msg="FITS library error"]
  • [struct stat="ERROR", msg="general error"]
  • [struct stat="WARNING", msg="Too few pixels to fit"]
  • [struct stat="WARNING", msg="Too few pixels for bounding box"]
  • [struct stat="WARNING", msg="Singular Matrix-1"]
  • [struct stat="WARNING", msg="Singular Matrix-2"]
  • [struct stat="WARNING", msg="allocation failure in ivector()"]