summaryrefslogtreecommitdiffstats
path: root/funtools/man/man1/funhead.1
blob: ed74333019ea5302949f861f35b3528795138208 (plain)
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
.\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.32
.\"
.\" Standard preamble:
.\" ========================================================================
.de Sh \" Subsection heading
.br
.if t .Sp
.ne 5
.PP
\fB\\$1\fR
.PP
..
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Vb \" Begin verbatim text
.ft CW
.nf
.ne \\$1
..
.de Ve \" End verbatim text
.ft R
.fi
..
.\" Set up some character translations and predefined strings.  \*(-- will
.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
.\" double quote, and \*(R" will give a right double quote.  | will give a
.\" real vertical bar.  \*(C+ will give a nicer C++.  Capital omega is used to
.\" do unbreakable dashes and therefore won't be available.  \*(C` and \*(C'
.\" expand to `' in nroff, nothing in troff, for use with C<>.
.tr \(*W-|\(bv\*(Tr
.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
.ie n \{\
.    ds -- \(*W-
.    ds PI pi
.    if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
.    if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\"  diablo 12 pitch
.    ds L" ""
.    ds R" ""
.    ds C` ""
.    ds C' ""
'br\}
.el\{\
.    ds -- \|\(em\|
.    ds PI \(*p
.    ds L" ``
.    ds R" ''
'br\}
.\"
.\" If the F register is turned on, we'll generate index entries on stderr for
.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
.\" entries marked with X<> in POD.  Of course, you'll have to process the
.\" output yourself in some meaningful fashion.
.if \nF \{\
.    de IX
.    tm Index:\\$1\t\\n%\t"\\$2"
..
.    nr % 0
.    rr F
.\}
.\"
.\" For nroff, turn off justification.  Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.hy 0
.if n .na
.\"
.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
.\" Fear.  Run.  Save yourself.  No user-serviceable parts.
.    \" fudge factors for nroff and troff
.if n \{\
.    ds #H 0
.    ds #V .8m
.    ds #F .3m
.    ds #[ \f1
.    ds #] \fP
.\}
.if t \{\
.    ds #H ((1u-(\\\\n(.fu%2u))*.13m)
.    ds #V .6m
.    ds #F 0
.    ds #[ \&
.    ds #] \&
.\}
.    \" simple accents for nroff and troff
.if n \{\
.    ds ' \&
.    ds ` \&
.    ds ^ \&
.    ds , \&
.    ds ~ ~
.    ds /
.\}
.if t \{\
.    ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
.    ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
.    ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
.    ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
.    ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
.    ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
.\}
.    \" troff and (daisy-wheel) nroff accents
.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
.ds ae a\h'-(\w'a'u*4/10)'e
.ds Ae A\h'-(\w'A'u*4/10)'E
.    \" corrections for vroff
.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
.    \" for low resolution devices (crt and lpr)
.if \n(.H>23 .if \n(.V>19 \
\{\
.    ds : e
.    ds 8 ss
.    ds o a
.    ds d- d\h'-1'\(ga
.    ds D- D\h'-1'\(hy
.    ds th \o'bp'
.    ds Th \o'LP'
.    ds ae ae
.    ds Ae AE
.\}
.rm #[ #] #H #V #F C
.\" ========================================================================
.\"
.IX Title "funhead 1"
.TH funhead 1 "April 14, 2011" "version 1.4.5" "SAORD Documentation"
.SH "NAME"
funhead \- display a header in a Funtools file
.SH "SYNOPSIS"
.IX Header "SYNOPSIS"
\&\fBfunhead\fR  [\-a] [\-s] [\-t] [\-L] <iname> [oname ename]
.SH "OPTIONS"
.IX Header "OPTIONS"
.Vb 4
\&  \-a    # display all extension headers
\&  \-s    # display 79 chars instead of 80 before the new-line
\&  \-t    # prepend data type char to each line of output
\&  \-L    # output in rdb/starbase list format
.Ve
.SH "DESCRIPTION"
.IX Header "DESCRIPTION"
\&\fBfunhead\fR displays the \s-1FITS\s0 header parameters in the specified 
\&\s-1FITS\s0 Extension.
.PP
The first argument to the program specifies the Funtools input file
to display.  If \*(L"stdin\*(R" is specified, data are read from
the standard input. Funtools Bracket
Notation is used to specify particular \s-1FITS\s0 extension to process.
Normally, the full 80 characters of each header card is output,
followed by a new\-line. 
.PP
If the \fB\-a\fR switch is specified, the header from each \s-1FITS\s0
extensions in the file is displayed. Note, however, that the \fB\-a\fR
switch does not work with \s-1FITS\s0 files input via stdin. We hope to
remove this restriction in a future release.
.PP
If the \fB\-s\fR switch is specified, only 79 characters are output
before the new\-line. This helps the display on 80 character terminals.
.PP
If the \fB\-t\fR switch is specified, the data type of the parameter
is output as a one character prefix, followed by 77 characters of the
param.  The parameter data types are defined as: \s-1FUN_PAR_UNKNOWN\s0
('u'), \s-1FUN_PAR_COMMENT\s0 ('c'), \s-1FUN_PAR_LOGICAL\s0 ('l'), \s-1FUN_PAR_INTEGER\s0
('i'), \s-1FUN_PAR_STRING\s0 ('s'), \s-1FUN_PAR_REAL\s0 ('r'), \s-1FUN_PAR_COMPLEX\s0 ('x').
.PP
If the \fB\-L\fR (rdb table) switch is used, the output will conform
to starbase/rdb data base list format.
.PP
For example to display the \s-1EVENTS\s0 extension (binary table):
.PP
.Vb 17
\&  [sh] funhead "foo.fits[EVENTS]"
\&  XTENSION= 'BINTABLE'            /  FITS 3D BINARY TABLE                      
\&  BITPIX  =                    8  /  Binary data                               
\&  NAXIS   =                    2  /  Table is a matrix                         
\&  NAXIS1  =                   20  /  Width of table in bytes                   
\&  NAXIS2  =                30760  /  Number of entries in table                
\&  PCOUNT  =                    0  /  Random parameter count                    
\&  GCOUNT  =                    1  /  Group count                               
\&  TFIELDS =                    7  /  Number of fields in each row              
\&  EXTNAME = 'EVENTS  '            /  Table name                                
\&  EXTVER  =                    1  /  Version number of table                   
\&  TFORM1  = '1I      '            /  Data type for field                       
\&  TTYPE1  = 'X       '            /  Label for field                           
\&  TUNIT1  = '        '            /  Physical units for field                  
\&  TFORM2  = '1I      '            /  Data type for field                       
\&    etc. ...
\&  END
.Ve
.PP
To display the third header:
.PP
.Vb 14
\&  [sh] funhead "foo.fits[3]"
\&  XTENSION= 'BINTABLE'            /  FITS 3D BINARY TABLE                      
\&  BITPIX  =                    8  /  Binary data                               
\&  NAXIS   =                    2  /  Table is a matrix                         
\&  NAXIS1  =                   32  /  Width of table in bytes                   
\&  NAXIS2  =                   40  /  Number of entries in table                
\&  PCOUNT  =                    0  /  Random parameter count                    
\&  GCOUNT  =                    1  /  Group count                               
\&  TFIELDS =                    7  /  Number of fields in each row              
\&  EXTNAME = 'TGR     '            /  Table name                                
\&  EXTVER  =                    1  /  Version number of table                   
\&  TFORM1  = '1D      '            /  Data type for field                       
\&    etc. ...
\&  END
.Ve
.PP
To display the primary header (i.e., extension 0):
.PP
.Vb 8
\&  sh> funhead "coma.fits[0]"
\&  SIMPLE  =                    T /STANDARD FITS FORMAT                         
\&  BITPIX  =                   16 /2-BYTE TWOS-COMPL INTEGER                    
\&  NAXIS   =                    2 /NUMBER OF AXES                               
\&  NAXIS1  =                  800 /                                             
\&  NAXIS2  =                  800 /                                             
\&  DATATYPE= 'INTEGER*2'          /SHORT INTEGER                                
\&  END
.Ve
.PP
The funhead program also can edit (i.e. add, delete, or modify) or
display individual headers parameters. Edit mode is signalled by the
presence of two additional command-line arguments: output file and
edit command file, in that order. Edit mode acts as a filter: the
output file will contain the entire input \s-1FITS\s0 file, including other
extensions. The edit command file can be \*(L"stdin\*(R", in which case edit
command are read from the standard input.
.PP
The edit command file contains parameter comments (having '#' in the
first column) and delete and assignment(modify or add) operations.  A
delete operation is specified by preceding the parameter name with a
minus sign \*(L"\-\*(R".  A display operation (very useful in interactive
sessions, i.e., where the edit commands are taken from stdin) is
specified by preceding the parameter name with a question mark \*(L"?\*(R". In
either case, a parameter value need not be specified.  An assignment
operation is specified in the same two ways that a parameter is
specified in a text header (but without the comment character that
precedes header params), i.e.:
.IP "\(bu" 4
FITS-style comments have an equal sign \*(L"=\*(R" between the keyword and
value and an optional slash \*(L"/\*(R" to signify a comment. The strict \s-1FITS\s0
rules on column positions are not enforced.
.IP "\(bu" 4
Free-form comments can have an optional colon separator between the
keyword and value. In the absence of quote, all tokens after the
keyword are part of the value, i.e. no comment is allowed.
.PP
For example, the following interactive session checks for the
existence of parameters, adds new parameters, modifies them, and
modifies and deletes existing parameters:
.PP
.Vb 20
\&  sh$ ./funhead snr.ev foo.fits -
\&  # look for FOO1
\&  ? FOO1
\&  WARNING: FOO1 not found
\&  # add new foo1
\&  FOO1 = 100
\&  # add foo2
\&  FOO2 = 200
\&  # reset foo1 to a different value
\&  FOO1 \-1
\&  # delete foo2
\&  \-FOO2
\&  # change existing value
\&  EXTVER 2
\&  ? XS-SORT
\&  XS-SORT = 'EOF     '            /  type of event sort
\&  # delete existing value
\&  \-XS-SORT
\&  # exit
\&  ^D
.Ve
.PP
See Column-based Text Files
for more information about header parameter format.
.SH "SEE ALSO"
.IX Header "SEE ALSO"
See funtools(7) for a list of Funtools help pages