.help tbdump Feb93 noao.digiphot.ptools
.ih
NAME
tbdump -- print fields (columns) from a list of  APPHOT/DAOPHOT STSDAS table
	  databases
.ih
USAGE
tbdump tables columns expr
.ih
PARAMETERS
.ls tables
The name of the APPHOT/DAOPHOT table database(s) to be dumped.
.le
.ls columns
The template specifying the names of the columns to be dumped.
A null or blank string means
dump all columns.  A column template consists of a list
of either column names or column patterns containing the usual pattern matching
meta-characters.  The names or patterns are separated by commas or white space.
Column names must be spelled in full but may be upper or lower case.
The columns list can be placed in a file and the name of the file preceded
by an '@' character given in place of the column template.
If the first non-white character in the column template
is the negation character '~', the output will contain those columns
NOT named in the remainder of the column template.
.le
.ls expr
The boolean expression to be evaluated once per record.
Only the fields in those records for which the boolean expression
evaluates to yes are printed.
If \fIexpr\fR = "yes", the specified columns in all the records are
printed.
.le
.ls datafile = STDOUT
If \fIDatafile\fR is not null ("") then the table data will be written
to an output file with this name. By default the table data is written
on the standard output.
\fIDatafile\fR will not be created if the table is empty.
.le
.ls cdfile = ""
If \fICdfile\fR is not null ("") then the column definitions will be written
to an output file with this name.
The column definitions consist of the column name, data type (R, D, I, B,
or C), print format, and units.
.le
.ls pfile = ""
If \fIPfile\fR is not null ("") then the header parameters will be written
to an output file with this name.
\fIPfile\fR will not be created if there are no header parameters.
.le
.ls rows = "-"
\fIRows\fR is a string which may be used to specify ranges of rows which are
to be dumped.  The default of "-" means dump all rows.  The first
ten rows could be specified as \fIrows\fR = "1-10" or just \fIrows\fR = "-10".
To dump the first ten rows and all rows from 900 through the last,
use \fIrows\fR = "-10,900-".  \fIRows\fR = "1,3,7,23" will print only
those four rows.  It is not an error to specify rows larger than the largest
row number as they will simply be ignored.
See the help for RANGES in XTOOLS for further information.
.le
.ls pagwidth = 158
The width of the output for printing the table data.  If any of the columns
to be printed is wider than this an error message will be displayed, and
the data will not be dumped.  The width of each character column is
increased by two to include a pair of enclosing quotes.
.le
.ih
DESCRIPTION
This task converts selected records from an APPHOT/DAOPHOT STSDAS table
database to ASCII format
and by default prints the result on the standard output.
TBDUMP  output does not include row numbers or column names.
The TABLES package task TPRINT can be used for more readable output.

The PTOOLS version of TBDUMP described here is 
actually a combination of the STSDAS TABLES package tasks TSELECT and TDUMP.

The three primary uses for TBDUMP are to format STSDAS tables for input to
applications
which expect simple text input, allow editing that would be
difficult or impossible with the TABLES package TEDIT task, such as
global substitutions,
and facilitate copying a table over a network to another computer.
For the latter two applications the table can be dumped to three separate files
containing column definitions, header parameters, and table data,
edited, column data types changed, etc.
The TABLES package TCREATE can be used to create a new table from the three
ASCII files produced by TBDUMP.
By default only the column data is dumped.

TBDUMP queries for the columns to be dumped. If \fIcolumns\fR is null ("")
then all the columns are dumped.
All the rows are dumped by default, but ranges of
rows may be specified with the \fIrows\fR parameter.
If the table is wider than will fit on a page,
the output will consist of more than one line per row of the table,
but all the columns will be printed before moving on to the next row.
This is in contrast to TPRINT,
which prints all rows for those columns that will fit on a page,
then prints all rows for the next set of columns, etc.
Character columns with multiple words are printed with enclosing quotes.

The TABLES package TLCOL task (with TLCOL.NLIST=1) may be used to generate
a list of
column names so there is no question about spelling or case.  This list may
be edited to rearrange the names and/or delete some, the list
file preceded by an '@' and used as the value of the \fIcolumns\fR
parameter.

The output records are selected on the basis of an input boolean
expression \fIexpr\fR whose variables are the tables column names.
If after substituting the values associated
with a particular record into the field name variables the
expression evaluates
to yes, that record is included in the output table.

The supported
operators and functions are briefly described below. A detailed description
of the boolean expression evaluator and its syntax can be found
in the manual page for the IMAGES package HEDIT task.

The following logical operators can be used in the boolean expression. 

.nf
	equal		  ==	not equal		!=
	less than	  <	less than or equal	<=
	greater than	  >	greater than or equal	>=
	or		  ||	and			&&
	negation	  !	pattern match		?=
	concatenation	  //
.fi

The pattern match character ?=  takes a
string expression as its first argument and a pattern as its second argument.
The result is yes if the pattern is contained in the string expression.
Patterns are strings which may contain pattern matching meta-characters.
The meta-characters themselves can be matched by preceeding them with the escape
character.  The meta-characters listed below. 

.nf
	beginning of string	^	end of string		$
	one character		?	zero or more characters	*
	white space		#	escape character	\
	ignore case		{	end ignore case		}
	begin character class	[	end character class	]
	not, in char class	^	range, in char class	-
.fi

The expression may also include arithmetic operators and functions.
The following arithmetic operators and functions are supported.

.nf
addition		+		subtraction		-
multiplication		*		division		/
negation		-		exponentiation		**
absolute value		abs(x)		cosine			cos(x)
sine			sin(x)		tangent			tan(x)
arc cosine		acos(x)		arc sine		asin(x)
arc tangent		atan(x)		arc tangent		atan2(x,y)
exponential		exp(x)		square root		sqrt(x)
natural log		log(x)		common log		log10(x)
minimum			min(x,y)	maximum			max(x,y)
convert to integer	int(x)		convert to real		real(x)
nearest integer		nint(x)		modulo			mod(x)
.fi
.ih
EXAMPLES
.nf
1. Dump the "ID", "MAG" and "MAGERR" columns of the DAOPHOT package NSTAR
output to the standard output.

    pt> tbdump n4147.nst.1 "ID,MAG,MAGERR" yes

2. Dump the "ID", "MAG", and "MAGERR" columns of the above file for records
which have  "MAG <= 20.0".

    pt> tbdump n4147.nst.1 "ID,MAG,MAGERR" "MAG <= 20.0"

3. Dump the "MAG" and "MAGERR" columns of the above file and pipe the
result to graph.

    pt> tbdump n4147.nst.1 "MAG,MAGERR" yes | graph STDIN

4.  Dump all the columns in the first 100 rows of the above file.

    pt> tbdump n4147.nst.1 "" yes rows="1-100"
.fi
.ih
BUGS
.ih
SEE ALSO
tables.tdump,tables.tprint,tables.tlcol,tables.tcreate,ptools.txdump,ptools.pdump
.endhelp
