[fitswcs] Re: Paper III Pence remarks

Eric Greisen egreisen at nrao.edu
Fri Sep 26 19:43:51 EDT 2003


Thanks for the comments and the plan to examine the issue at ADASS.
Mark will be there and will fill you in on the current state of
WCSLIB.  Some of the concepts (at least) have been fully tested there
already.

 >  1 As a convenience to the reader it would be helpful to include the
 >  definitions of V, Z and z when these important terms are first introduced
 >  in the 2nd paragraph of Section 2.  Otherwise, it takes a while to find 
 >  the definitions in Table 4.

          Done

 >  2 Figure 1:  it might be of interest to provide an enlarged plot covering
 >  the range V/c < 0.1 to show how Z, and V differ from v at relatively small
 >  velocities.

          The non-linearities over this range are not interesting - I
          attach a PS file at the end of this reply which plots (V-v)
          and (Z-v) versus v for the full -1,1 range.  Even that is
          not too interesting...

 >  3 In section 3.2, the need to always have a factor of ln(10) in the CDELTka
 >  keyword values seems like an unfortunate complication.  The explanation of
 >  why natural logarithms are preferred to base 10 logs seems reasonable, but
 >  is there no way to allow base 10 logs to be used?

          I think we will complicate things too much to have a log10
          form and will loose the derivative is 1 at the Ref pixel.
          The paragraph telling folks how to adjust their CRVALn and
          CDELTn should suffice.

 >  4 It would be useful to explain the distinction between the CNAMEia keyword
 >  introduced in section 3.2 and the WCSNAMEa keyword defined in Paper I.  Some
 >  users might get them confused.

          Done

 >  5 The first paragraph of section 3.3 says that the algorithm code is given
 >  as 'X2S', but later on in the 6th paragraph it states that the 3rd character
 >  defines 'P' and not 'S'.  I found this to be confusing.  Also, in the last
 >  sentence of that 6th paragraph it would be helpful to state exactly which
 >  equation in Table 4 you are referring to.

          The X2S sentence was in error and has been deleted.

 >  
 >  6 In the last paragraph of Section 4, it would be more proper to say that
 >  Eq. 45 would be obtained from Eqs. (19), (7), and (66), not (19), (11), and
 >  (66).

          Done - we are impressed with your close reading.

 >  7 There's a typo in the second paragraph of section 5.1: "... assumes that
 >  the all the dispersion ...".

          Done

 >  8 Section 5.2 says that "small adjustments to some of the parameters" were
 >  made to get the best fits that are shown in the figures.  Can you offer any
 >  practical tips for the reader on which parameters you held fixed and which
 >  you allowed to vary to get the best fit?

          Pending we need Frank's input on this.

 >  9 Is it necessary to state in section 5.2 that leading white space as been
 >  removed in the keyword examples?  That white space is optional for
 >  free-format keyword values, so the keyword records are valid as shown.  Some
 >  readers might get the mistaken impression that the leading white space is
 >  required.

          Remark is dropped - you are right of course.

 >  10 In the first sentence of Section 6.1, why does it refer to
 >  "sub-matrices" and not just "matrices".

          I do not remember why we said that - perhaps some axes are
          -TAB and others normal...  The phrase is dropped.

 >  11 In the first paragraph of Section 6.1 it would probably be better to not
 >  use 'TIME' as an example type of coordinate because a WCS for TIME has not
 >  yet been developed, and it raises a number of implementation questions.

          Actually I like TIME here since the multiple exposure
          example was mentioned above.  I am certain that there will
          be a TIME axis and the original FITS paper certainly had
          one.that is not superseded as yet.  I wanted to mention the
          main examples in this phrase to match the previous
          discussion and not to include the RA-- that follows.

 >  12 If the table lookup coordinate vector has more than one axis, then it
 >  presumably should be stated that the dimensions must be given by the TDIMn
 >  keyword.  (This raises an interesting issue because the TDIMn keyword is
 >  only defined in an unofficial appendix in the FITS Standard.  There is
 >  currently a pending motion before the FITS committees to make the TDIMn
 >  keyword official, however).

          Done including your remarks as a footnote.

 >  13 In the discussion of the case of N non-separable axes in Section 6, I'm a
 >  little confused as to how to linearly interpolate the N+1 coordinate vector
 >  if N > 1.  Is more explanation needed to state how to do this, or is it
 >  really trivial?

          Linear interpolation was intended and that is then trivial
          since the axes are separable.
 >  
 >  14 In Section 6, the sentence beginning with "The dimension of this array
 >  must be given in the header ..." has a syntax problem.

          Adding TDIMn certainly made the syntax doggy - changed.

 >  15 the last sentence of Section 6.1.1 should read "... keywords iPVn_1 and
 >  iPVn_2 ...".

          Done.

 >  16 In Section 6.2.1 in the STIS example, I'd suggest adding a sentence for
 >  clarity to the effect that "The 1PSi_0 keywords are not present, signifying
 >  that the coordinate lookup vector column is in the same table as the
 >  spectra."

          Done

 >  17 In Table 12, in the definition of VSOURCE and ZSOURCE, should 'SOUR' be
 >  changed to  'SOURCE'?

          Done

 >  18 I had difficulty following the next to last paragraph in Section 7.
 >  Maybe giving an example would help.

          I doubt it.  I changed the wording.

 >  19 In section 8.1, what should a FITS reader assume if, for example, the
 >  OBSGEO-X and OBSGXn keywords are both present?  Should OBSGNn apply to
 >  column n, and OBSGEO-X apply to the other columns that don't have an
 >  individual OBSGNn keyword?

          Done.

 >  20 In Table 14, the BLOCKED keyword should be removed because it is now
 >  deprecated.

          Done

 >  21 There is no mention of instrumental spectral line broadening due to
 >  scattering or other effects.  The observed flux at a particular wavelength
 >  is a convolution of the incident flux over a broader wavelength range. 
 >  Should keywords be reserved to describe the apparent width and/or line
 >  profile that would be observed for an idealized monochromatic source?

          Why do you even bring this up?  We are not measuring
          spectral line shapes, widths, fluxes, etc.  We are stating
          the frequency of each pixel in the image or table cell.
          This is spectroscopic science which has nada to do with Paper
          III.
 >  
 >  22 Should keywords be reserved to describe the expected accuracy of the
 >  spectral fit parameters (either for each individual parameter, or for
 >  the combined final calculated value).  You might need 2 parameters: 1 
 >  for the random statistical error, and 1 for the estimated  systematic error.

           There are keywords (CRDERia and CSYERia) defined in Paper I
           to describe the accuracy of coordinate values.  The issue
           is probably very much more complicated than simple pairs of
           keywords.  A full covariance matrix or more is probably
           needed and we do not want to get stuck in that mess.
 >  
 >  23 Would it be possible to add a section at the end of the paper that
 >  summarizes the known types of spectroscopic data that cannot be described
 >  using the conventions in Paper III?  There is some mention of these
 >  scattered throughout the paper.  Presumably this would include: various
 >  types of interferometric data (Fabry-Perot, Michelson), high energy spectral
 >  data obtained with pulse-height analyzers or calorimeters, data from
 >  spectrographs that have more than 1 disperser, objective prism data, and
 >  what else?

             There is a section (9) that talks about a couple of these
             cases.  I do not see that it is our job to list all the
             instruments for which Papers I, II, and III have
             difficulty describing the raw data.  The Fabry-Perot and
             Michelson and > 1 disperser will be handled by methods of
             Paper IV.  The objective prisms, multi-slits, fiber-feds,
             etc all need humans to turn a 2-dim image with 3
             dimensions of data all mixed up into something
             meaningful.  Usually that is a table and we should be
             able to describe the spectra in the table.  I do not know
             about the high-energy devices and have probably
             mis-stated some things about the optical devices as well.

