.\" 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 "funtools n"
.TH funtools n "January 2, 2008" "version 1.4.2" "SAORD Documentation"
.SH "NAME"
\&\fBFuntools: FITS Users Need Tools\fR
.SH "SYNOPSIS"
.IX Header "SYNOPSIS"
This document is the Table of Contents for Funtools.
.SH "DESCRIPTION"
.IX Header "DESCRIPTION"
Funtools, is a \*(L"minimal buy\-in\*(R" \s-1FITS\s0 library and utility package developed
at the the High Energy Astrophysics Division of \s-1SAO\s0.  The Funtools
library provides simplified access to a wide array of file types:
standard astronomical \s-1FITS\s0 images and binary tables, raw arrays and
binary event lists, and even tables of \s-1ASCII\s0 column data.  A
sophisticated region filtering library (compatible with ds9) filters
images and tables using boolean operations between geometric shapes,
support world coordinates, etc.  Funtools also supports advanced
capabilities such as optimized data searching using index files.
.PP
The main goal of the Funtools project has been to develop a minimal buy-in
\&\s-1FITS\s0 library for researchers who are occasional (but serious) coders.  In
this case, \*(L"minimal buy\-in\*(R" means \*(L"easy to learn, easy to use, and easy to
re-learn next month\*(R". We have tried to achieve this goal by emphasizing two
essential capabilities.  The first is the ability to develop \s-1FITS\s0 programs
without knowing much about \s-1FITS\s0, i.e., without having to deal with the
arcane rules for generating a properly formatted \s-1FITS\s0 file.  The second is
to support the use of already-familiar C/Unix facilities, especially C
structs and Unix stdio. Taken together, these two capabilities should allow
researchers to leverage their existing programming expertise while
minimizing the need to learn new and complex coding rules.
.PP
Choose from the following topics:
.IP "\(bu" 4
Funtools User Programs
.RS 4
.IP "\(bu" 4
funcalc: Funtools calculator (for binary tables)
[\fIfuncalc\fR\|(1)]
.IP "\(bu" 4
funcen: find centroid (for binary tables)
[\fIfuncen\fR\|(1)]
.IP "\(bu" 4
funcnts: count photons in specified regions
[\fIfuncnts\fR\|(1)]
.IP "\(bu" 4
funcone: cone search on \s-1RA\s0, Dec columns
[\fIfuncone\fR\|(1)]
.IP "\(bu" 4
fundisp: display data in a Funtools data file
[\fIfundisp\fR\|(1)]
.IP "\(bu" 4
funhead: display a header in a Funtools file
[\fIfunhead\fR\|(1)]
.IP "\(bu" 4
funhist: create a 1D histogram of a column
[\fIfunhist\fR\|(1)]
.IP "\(bu" 4
funimage: create a \s-1FITS\s0 image from a Funtools data file
[\fIfunimage\fR\|(1)]
.IP "\(bu" 4
funindex: create an index on a column in a binary table
[\fIfunindex\fR\|(1)]
.IP "\(bu" 4
funjoin: join two or more \s-1FITS\s0 binary tables on specified columns
[\fIfunjoin\fR\|(1)]
.IP "\(bu" 4
funmerge: merge one or more Funtools table files
[\fIfunmerge\fR\|(1)]
.IP "\(bu" 4
funsky: convert between image and sky coordinates, using \s-1WCS\s0 info from a \s-1FITS\s0 header
[\fIfunsky\fR\|(1)]
.IP "\(bu" 4
funtable: copy selected rows from a Funtools file to a \s-1FITS\s0 binary table
[\fIfuntable\fR\|(1)]
.IP "\(bu" 4
funtbl: extract a table from
Funtools \s-1ASCII\s0 output
[\fIfuntbl\fR\|(1)]
.IP "\(bu" 4
funtools and ds9 image display
[funds9(n)]
.RE
.RS 4
.RE
.IP "\(bu" 4
Funtools Programming
.RS 4
.IP "\(bu" 4
Funtools Programming Summary
[\fIfunlib\fR\|(3)]
.IP "\(bu" 4
Funtools Programming Tutorial
[\fIfunlib\fR\|(3)]
.IP "\(bu" 4
A Short Digression on Subroutine Order
[\fIfunlib\fR\|(3)]
.IP "\(bu" 4
Compiling and Linking
[\fIfunlib\fR\|(3)]
.IP "\(bu" 4
The Funtools Reference Handle
[\fIfunlib\fR\|(3)]
.IP "\(bu" 4
The Funtools Programming Reference Manual
.RS 4
.IP "\(bu" 4
FunOpen: open a Funtools file
[\fIfunopen\fR\|(3)]
.IP "\(bu" 4
FunImageGet: retrieve image data
[\fIfunimageget\fR\|(3)]
.IP "\(bu" 4
FunImagePut: output image data
[\fIfunimageput\fR\|(3)]
.IP "\(bu" 4
FunImageRowGet: retrieve image data by row
[\fIfunimagerowget\fR\|(3)]
.IP "\(bu" 4
FunImageRowPut: output image data by row
[\fIfunimagerowput\fR\|(3)]
.IP "\(bu" 4
FunTableRowGet: retrieve rows from a table
[\fIfuntablerowget\fR\|(3)]
.IP "\(bu" 4
FunTableRowPut: output rows to a table
[\fIfuntablerowput\fR\|(3)]
.IP "\(bu" 4
FunColumnSelect: select columns in a table for access
[\fIfuncolumnselect\fR\|(3)]
.IP "\(bu" 4
FunColumnActivate: activate columns in a table for read/write
[\fIfuncolumnactivate\fR\|(3)]
.IP "\(bu" 4
FunColumnLookup: lookup info about  the columns in a table
[\fIfuncolumnlookup\fR\|(3)]
.IP "\(bu" 4
FunInfoGet: get info about an image or table
[\fIfuninfoget\fR\|(3)]
.IP "\(bu" 4
FunInfoPut: put info about an image or table
[\fIfuninfoput\fR\|(3)]
.IP "\(bu" 4
FunParamGet: get header param
[\fIfunparamget\fR\|(3)]
.IP "\(bu" 4
FunParamPut: put header param
[\fIfunparamput\fR\|(3)]
.IP "\(bu" 4
FunFlush: flush I/O in a Funtools file
[\fIfunflush\fR\|(3)]
.IP "\(bu" 4
FunClose: close a Funtools file
[\fIfunclose\fR\|(3)]
.RE
.RS 4
.RE
.IP "\(bu" 4
Funtools Programming Examples
[\fIfunlib\fR\|(3)]
.RS 4
.IP "\(bu" 4
evmerge: merge new columns with existing columns
.IP "\(bu" 4
evcols: add column and rows to binary tables
.IP "\(bu" 4
imblank: blank out image values below a threshold
.RE
.RS 4
.RE
.RE
.RS 4
.RE
.IP "\(bu" 4
Funtools Data Files
[funfiles(n)]
.RS 4
.IP "\(bu" 4
Supported Data Formats
.RS 4
.IP "\(bu" 4
\&\s-1FITS\s0 File and Extensions
.IP "\(bu" 4
Non-FITS Raw Event Files
.IP "\(bu" 4
Non-FITS Array Files
.IP "\(bu" 4
Column-based Text (\s-1ASCII\s0) Files
.IP "\(bu" 4
Database Views of Tables
.RE
.RS 4
.RE
.IP "\(bu" 4
Image Sections and Blocking
.IP "\(bu" 4
Binning \s-1FITS\s0 Binary Tables and Non-FITS Event Files
.IP "\(bu" 4
Disk Files and Other Supported File Types
.RE
.RS 4
.RE
.IP "\(bu" 4
Funtools Data Filtering
.RS 4
.IP "\(bu" 4
Table Filtering
[funfilters(n)]
.IP "\(bu" 4
Fast Table Filtering using Indexes
[funidx(n)]
.IP "\(bu" 4
Spatial Region Filtering
[funregions(n)]
.RS 4
.IP "\(bu" 4
Region Geometry
[reggeometry(n)]
.IP "\(bu" 4
Region Algebra
[regalgebra(n)]
.IP "\(bu" 4
Region Coordinates
[regcoords(n)]
.IP "\(bu" 4
Region Boundaries
[regbounds(n)]
.IP "\(bu" 4
Differences Between Funtools and \s-1IRAF\s0 Regions
[regdiff(n)]
.RE
.RS 4
.RE
.IP "\(bu" 4
Combining Table and Region Filters
[funcombine(n)]
.RE
.RS 4
.RE
.IP "\(bu" 4
Miscellaneous
.RS 4
.IP "\(bu" 4
Funtools Environment Variables
[funenv(n)]
.IP "\(bu" 4
Funtools ChangeLog
.RE
.RS 4
.RE
