aboutsummaryrefslogtreecommitdiff
path: root/noao/onedspec/doc/identify.hlp
blob: fea7086c33ea8f733c463f6fb7ae35abbbc5e56d (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
.help identify Jan96 noao.onedspec
.ih
NAME
identify -- Identify features in one dimensional image vectors
.ih
SUMMARY
Features are interactively marked in one dimensional image vectors.
The features may be spectral lines when the vector is a spectrum
or profile positions when the vector is a spatial cut.  A function
may be fit to the user coordinates as a function of pixel coordinates.
This is primarily used to find dispersion functions for spectra
such as arc-line calibration spectra.  The profile position measurements
are generally used for geometric calibrations.
.ih
USAGE
identify images
.ih
PARAMETERS
.ls images
List of images in which to identify features and fit coordinate functions.
.le
.ls section = "middle line"
If an image is not one dimensional or specified as a one dimensional image
section then the image section given by this parameter is used.  The
section defines a one dimensional vector.  The image is still considered to
be two or three dimensional.  It is possible to change the data vector
within the program.

The section parameter may be specified directly as an image section or
in one of the following forms

.nf
line|column|x|y|z first|middle|last|# [first|middle|last|#]]
first|middle|last|# [first|middle|last|#] line|column|x|y|z
.fi

where each field can be one of the strings separated by | except for #
which is an integer number.  The field in [] is a second designator
which is used with three dimensional data.  See the example section for
examples of this syntax.  Abbreviations are allowed though beware that 'l'
is not a sufficient abbreviation.
.le
.ls database = "database"
Database in which the feature data and coordinate functions are recorded.
.le
.ls coordlist = "linelists$idhenear.dat"
User coordinate list consisting of an list of line coordinates.  A
comment line of the form "# units <units>", where <units> is one of the
understood units names, defines the units of the line list.  If no units
are specified then Angstroms are assumed.  Some standard line lists are
available in the directory "linelists$".  The standard line lists are
described under the topic \fIlinelists\fR.
.le
.ls units = ""
The units to use if no database entry exists.  The units are specified as
described in

.nf
    cl> help onedspec.package section=units
.fi

If no units are specified and a coordinate list is used then the units of
the coordinate list are selected.  If a database entry exists then the
units defined there override both this parameter and the coordinate list.
.le
.ls nsum = "10"
Number of lines, columns, or bands across the designated vector axis to be
summed when the image is a two or three dimensional spatial spectrum.
It does not apply to multispec format spectra.  If the image is three
dimensional an optional second number can be specified for the higher
dimensional axis  (the first number applies to the lower axis number and
the second to the higher axis number).  If a second number is not specified
the first number is used for both axes.
.le
.ls match = -3.
The maximum difference for a match between the feature coordinate function
value and a coordinate in the coordinate list.  Positive values
are in user coordinate units and negative values are in units of pixels.
.le
.ls maxfeatures = 50
Maximum number of the strongest features to be selected automatically from
the coordinate list (function 'l') or from the image data (function 'y').
.le
.ls zwidth = 100.
Width of graphs, in user coordinates, when in zoom mode (function 'z').
.le

The following parameters are used in determining feature positions.
.ls ftype = "emission"
Type of features to be identified.  The possibly abbreviated choices are
"emission" and "absorption".
.le
.ls fwidth = 4.
Full-width at the base (in pixels) of features to be identified.
.le
.ls cradius = 5.
The maximum distance, in pixels, allowed between a feature position
and the initial estimate when defining a new feature.
.le
.ls threshold = 0.
In order for a feature center to be determined the range of pixel intensities
around the feature must exceed this threshold.
.le
.ls minsep = 2.
The minimum separation, in pixels, allowed between feature positions
when defining a new feature.
.le

The following parameters are used to fit a function to the user coordinates.
The \fBicfit\fR package is used and further descriptions about these parameters
may be found under that package.
.ls function = "spline3"
The function to be fit to the user coordinates as a function of the pixel
coordinate.  The choices are "chebyshev", "legendre", "spline1", or "spline3".
.le
.ls order = 1
Order of the fitting function.  The order is the number of polynomial terms
or number of spline pieces.
.le
.ls sample = "*"
Sample regions for fitting. This is in pixel coordinates and not the user
coordinates.
.le
.ls niterate = 0
Number of rejection iterations.
.le
.ls low_reject = 3.0, high_reject = 3.0
Lower and upper residual rejection in terms of the RMS of the fit.
.le
.ls grow = 0
Distance from a rejected point in which additional points are automatically
rejected regardless of their residuals.
.le

The following parameters control the input and output.
.ls autowrite = no
Automatically write or update the database?  If "no" then when exiting the
program a query is given if the feature data and fit have been modified.
The query is answered with "yes" or "no" to save or not save the results.
If \fIautowrite\fR is "yes" exiting the program automatically updates the
database.
.le
.ls graphics = "stdgraph"
Graphics device.  The default is the standard graphics device which is
generally a graphics terminal.
.le
.ls cursor = ""
Cursor input file.  If a cursor file is not given then the standard graphics
cursor is read.
.le

The following parameters are queried when the 'b' key is used.
.ls crval, cdelt
These parameters specify an approximate coordinate value and coordinate
interval per pixel when the automatic line identification
algorithm ('b' key) is used.  The coordinate value is for the
pixel specified by the \fIcrpix\fR parameter in the \fBaidpars\fR
parameter set.  The default value of \fIcrpix\fR is INDEF which then
refers the coordinate value to the middle of the spectrum.  By default
only the magnitude of the coordinate interval is used.  Either value
may be given as INDEF.  In this case the search for a solution will
be slower and more likely to fail.  The values may also be given as
keywords in the image header whose values are to be used.
.le
.ls aidpars = "" (parameter set)
This parameter points to a parameter set for the automatic line
identification algorithm.  See \fIaidpars\fR for further information.
.le
.ih
CURSOR KEYS
.ls ?
Clear the screen and print a menu of options.
.le
.ls a
Apply next (c)enter or (d)elete operation to (a)ll features
.le
.ls b
Identify features and find a dispersion function automatically using
the coordinate line list and approximate values for the dispersion.
.le
.ls c
(C)enter the feature nearest the cursor.  Used when changing the position
finding parameters or when features are defined from a previous feature list.
.le
.ls d
(D)elete the feature nearest the cursor.  (D)elete all features when preceded
by the (a)ll key.  This does not affect the dispersion function.
.le
.ls e
Find features from a coordinate list without doing any fitting.  This is
like the 'l' key without any fitting.
.le
.ls f
(F)it a function of the pixel coordinates to the user coordinates.  This enters
the interactive function fitting package.
.le
.ls g
Fit a zero point shift to the user coordinates by minimizing the difference
between the user and fitted coordinates.  The coordinate function is
not changed.
.le
.ls i
(I)nitialize (delete features and coordinate fit).
.le
.ls j
Go to the preceding line, column, or band in a 2D/3D or multispec image.
.le
.ls k
Go to the next line, column, or band in a 2D/3D or multispec image.
.le
.ls l
(L)ocate features in the coordinate list.  A coordinate function must be
defined or at least two features must have user coordinates from which a
coordinate function can be determined.  If there are features an
initial fit is done, then features are added from the coordinate list,
and then a final fit is done.
.le
.ls m
(M)ark a new feature using the cursor position as the initial position
estimate.
.le
.ls n
Move the cursor or zoom window to the (n)ext feature (same as +).
.le
.ls o
Go to the specified line, column, or band in a 2D/3D or multispec image.
For 3D images two numbers are specified.
.le
.ls p
(P)an to the original window after (z)ooming on a feature.
.le
.ls q
(Q)uit and continue with next image.
.le
.ls r
(R)edraw the graph.
.le
.ls s
(S)hift the fit coordinates relative to the pixel coordinates.  The
user specifies the desired fit coordinate at the position of the cursor
and a zero point shift to the fit coordinates is applied.  If features
are defined then they are recentered and the shift is the average shift.
The shift in pixels, user coordinates, and z (fractional shift) is printed.
.le
.ls t
Reset the current feature to the position of the cursor.  The feature
is \fInot\fR recentered.  This is used to mark an arbitrary position.
.le
.ls u
Enter a new (u)ser coordinate for the current feature.
When (m)arking a new feature the user coordinate is also requested.
.le
.ls v
Modify the fitting weight of the current feature.  The weights are
integers with the lowest weight being the default of 1.
.le
.ls w
(W)indow the graph.  A window prompt is given and a number of windowing
options may be given.  For more help type '?' to the window prompt or
see help under \fIgtools\fR.
.le
.ls x
Find a zero point shift for the current dispersion function.  This is used
by starting with the dispersion solution and features from a different
spectrum.  The mean shift in user coordinates, mean shift in pixels, and
the fractional shift in user coordinates is printed.
.le
.ls y
Up to \fImaxfeatures\fR emission peaks are found automatically (in order of
peak intensity) and, if a dispersion solution is defined, the peaks are
identified from the coordinate list.
.le
.ls z
(Z)oom on the feature nearest the cursor.  The width of the zoom window
is determined by the parameter \fIzwidth\fR.
.le
.ls .
Move the cursor or zoom window to the feature nearest the cursor.
.le
.ls 4 +
Move the cursor or zoom window to the (n)ext feature.
.le
.ls 4 -
Move the cursor or zoom window to the previous feature.
.le

Parameters are shown or set with the following "colon commands", which may be
abbreviated.  To show the value of a parameter type the parameter name alone
and to set a new value follow the parameter name by the value.
.ls :show file
Show the values of all the parameters.  If a file name is given then the
output is appended to that file.  If no file is given then the terminal
is cleared and the output is sent to the terminal.
.le
.ls :features file
Print the feature list and the fit rms.  If a file name is given then the
output is appended to that file.  If no file is given then the terminal
is cleared and the output is sent to the terminal.
.le
.ls :coordlist file
Set or show the coordinate list file.
.le
.ls :cradius value
Set or show the centering radius in pixels.
.le
.ls :threshold value
Set or show the detection threshold for centering.
.le
.ls :database name
Set or show the database for recording feature records.
.le
.ls :ftype value
Set or show the feature type (emission or absorption).
.le
.ls :fwidth value
Set or show the feature width in pixels.
.le
.ls :image imagename
Set a new image or show the current image.
.le
.ls :labels value
Set or show the feature label type (none, index, pixel, coord, user, or both).
None produces no labeling, index labels the features sequentially in order
of pixel position, pixel labels the features by their pixel coordinates,
coord labels the features by their user coordinates (such as wavelength),
user labels the features by the user or line list supplied string, and
both labels the features by both the user coordinates and user strings.
.le
.ls :match value
Set or show the coordinate list matching distance.
.le
.ls :maxfeatures value
Set or show the maximum number of features automatically found.
.le
.ls :minsep value
Set or show the minimum separation allowed between features.
.le
.ls :read name ap
Read a record from the database.  The record name defaults to the image name
and, for 1D spectra, the aperture number defaults to aperture of
the current image.
.le
.ls :write name ap
Write a record to the database.  The record name defaults to the image name
and, for 1D spectra, the aperture number defaults to aperture of
the current image.
.le
.ls :add name ap
Add features from a database record.  The record name defaults to the image name
and, for 1D spectra, the aperture number defaults to aperture of
the current image.  Only the features are added to any existing list
of features.  The dispersion function is not read.
.le
.ls :zwidth value
Set or show the zoom width in user units.
.le
.ls :/help
Print additional help for formatting graphs.  See help under "gtools".
.le
.ih
DESCRIPTION
Features in the input images are identified interactively and assigned
user coordinates.  A "coordinate function" mapping pixel coordinates to
user coordinates may be determined from the identified features.  A
user coordinate list may be defined to automatically identify additional
features.  This task is used to measure positions of features,
determine dispersion solutions for spectra, and to identify features in
two and three dimensional images for mapping a two or three dimensional
coordinate transformation.  Because of this dual use the terms vector
and feature are used rather than spectrum and spectral line.

Each image in the input list is considered in turn.  If the image is
not one dimensional or a one dimensional section of an image
then the image section given by the parameter
\fIsection\fR is used.  This parameter may be specified in several ways as
described in the PARAMETERS and EXAMPLES sections.  The image section is used
to select a starting vector and image axis.

If the image is not one dimensional or in multispec format then the number
of lines, columns, or bands given by the parameter \fInsum\fR are summed.
The one dimensional image vector is graphed.  The initial feature list and
coordinate function are read from the database if an entry exists.  The
features are marked on the graph.  The image coordinates are in pixels
unless a coordinate function is defined, in which case they are in user
coordinate units.  The pixel coordinate, coordinate function value, and
user coordinate for the current feature are printed.

The graphics cursor is used to select features and perform various
functions.  A menu of the keystroke options and functions is printed
with the key '?'.  The cursor keys and their functions are defined in
the CURSOR KEYS section and described further below.  The standard
cursor mode keys are also available to window and redraw the graph and
to produce hardcopy "snaps".

There are a number of ways of defining features.  They fall into
two categories; interactively defining features with the cursor
and using automatic algorithms.

The 'm' key is the principle interactive feature marking method.  Typing
'm' near the position of a feature applies a feature centering algorithm
(see \fBcenter1d\fR) and, if a center is found, the feature is entered in
the feature list and marked on the spectrum.  If the new position is within
a distance given by the parameter \fIminsep\fR of a previous feature it is
considered to be the same feature and replaces the old feature.  Normally
the position of a new feature will be exactly the same as the original
feature.  The coordinate list is searched for a match between the
coordinate function value (when defined) and a user coordinate in the
list.  If a match is found it becomes the default user coordinate which the
user may override.  The new feature is marked on the graph and it becomes
the current feature.  The redefinition of a feature which is within the
minimum separation may be used to set the user coordinate from the
coordinate list.  The 't' key allows setting the position of a feature to
other than that found by the centering algorithm.

The principle automatic feature identification algorithm is executed
with the 'b' key.  The user is queried for an approximate coordinate
value and coordinate interval per pixel.  The coordinate value
is for the center of the spectrum by default though this may be changed
with the \fBaidpars\fR parameters.  Only the magnitude of the
coordinate interval per pixel is used by default though this also
may be changed.  Either value may be given as INDEF to do an unconstrained
search, however, this will be much slower and more likely to fail.
The algorithm searches for matches between the strong lines in the
spectrum and lines in the coordinate list.  The algorithm is described
in the documentation for \fBaidpars\fR.

The 'b' key works with no predefined dispersion solution or features.  If
two or more features are identified, with 'm', spanning the range of the
data or if a coordinate function is defined, from a previous solution, then
the 'e', 'l', and 'y' keys may be used to identify additional features from
a coordinate list.  The 'e' key only adds features at the coordinates of
the line lists if the centering algorithm finds a feature at that
wavelength (as described below).  The 'y' key works in reverse by finding
the prominent features using a peak finding algorithm and then looking in
the coordinate list for entries near the estimated position.  Up to a
maximum number of features (\fImaxfeatures\fR) will be selected.  If there
are more peaks only the strongest are kept.  In either of these cases there
is no automatic fitting and refitting of the dispersion function.

The 'l' key combines automatic fits with locating lines from the coordinate
list.  If two or more features are defined an initial fit is made.  Then
for each coordinate value in the coordinate list the pixel coordinate is
determined and a search for a feature at that point is made.  If a feature
is found (based on the parameters \fIftype, fwidth\fR, \fIcradius\fR, and
\fBthreshold\fR) its user coordinate value based on the coordinate function
is determined.  If the coordinate function value matches the user
coordinate from the coordinate list within the error limit set by the
parameter \fImatch\fR then the new feature is entered in the feature list.
Up to a maximum number of features, set by the parameter \fImaxfeatures\fR,
may be defined in this way.  A new user coordinate function is fit to all
the located features.  Finally, the graph is redrawn in user coordinates
with the additional features found from the coordinate list marked.

A minimum of two features must be defined for the 'l' key algorithm to
work.  However, three or more features are preferable to determine changes
in the dispersion as a function of position.

The 'f' key fits a function of the pixel coordinates to the user
coordinates.  The type of function, order and other fitting parameters
are initially set with the parameters \fIfunction, order, sample,
niterate, low_reject, high_reject\fR and \fIgrow\fR..  The value of the
function for a particular pixel coordinate is called the function
coordinate and each feature in the feature list has a function
coordinate value.  The fitted function also is used to convert pixel
coordinates to user coordinates in the graph.  The fitting is done
within the interactive curve fitting package which has its own set of
interactive commands.  For further information on this package see the
help material under \fBicfit\fR.

If a zero point shift is desired without changing the coordinate function
the user may specify the coordinate of a point in the spectrum with
the 's' key from which a shift is determined.  The 'g' key also
determines a shift by minimizing the difference between the user
coordinates and the fitted coordinates.  This is used when a previously
determined coordinate function is applied to a new spectrum having
fewer or poorer lines and only a zero point shift can reasonably be
determined.  Note that the zero point shift is in user coordinates.
This is only an approximate correction for shifts in the raw spectra
since these shifts are in pixels and the coordinate function should
also be appropriately shifted.

One a set of features is defined one may select features for various
operations.  To select feature as the current feature the keys '.', 'n',
'+', and '-' are used.  The '.' selects the feature nearest the cursor, the
'n' and '+' select the next feature, and the '-' selects the previous
feature relative to the current feature in the feature list as ordered by
pixel coordinate.  These keys are useful when redefining the user
coordinate with the 'u' key, changing the fitting weight of a feature with
'v', and when examining features in zoom mode.

Features may be deleted with the key 'd'.  All features are deleted
when the 'a' key immediately precedes the delete key.  Deleting the
features does not delete the coordinate function.  Features deleted in the
curve fitting package also are removed from the feature list upon
exiting the curve fitting package.

It is common to transfer the feature identifications and coordinate function
from one image to another.  When a new image without a database entry
is examined, such as when going to the next image in the input list,
changing image lines or columns with 'j', 'k' and 'o', or selecting
a new image with the ":image" command, the current feature list and coordinate
function are kept.  Alternatively, a database record from a different
image may be read with the ":read" command.  When transferring feature
identifications between images the feature coordinates will not agree exactly
with the new image feature positions and several options are available to
reregister the feature positions.  The key 'c' centers the feature nearest
the cursor using the current position as the starting point.  When preceded
with the 'a' key all the features are recentered (the user must refit
the coordinate function if desired).  As an aside, the recentering
function is also useful when the parameters governing the feature
centering algorithm are changed.  An additional options is the ":add"
command to add features from a database record.  This does not overwrite
previous features (or the fitting functions) as does ":read".

The (c)entering function is applicable when the shift between the current
and true feature positions is small.  Larger shifts may be determined
automatically with the 's' or 'x' keys.

A zero point shift is specified interactively with the 's' key by using the
cursor to indicate the coordinate of a point in the spectrum.  If there are
no features then the shift is exactly as marked by the cursor.  If there
are features the specified shift is applied, the features are recentered,
and the mean shift for all the features is determined.

The 'x' key uses the automatic line identification algorithm (see
\fBaidpars\fR) with the constraint that the dispersion is nearly the
same and the is primarily a shift in the coordinate zero point.  If
features are defined, normally by inheritance from another spectrum, then a
first pass is done to identify those features in the spectrum.  Since this
only works when the shifts are significantly less than the dispersion range
of the spectrum (i.e. a significant number of features are in common) a
second pass using the full coordinate line list is performed if a shift
based on the features is not found.  After a shift is found any features
remaining from the original list are recentered and a mean shift is
computed.

In addition to the single keystroke commands there are commands initiated
by the key ':' (colon commands).  As with the keystroke commands there are
a number of standard graphics features available beginning with ":."
(type ":.help" for these commands).  The identify colon commands
allow the task parameter values to be listed and to be reset
within the task.  A parameter is listed by typing its name.  The colon command
":show" lists all the parameters.  A parameter value is reset by
typing the parameter name followed by the new value; for example
":match 10".  Other colon commands display the feature list (:features),
control reading and writing records to the database (:read and :write),
and set the graph display format.

The feature identification process for an image is completed by typing
'q' to quit.  Attempting to quit an image without explicitly
recording changes in the feature database produces a warning message
unless the \fIautowrite\fR parameter is set.  If this parameter is
not set a prompt is given asking whether to save the results otherwise
the results are automatically saved.  Also
the reference spectrum keyword REFSPEC is added to the image header at
this time.  This is used by \fBrefspectra\fR and \fBdispcor\fR.
As an immediate exit the 'I' interrupt key may be used.  This does not save
the feature information and may leave the graphics in a confused state.
.ih
DATABASE RECORDS
The database specified by the parameter \fIdatabase\fR is a directory of
simple text files.  The text files have names beginning with 'id' followed
by the entry name, usually the name of the image.  The database text files
consist of a number of records.  A record begins with a line starting with the
keyword "begin".  The rest of the line is the record identifier.  Records
read and written by \fBidentify\fR have "identify" as the first word of the
identifier.  Following this is a name which may be specified following the
":read" or ":write" commands.  If no name is specified then the image name
is used.  For 1D spectra the database entry includes the aperture number
and so to read a solution from a aperture different than the current image
and aperture number must be specified.  For 2D/3D images the entry name
has the 1D image section which is what is specified to read the entry.
The lines following the record identifier contain
the feature information and dispersion function coefficients.

The dispersion function is saved in the database as a series of
coefficients.  The section containing the coefficients starts with the
keyword "coefficients" and the number of coefficients.

The first four coefficients define the type of function, the order
or number of spline pieces, and the range of the independent variable
(the line or column coordinate along the dispersion).  The first
coefficient is the function type code with values:

.nf
	Code	Type
	   1	Chebyshev polynomial
	   2	Legendre polynomial
	   3	Cubic spline
	   4	Linear spline
.fi

The second coefficient is the order (actually the number of terms) of
the polynomial or the number of pieces in the spline.

The next two coefficients are the range of the independent variable over
which the function is defined.  These values are used to normalize the
input variable to the range -1 to 1 in the polynomial functions.  If the
independent variable is x and the normalized variable is n, then

.nf
	n = (2 * x - (xmax + xmin)) / (xmax - xmin)
.fi

where xmin and xmax are the two coefficients.

The spline functions divide the range into the specified number of
pieces.  A spline coordinate s and the nearest integer below s,
denoted as j, are defined by

.nf
	s = (x - xmin) / (xmax - xmin) * npieces
	j = integer part of s
.fi

where npieces are the number of pieces.

The remaining coefficients are those for the appropriate function.
The number of coefficients is either the same as the function order
for the polynomials, npieces+1 for the linear spline, or npieces + 3
for the cubic spline.

1. Chebyshev Polynomial

The polynomial can be expressed as the sum

.nf
	y = sum from i=1 to order {c_i * z_i}
.fi

where the c_i are the coefficients and the z_i are defined
interactively as:

.nf
	z_1 = 1
	z_2 = n
	z_i = 2 * n * z_{i-1} - z_{i-2}
.fi

2. Legendre Polynomial

The polynomial can be expressed as the sum

.nf
	y = sum from i=1 to order {c_i * z_i}
.fi

where the c_i are the coefficients and the z_i are defined
interactively as:

.nf
	z_1 = 1
	z_2 = n
	z_i = ((2*i-3) * n * z_{i-1} - (i-2) * z_{i-2}) / (i-1)
.fi

3. Linear Spline

The linear spline is evaluated as

.nf
	y = c_j * a + c_{j+1} * b
.fi

where j is as defined earlier and a and b are fractional difference
between s and the nearest integers above and below

.nf
	a = (j + 1) - s
	b = s - j
.fi

4.  Cubic Spline

The cubic spline is evaluated as

.nf
	y = sum from i=0 to 3 {c_{i+j} * z_i}
.fi

where j is as defined earlier.  The term z_i are computed from
a and b, as defined earlier, as follows

.nf
	z_0 = a**3
	z_1 = 1 + 3 * a * (1 + a * b)
	z_2 = 1 + 3 * b * (1 + a * b)
	z_3 = b**3
.fi
.ih
EXAMPLES
1.  Because this task is interactive and has many possible applications
it is difficult to provide actual examples.  Instead some uses of the task
are described.

.ls o
For defining distortions in the slit dimension as a function of
wavelength the positions of objects are marked at some wavelength.
The task \fBreidentify\fR is then used to trace the features to other
wavelengths.
.le
.ls o
For determining dispersion solutions in a one dimensional
spectrum an arc calibration is used.  Three emission features are marked
and the (l)ocate key is used to find additional features from a
coordinate list of arc lines.  The dispersion solution is fit interactively
and badly determined or misidentified lines are deleted.  The
solution may be written to the database or transferred to the object
spectrum by reading the object image and deleting all the features.
Deleting the features does not delete the coordinate function.
.le
.ls o
For determining a two or three dimensional coordinate transformation a
dispersion solution is determined at one slit position in a long slit arc
spectrum or one spatial position in a Fabry-Perot spectrum as in the
previous example.  The features are then traced to other positions with the
task \fBreidentify\fR.
.le

2.  For images which are two or three dimensional it is necessary to
specify the image axis for the data vector and the number of pixels at each
point across the vector direction to sum.  One way specify a vector is to
use an image section to define a vector.  For example, to select column
20:

.nf
    cl> identify obj[20,*]
.fi

The alternative is to use the section parameter.  Below are some examples
of the section parameter syntax for an image "im2d" which is 100x200
and "im3d" which is 100x200x50.  On the left is the section string syntax
and on the right is the image section

.nf
    Section parameter |  Image section      |  Description
    ------------------|---------------------|---------------------
    first line        |  im2d[*,1]          |  First image line
    middle column     |  im2d[50,*]         |  Middle image column
    last z            |  im3d[100,200,*]    |  Last image z vector
    middle last y     |  im3d[50,*,50]      |  Image y vector
    line 20           |  im2d[*,20]         |  Line 20
    column 20         |  im2d[20,*]         |  Column 20
    x 20              |  im2d[*,20]         |  Line 20
    y 20              |  im2d[20,*]         |  Column 20
    y 20 30           |  im2d[20,*,30]      |  Column 20
    z 20 30	      |  im3d[20,30,*]      |  Image z vector
    x middle          |  im3d[*,100,25]     |  Middle of image
    y middle          |  im3d[50,*,25]      |  Middle of image
    z middle          |  im3d[50,100,*]     |  Middle of image
.fi

The most common usage should be "middle line", "middle column" or "middle z".

The summing factors apply to the axes across the specified vector.  For
3D images there may be one or two values.  The following shows which axes
are summed, the second and third columns, when the vector axis is that shown
in the first column.

.nf
    Vector axis       |   Sum axis in 2D    |  Sum axes in 3D
    ------------------|---------------------|--------------------
         1            |         2           |      2 3                 
         2            |         1           |      1 3                 
         3            |         -           |      1 2                 
.fi

.ih
REVISIONS
.ls IDENTIFY V2.11
The dispersion units are now determined from a user parameter,
the coordinate list, or the database entry.

A new key, 'e', has been added to add features from a line list without
doing any fits.  This is like the 'l' but without the automatic
fitting before and after adding new features.

A new key, 'b', has been added to apply an automatic line identification
algorithm.

The 'x' key has been changed to use the automatic line identification
algorithm.  The allows finding much larger shifts.

The match parameter may now be specified either in user coordinates or
in pixels.  The default is now 3 pixels.

The default threshold value has been changed to 0.
.le
.ls IDENTIFY V2.10.3
The section and nsum parameter syntax was extended to apply to 3D
images.  The previous values and defaults may still be used.

The 'v' key was added to allow assigning weights to features.
.le
.ls IDENTIFY V2.10
The principle revision is to allow multiple aperture images and long slit
spectra to be treated as a unit.  New keystrokes allow jumping or scrolling
within multiple spectra in a single image.  For aperture spectra the
database entries are referenced by image name and aperture number and not
with image sections.  Thus, IDENTIFY solutions are not tied to specific
image lines in this case.  There is a new autowrite parameter which may
be set to eliminate the save to database query upon exiting.  The new
colon command "add" may be used to add features based on some other
spectrum or arc type and then apply the fit to the combined set of features.
.le
.ih
SEE ALSO
autoidentify, reidentify, aidpars, center1d, linelists, fitcoords, icfit,
gtools
.endhelp