NAME
Astro::Funtools::Parse - routines to parse the output of Funtools programs
SYNOPSIS
use Astro::Funtools::Parse qw( :all );
use Astro::Funtools::Parse qw( parse_funcnts
parse_funcnts_file
parse_funhist
parse_funhist_file
);
$funcnts = parse_funcnts_file( $filename );
$funcnts = parse_funcnts( $filehandle );
$funcnts = parse_funcnts( $string );
$funcnts = parse_funcnts( \@array );
($header, $table ) = parse_funhist_file( $filename );
($header, $table ) = parse_funhist( $filehandle );
($header, $table ) = parse_funhist( $string );
($header, $table ) = parse_funhist( \@array );
DESCRIPTION
This module provides subroutines which parse the output of two Funtools programs, funcnts and funhist. For more information on Funtools, see
http://hea-www.harvard.edu/RD/funtools/
Subroutines
- parse_funcnts_file, parse_funcnts
-
$funcnts = parse_funcnts_file( $filename ); $funcnts = parse_funcnts( $filehandle ); $funcnts = parse_funcnts( $string ); $funcnts = parse_funcnts( \@array );
These parse the funcnts output stored in the argument, and return a reference to a hash containing the results. If funcnts was run with the -i switch and more than one "interval" was used, a reference to an array consisting of references to anonymous hashes is returned, each hash corresponding to one of the intervals. The hashes will have the following keys (unless otherwise specified):
- hdr
-
This element is a reference to a hash containing the header of the funcnts file. funcnts headers have a two level hierarchy of fields in them. The hash keys are the names of the top level; their values are references to hashes containing the names and values of the second level fields. For example, if the funcnts header is
# source # data file: 002_02_180_10000_new_evt.fits # degrees/pix: 0.000136639 # background # data file: 002_02_180_10000_new_evt.fits # column units # area: arcsec**2 # surf_bri: cnts/arcsec**2 # err_rate: cnts/arcsec**2
The resultant entry in the hash returned by this function is
'hdr' => { 'background' => { 'data file' => '002_02_180_10000_new_evt.fits' }, 'column units' => { 'area' => 'arcsec**2', 'surf_bri' => 'cnts/arcsec**2', 'err_rate' => 'cnts/arcsec**2' }, 'source' => { 'data file' => '002_02_180_10000_new_evt.fits', 'degrees/pix' => '0.000136639' } },
- source
-
This element is a reference to a hash containing information about the source regions. It has two elements, keyed off of
table
andregions
. The first element is a hash reference to a table (see "Tables" ) and the second is a hash reference to a region (see "Regions")). For example (note that the contents of the hashes are not shown):'source' => { 'table' => { ... }, 'regions' => { ... } },
- bkgd
-
This element may not always be there, depending upon how funcnts was run. It has the same format as the
source
element:'bkgd' => { 'table' => { ... }, 'regions' => { ... } },
- bkgd_sub
-
This element is a reference to a hash containing the background subtracted results table. The format for tables is given below.
- sum_bkgd_sub
-
This element is a reference to a hash containing the summed, background subtracted results table. It is not always present, depending upon how funcnts was run. The format for tables is given below.
- parse_funhist_file, parse_funhist
-
($header, $table ) = parse_funhist_file( $filename ); ($header, $table ) = parse_funhist( $filehandle ); ($header, $table ) = parse_funhist( $string ); ($header, $table ) = parse_funhist( \@array );
These parse the funhist output stored in the argument, and return reference to hashes containing the file header and data. The header keywords are used as keys into the header hash. The data are stored in the format documented in "Tables".
Tables
Tables are stored as hashes with the keys comments
, names
, and records
. The comments
element is a reference to an array containing any comments preceding the table. The names
element is a reference to an array containing the column names, in the order in which they appear. The widths
element is an arrayref containing the width of the column (actually the width of the separators). Finally, the records
element is a reference to an array, containing references to hashes, one per record in the table. These latter hashes have as keys the names of the columns, and as values the related values for that record.
For example:
{
'comments' => [
' background-subtracted results'
],
'widths' => [ 3, 6, 5, 10, 6, 4, 8, 8 ],
'names' => [
'reg',
'counts',
'error',
'background',
'berror',
'area',
'surf_bri',
'err_rate'
],
'records' => [
{
'error' => '95.979',
'reg' => '1',
'area' => '90.25',
'background' => '0.532',
'counts' => '9211.468',
'surf_bri' => '102.063',
'err_rate' => '1.063',
'berror' => '0.142'
},
{
'error' => '9.545',
'reg' => '2',
'area' => '275.84',
'background' => '1.326',
'counts' => '89.674',
'surf_bri' => '0.325',
'err_rate' => '0.035',
'berror' => '0.332'
}
]
}
Regions
Regions are stored as hashes with the keys title
and regions
. The former is a scalar containing the region's identifying string, the latter is a reference to an array, containing the region description (one element per line). For example:
{
'title' => 'source region(s)',
'regions' => [
'annulus(4341,4096,0,22,n=2)'
]
}
EXPORT
None by default. The following symbols are available for export:
parse_funcnts
parse_funcnts_file
parse_funhist
parse_funhist_file
The tag :all
is available to export all symbols.
LICENSE
Copyright (C) 2006 Smithsonian Astrophysical Observatory
This file is part of Astro::Funtools::Parse
Astro::Funtools::Parse is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
Astro::Funtools::Parse is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License ong with this program; if not, write to the Free Software Foundation, Inc. 51 Franklin Street, Fifth Floor Boston, MA 02110-1301, USA
AUTHOR
Diab Jerius ( djerius@cfa.harvard.edu )