Thanks for the comments.  The latest version with the above in it is
now pointed at by my web page.  It has an addition to the -TAB and a
few other internally generated fixes.  All new text is in red (except
deleted text is invisible).

         http://www.aoc.nrao.edu/~egreisen

Eric Greisen

-------------  cut here -----------------------------------
%!PS-Adobe-2.0 EPSF-2.0
%%BoundingBox: 0 0 686 361
%%Creator: Eric Greisen
%%CreationDate: Sun 1993/01/19
%%Title: PlotProjDif.ps
%%Pages: 1 1
%%DocumentFonts: Courier
%%EndComments

%%BeginProcSet: graphics.pro
   /TextFont /Courier-Bold findfont 17 scalefont def

% Constants.
   /cm2pts 72 2.54 div def
   /ws 0.4 def
   /nstr 10 string def

% Radius of the generating sphere.
   /r0 2 cm2pts mul def
   /eps r0 8 div def

% Basic functions
   /abs {
      dup 0 lt {neg} if
      } def

  /prt-n {
      dup abs 0.001 lt {pop 0} if
      nstr cvs show
      } def

/ytick {
   scx Mx mul exch scy mul moveto
   -2 scx mul Mx mul 0 rlineto
  -9 mul 18 sub -5 rmoveto
  show
  } def

