aboutsummaryrefslogtreecommitdiff
path: root/noao/twodspec/longslit/doc/fccoeffs
diff options
context:
space:
mode:
authorJoseph Hunkeler <jhunkeler@gmail.com>2015-07-08 20:46:52 -0400
committerJoseph Hunkeler <jhunkeler@gmail.com>2015-07-08 20:46:52 -0400
commitfa080de7afc95aa1c19a6e6fc0e0708ced2eadc4 (patch)
treebdda434976bc09c864f2e4fa6f16ba1952b1e555 /noao/twodspec/longslit/doc/fccoeffs
downloadiraf-linux-fa080de7afc95aa1c19a6e6fc0e0708ced2eadc4.tar.gz
Initial commit
Diffstat (limited to 'noao/twodspec/longslit/doc/fccoeffs')
-rw-r--r--noao/twodspec/longslit/doc/fccoeffs210
1 files changed, 210 insertions, 0 deletions
diff --git a/noao/twodspec/longslit/doc/fccoeffs b/noao/twodspec/longslit/doc/fccoeffs
new file mode 100644
index 00000000..ab8de92f
--- /dev/null
+++ b/noao/twodspec/longslit/doc/fccoeffs
@@ -0,0 +1,210 @@
+From davis Tue May 18 15:09:59 1993
+Received: by tucana.tuc.noao.edu (4.1/SAG.tucana.12)
+ id AA26431; Tue, 18 May 93 15:09:56 MST; for sites
+Date: Tue, 18 May 93 15:09:56 MST
+From: davis (Lindsey Davis)
+Message-Id: <9305182209.AA26431@tucana.tuc.noao.edu>
+To: belkine@mesiob.obspm.circe.fr
+Subject: RE: geomap
+Cc: sites
+
+
+
+Igor,
+
+ The following is a copy of a mail message I sent to another user who made
+the same request regarding geomap. I hope this is of use to you.
+
+
+ Lindsey Davis
+
+###############################################################################
+
+
+ Jeannette forwarded your request for a detailed description of the
+geomap output format to me. This format was originally intended to be
+for the internal use of geomap only, but the following should help you
+decode it.
+
+ 1. For simple linear geometric transformations you will see the
+following two entries in the fit record. Surface1 describes the linear
+portion of the fit; surface2 describes the residual distortion map
+which is always 0 for linear fits.
+
+ surface1 11
+ surface(xfit) surface(yfit) (surface type 1=cheb, 2=leg, 3=poly)
+ xxorder(xfit) yxorder(yfit) (always 2)
+ xyorder(xfit) yyorder(yfit) (always 2)
+ xxterms(xfit) yxterms(yfit) (always 0)
+ xmin(xfit) xmin(yfit) (geomap input or data)
+ xmax(xfit) xmax(yfit) (geomap input or data)
+ ymin(xfit) ymin(yfit) (geomap input or data)
+ ymax(xfit) ymax(yfit) (geomap input or data)
+ a d
+ b e
+ c f
+ surface2 0
+
+This above describes the following linear surfaces.
+
+ xfit = a + b * x + c * y (polynomial)
+ yfit = d + e * x + f * y
+
+ xfit = a + b * xnorm + c * ynorm (chebyshev)
+ yfit = d + e * xnorm + f * ynorm
+
+ xfit = a + b * xnorm + c * ynorm (legendre)
+ yfit = d + e * xnorm + f * ynorm
+
+ xnorm = (2 * x - (xmax + xmin)) / (xmax - xmin)
+ ynorm = (2 * y - (ymax + ymin)) / (ymax - ymin)
+
+Xnorm and ynorm are the input x and y values normalized between -1.0
+and 1.0.
+
+
+
+
+ 2. For a higher order fit, say xorder=4 yorder=4 and xterms=yes,
+the format is more complicated. The second surface is computed by fitting
+the higher order surface to the residuals of the first fit. The geomap
+output will look something like the following.
+
+ surface1 11
+ surface(xfit) surface(yfit) (surface type 1=cheb, 2=leg, 3=poly)
+ xxorder(xfit) yxorder(yfit) (always 2)
+ xyorder(xfit) yyorder(yfit) (always 2)
+ xxterms(xfit) yxterms(yfit) (always 0)
+ xmin(xfit) xmin(yfit) (geomap input or data)
+ xmax(xfit) xmax(yfit) (geomap input or data)
+ ymin(xfit) ymin(yfit) (geomap input or data)
+ ymax(xfit) ymax(yfit) (geomap input or data)
+ a d
+ b e
+ c f
+ surface2 24
+ surface(xfit) surface(yfit) (surface type 1=cheb, 2=leg, 3=poly)
+ xxorder(xfit) yxorder(yfit) (4)
+ xyorder(xfit) yyorder(yfit) (4)
+ xxterms(xfit) yxterms(yfit) (1 in this case)
+ xmin(xfit) xmin(yfit) (geomap input or data)
+ xmax(xfit) xmax(yfit) (geomap input or data)
+ ymin(xfit) ymin(yfit) (geomap input or data)
+ ymax(xfit) ymax(yfit) (geomap input or data)
+ C00(xfit) C00(yfit)
+ C10(xfit) C10(yfit)
+ C20(xfit) C20(yfit)
+ C30(xfit) C30(yfit)
+ C01(xfit) C01(yfit)
+ C11(xfit) C11(yfit)
+ C21(xfit) C21(yfit)
+ C31(xfit) C31(yfit)
+ C02(xfit) C02(yfit)
+ C12(xfit) C12(yfit)
+ C22(xfit) C22(yfit)
+ C32(xfit) C32(yfit)
+ C03(xfit) C03(yfit)
+ C13(xfit) C13(yfit)
+ C23(xfit) C23(yfit)
+ C33(xfit) C33(yfit)
+
+
+where the Cmn are the coefficients of the polynomials Pmn, and the Pmn
+are defined as follows
+
+ Pmn = x ** m * y ** n (polynomial)
+
+ Pmn = Pm(xnorm) * Pn(ynorm) (chebyshev)
+
+ P0(xnorm) = 1.0
+ P1(xnorm) = xnorm
+ Pm+1(xnorm) = 2.0 * xnorm * Pm(xnorm) - Pm-1(xnorm)
+ xnorm = (2 * x - (xmax + xmin)) / (xmax - xmin)
+
+ P0(ynorm) = 1.0
+ P1(ynorm) = ynorm
+ Pn+1(ynorm) = 2.0 * ynorm * Pn(ynorm) - Pn-1(ynorm)
+ ynorm = (2 * y - (ymax + ymin)) / (ymax - ymin)
+
+ Pmn = Pm(xnorm) * Pn(ynorm) (legendgre)
+
+ P0(xnorm) = 1.0
+ P1(xnorm) = xnorm
+ Pm+1(xnorm) = ((2m + 1) * xnorm * Pm(xnorm) - m * Pm-1(xnorm))/
+ (m + 1)
+ xnorm = (2 * x - (xmax + xmin)) / (xmax - xmin)
+
+ P0(ynorm) = 1.0
+ P1(ynorm) = ynorm
+ Pn+1(ynorm) = ((2n + 1) * ynorm * Pn(ynorm) - n * Pn-1(ynorm))/
+ (n + 1)
+ ynorm = (2 * y - (ymax + ymin)) / (ymax - ymin)
+
+
+Hopefully I have copied this all down correctly. The main points to remember
+is that the mangitudes of the coefficients reflect both the function type
+(polynomial, chebyshev, or legendre) and the normalization (xmin, xmax,
+ymin, ymax).
+
+ Hope this helps you out and write back if you have more questions.
+
+ Lindsey Davis
+
+=======================================
+
+# <Date>
+begin <name>
+ task fitcoords
+ axis 1 # Axis of fitted value
+ surface 24 # The number of following parameters/coefficients
+ surface # surface type 1=chebyshev, 2=legendre
+ xorder # X order
+ yorder # Y order
+ xterms # Cross terms? 0=no, 1=yes (always 1 for fitcoords)
+ xmin # Minimum x value in fit - usually 1
+ xmax # Maximum x value in fit - usually image dimension
+ ymin # Minimum y value in fit - usually 1
+ ymax # Maximum y value in fit - usually image dimension
+ C00 # Coefficients (shown for xorder=4 and yorder=4)
+ C10
+ C20
+ C30
+ C01
+ C11
+ C21
+ C31
+ C02
+ C12
+ C22
+ C32
+ C03
+ C13
+ C23
+ C33
+
+
+The fit is a sum of the form:
+
+ fit = sum(m=0 to xorder-1) sum(n=0 to yorder-1) {Cmn*Pm(x')*Pn(y')}
+
+where the cross-terms may or may not be included depending on the xterms
+parameter. Cross-terms are always used in FITCOORDS.
+
+The coefficients are defined in terms of normalized independent variables
+in the range -1 to 1. If x and y are actual values then the normalized
+variables, x' and y', are defined using the data range parameters as:
+
+ x' = (2 * x - (xmax + xmin)) / (xmax - xmin)
+ y' = (2 * y - (ymax + ymin)) / (ymax - ymin)
+
+The Pi(z), where z is either x' or y', are defined iteratively as follows:
+
+ # Chebyshev
+ P0(z) = 1.0
+ P1(z) = z
+ Pi+1(z) = 2.0 * z * Pi(z) - Pi-1(z)
+
+ # Legendre
+ P0(z) = 1.0
+ P1(z) = z
+ Pi+1(z) = ((2i + 1) * z * Pi(z) - i * Pi-1(z)) / (i + 1)