/xtick {
  scx mul My scy mul moveto
  0 -2 My mul scy mul rlineto
   -25 -17 rmoveto
  show
  } def

/pOPT {
  SGN beta mul scx mul
  1 SGN beta mul add 1 SGN beta mul sub div sqrt 1 sub
  SGN beta mul sub scy mul lineto
  } def
/sOPT {
  SGN beta mul scx mul
  SGN beta mul 1 add SGN beta mul mul 2 div 1 add SGN beta mul mul
  SGN beta mul sub scy mul lineto
  } def

/pRAD {
  SGN beta mul scx mul
  1 1 SGN beta mul sub 1 SGN beta mul add div sqrt sub
  SGN beta mul sub scy mul lineto
  } def
/sRAD {
  SGN beta mul scx mul
  SGN beta mul 1 sub SGN beta mul mul 2 div 1 add SGN beta mul mul
  SGN beta mul sub scy mul lineto
  } def

/DoPlot {
   /beta 0 def
   0 0 moveto
   100 {
      /beta beta 0.001 add def
      SmallV
      } repeat
   Npoint {
      /beta beta 0.001 add def
      LargeV
      } repeat
   } def

%%EndProcSet

%%EndProlog

userdict /start-hook known {start-hook} if


/vmsave save def
TextFont setfont
2 setlinecap

/My 0.011 def
/Mx 0.11 def
/My 0.16 def
/Mx 1.00 def
/scx 300 def
/scy 1000 def

ws 5 mul setlinewidth
384 199 translate
 Mx neg scx mul My neg scy mul moveto
 0  2 My mul scy mul rlineto
 2 scx mul Mx mul 0 rlineto
 0 -2 My mul scy mul rlineto
 -2 scx mul Mx mul 0 rlineto
stroke
ws 3 mul setlinewidth
 Mx neg scx mul 0 moveto
 2 Mx mul scx mul 0 rlineto
 scx neg Mx mul My neg scy mul rmoveto
 0 2 My mul scy mul rlineto
stroke

ws 1 mul setlinewidth
(0.0)  2   0.0 ytick
(0.05)  3   0.05 ytick
(-0.05) 4  -0.05 ytick
(0.10)  3   0.1 ytick
(-0.10) 4  -0.1 ytick
(0.15)  3   0.15 ytick
(-0.15) 4  -0.15 ytick
stroke
(-0.5)   -0.5 xtick
( 0.0)    0.0 xtick
( 0.5)    0.5 xtick
stroke

0.6 scx mul 0.06 scy mul moveto
 (receding) show
 -0.9 scx mul -0.08 scy mul moveto
(approaching) show
stroke

/TextFont /Times-BoldItalic findfont 24 scalefont def
/TextFont /Courier-BoldOblique findfont 24 scalefont def
TextFont setfont

-0.1 scx mul -0.09 scy mul moveto
 (radio) show
 -0.2 scx mul 0.07 scy mul moveto
(optical) show
stroke

ws 3.5 mul setlinewidth


/SGN 1 def
/Npoint 900 def
/LargeV {pRAD} def
/SmallV {sRAD} def
DoPlot
stroke

/Npoint 335 def
/LargeV {pOPT} def
/SmallV {sOPT} def
DoPlot
stroke

/SGN -1 def
/Npoint 335 def
/LargeV {pRAD} def
/SmallV {sRAD} def
DoPlot
stroke

/Npoint 900 def
/LargeV {pOPT} def
/SmallV {sOPT} def
DoPlot
stroke

  -32 My neg scy mul 35 sub moveto
 (v / c) show
 stroke

%/TextFont /Times-Roman findfont 20 scalefont def
%TextFont setfont

 -66 Mx scx mul sub -149 moveto
 90 rotate
 (\("velocity" - v\) / c) show
 -90 rotate
 stroke

vmsave restore
showpage


%%Trailer
userdict /end-hook known {end-hook} if
%%EOF

%%EndDocument




More information about the fitswcs mailing list