Produced by IDL 6.1
Developer Documentation

./toolbox/io
io_sdfits_line__define.pro

IO
|
+-IO_SDFITS
  |
  +-io_sdfits_line

All known superclasses:
IO_SDFITS, IO
Last modification date:
Thu Jun 2 23:56:08 2005

IO_SDFITS_LINE is intended for end users wishing to work with spectral line data. It's the child class of IO_SDFITS used for reading, writing, navigating sdfits spectrual line files, and for translating their info to spectrum data containers. See UML for all IO Classes, or IO_SDFITS UML for just the line and continuum sdfits classes.

Fields Summary
ONLINE_DIR
string
.
ONLINE_PROJ
string
.
ONLINE_LOCK_LUN
longword integer
.

Fields inherited from IO_SDFITS:
string  FILE_PATH
pointer  FITS_FILES
object reference  INDEX
longword integer  INDEX_SYNCED
longword integer  UPDATE_EXPANDED_FILES
longword integer  ONE_FILE
string  OBSERVER
string  TCAL_TABLE
string  BACKEND
longword integer  ONLINE
longword integer  DEBUG

Fields inherited from IO:
string  VERSION

Routine Summary  18 routines

procedure io_sdfits_line__define

IO_SDFITS_LINE is intended for end users wishing to work with spectral line data.

function IO_SDFITS_LINE::init(index_file=index_file)

private

Called upon instantiation of this class.

procedure IO_SDFITS_LINE::cleanup

Class destructor

procedure IO_SDFITS_LINE::update_index_with_fits_file, fits_obj

private

Reads in all the rows from every extension in the fits file represented by the passed in sdfits object, and passes this on to the index object so that the index file can be updated.

function IO_SDFITS_LINE::group_row_info(row_info)

private

Groups a collection of rows from the index file by file and extension.

function IO_SDFITS_LINE::get_spectra([count], indicies, [_EXTRA=_EXTRA])

This function searches the index file using the keyword parameters passed into it, reads the appropriate parts of the sdfits files, and tranlates this data into spectrum structures, which are returned.

function IO_SDFITS_LINE::rows_to_spectra(sdfits_rows, integrations, if_numbers, feed_nums, pol_nums, nsaves, missing[, virtuals])

private

Handles the translation of several sdfits rows to spectrum data containers.

function IO_SDFITS_LINE::sdfits_row_to_spectrum(row, integration, if_number, feed_num, pol_num, nsave, missing[, virtuals])

private

Handles the translation of an sdfits row to a spectrum data container.

procedure IO_SDFITS_LINE::free_group_row_info, row_info

private

Frees the memory referenced by pointers in the passed in structure

function IO_SDFITS_LINE::get_new_fits_obj(file_name, _EXTRA=_EXTRA)

private

Creates and returns a line_sdfits object

procedure IO_SDFITS_LINE::load_new_sdfits_rows

Determines if any files have grown, and appends new rows to the index file

function IO_SDFITS_LINE::group_locations(locations)

private

Like other group functions in I/O, groups an array of structures by their filename, and extension tags.

function IO_SDFITS_LINE::get_new_row_locations(filename, status)

private

Compares index file with sdfits files listed in it, and looks for new rows in the sdfits file.

function IO_SDFITS_LINE::get_online_files([newest_acs][, newest_dcr][, newest_sp][, status])

Finds the latest files in the online directory.

procedure IO_SDFITS_LINE::set_online, file_name, [test=bool]

Connects to a file in the online directory, and sets up object so that every time a query of the index file is done, the update method is called.

procedure IO_SDFITS_LINE::update

Reads the new lines in an index file into memory, if the size of the index file has changed.

procedure IO_SDFITS_LINE::lock_file

lock file needed for sharing resources with other processes.

procedure IO_SDFITS_LINE::unlock_file

lock file needed for sharing resources with other processes.

Routine Details

io_sdfits_line__define

procedure io_sdfits_line__define

IO_SDFITS_LINE is intended for end users wishing to work with spectral line data. It's the child class of IO_SDFITS used for reading, writing, navigating sdfits spectrual line files, and for translating their info to spectrum data containers. See UML for all IO Classes, or IO_SDFITS UML for just the line and continuum sdfits classes.

Inherits
io_sdfits
Uses
LINE_INDEX SDFITS
Version
$Id: io_sdfits_line__define.pro,v 1.32 2005/05/28 15:58:26 paghots Exp $

IO_SDFITS_LINE::init private

function IO_SDFITS_LINE::init(index_file=index_file)

Called upon instantiation of this class.

Uses
IO_SDFITS::init

Keywords
index_file
.

IO_SDFITS_LINE::cleanup

procedure IO_SDFITS_LINE::cleanup

Class destructor

IO_SDFITS_LINE::update_index_with_fits_file private

procedure IO_SDFITS_LINE::update_index_with_fits_file, fits_obj

Reads in all the rows from every extension in the fits file represented by the passed in sdfits object, and passes this on to the index object so that the index file can be updated.

Uses
SDFITS::get_and_eval_rows SDFITS::get_number_extensions SDFITS::get_file_name SDFITS::get_extension_header_value LINE_INDEX::update_file

Parameters
fits_obj
in
object
sdfits object representing an sdfits file.

IO_SDFITS_LINE::group_row_info private

function IO_SDFITS_LINE::group_row_info(row_info)

Groups a collection of rows from the index file by file and extension. This method is needed since we will want to access each files extension only once to read the pertinent rows (for efficiany reasons).

Returns
array of group_row_info structures: rows that share a file and extension

Parameters
row_info
in
array
array of structs, where each struct represents a row of the index file

IO_SDFITS_LINE::get_spectra

function IO_SDFITS_LINE::get_spectra([count], indicies, [_EXTRA=_EXTRA])

This function searches the index file using the keyword parameters passed into it, reads the appropriate parts of the sdfits files, and tranlates this data into spectrum structures, which are returned.

Returns
Array of spectrum structures
Examples
 
Uses
LINE_INDEX::search_for_row_info SDFITS::get_and_eval_rows IO_SDFITS_LINE::rows_to_spectra
Version
$Id: io_sdfits_line__define.pro,v 1.32 2005/05/28 15:58:26 paghots Exp $

Parameters
count
out, optional
variable
number of spectra returned
indicies
.

Keywords
_EXTRA
in, optional
see search_for_row_info for more info

IO_SDFITS_LINE::rows_to_spectra private

function IO_SDFITS_LINE::rows_to_spectra(sdfits_rows, integrations, if_numbers, feed_nums, pol_nums, nsaves, missing[, virtuals])

Handles the translation of several sdfits rows to spectrum data containers. Utilizes additional info from the index file, as well as info on keywords in the extension roads are found in, and what ever expected columns were not found in the sdfits file.

Uses
io_sdfits_line::sdfits_row_to_spectrum

Parameters
sdfits_rows
in
array
an array of structures mirroring rows from an sdfits file extension containing spectral line data
integrations
in
array
the integration numbers for these spectra; from index file
if_numbers
in
array
the if numbers for these spectra; from index file
feed_nums
.
pol_nums
.
nsaves
in
array
the nsave numbers for these spectra; from index file
missing
in
array
array of column names that were expected in sdfits file extension, but not found.
virtuals
in, optional
struct
structure containing keywords found in the extension header.

IO_SDFITS_LINE::sdfits_row_to_spectrum private

function IO_SDFITS_LINE::sdfits_row_to_spectrum(row, integration, if_number, feed_num, pol_num, nsave, missing[, virtuals])

Handles the translation of an sdfits row to a spectrum data container. Utilizes additional info from the index file, as well as info on keywords in the extension roads are found in, and what ever expected columns were not found in the sdfits file.

Uses
io_sdfits::get_row_value io_sdfits_line::format_sdfits_freq_type io_sdfits_line::coord_mode_from_types io_sdfits_line::translate_sig io_sdfits_line::translate_cal io_sdfits_line::parse_sdfits_obsmode fitsdateparse juldate

Parameters
row
in
struct
a structure mirroring a row from an sdfits file extension containing spectral line data
integration
in
long
the integration number of this spectrum; from index file
if_number
in
long
the if number of this spectrum; from index file
feed_num
.
pol_num
.
nsave
in
long
the nsave number of this spectrum; from index file
missing
in
array
array of column names that were expected in sdfits file extension, but not found.
virtuals
in, optional
struct
structure containing keywords found in the extension header.

IO_SDFITS_LINE::free_group_row_info private

procedure IO_SDFITS_LINE::free_group_row_info, row_info

Frees the memory referenced by pointers in the passed in structure

Parameters
row_info
in
struct
contains pointers to row number lists, integration and if number lists

IO_SDFITS_LINE::get_new_fits_obj private

function IO_SDFITS_LINE::get_new_fits_obj(file_name, _EXTRA=_EXTRA)

Creates and returns a line_sdfits object

Parameters
file_name
in
string
full path file name for sdfits file of with spectral line data

Keywords
_EXTRA
.

IO_SDFITS_LINE::load_new_sdfits_rows

procedure IO_SDFITS_LINE::load_new_sdfits_rows

Determines if any files have grown, and appends new rows to the index file

Examples
>io->set_file, 'filename' >io->list ; here you see contents of 'filename' >io->update ; even though 'filename' hasnt changed >'No sdfits file(s) in index need updating' ; now new rows are appended to 'filename' (by the online filler perhaps) >io->update >'Index file updated with 5 rows' >io->list ; here you see the original contents of 'filname' ; plus the extra 5 new rows. ; NOTE: the index file was NOT re-created from scatch
Uses
get_new_row_locations group_row_locations

IO_SDFITS_LINE::group_locations private

function IO_SDFITS_LINE::group_locations(locations)

Like other group functions in I/O, groups an array of structures by their filename, and extension tags. This is used so that rows in the same file-extension can be accessed all at once.

Returns
array of structures, each structure giving a filename, extension, and array of row nubmers

Parameters
locations
in, required
array
array of structures containing filenames, ext, and row #

IO_SDFITS_LINE::get_new_row_locations private

function IO_SDFITS_LINE::get_new_row_locations(filename, status)

Compares index file with sdfits files listed in it, and looks for new rows in the sdfits file.

Returns
array of structures, each giving location of file, extension, and row # of new sdfits row

Parameters
filename
.
status
.

IO_SDFITS_LINE::get_online_files

function IO_SDFITS_LINE::get_online_files([newest_acs][, newest_dcr][, newest_sp][, status])

Finds the latest files in the online directory.

Returns
the newest fits file (of all backends) in the online directory

Parameters
newest_acs
out, optional
variable
the newest spectrometer fits file in the online directory
newest_dcr
out, optional
variable
the newest dcr fits file in the online directory
newest_sp
out, optional
variable
the newest spectral processor fits file in the online directory
status
out, optional
variable
0 - error, 1 - success

IO_SDFITS_LINE::set_online

procedure IO_SDFITS_LINE::set_online, file_name, [test=bool]

Connects to a file in the online directory, and sets up object so that every time a query of the index file is done, the update method is called. This depends on another process(es) that should be updating the sdfits and index files for the current project.

Parameters
file_name
in, required
string
base or full filename to connect to

Keywords
test
in, optional
bool
if true, this is a test, and the online directory does not need to be visible

IO_SDFITS_LINE::update

procedure IO_SDFITS_LINE::update

Reads the new lines in an index file into memory, if the size of the index file has changed. Uses a lock file since other processes might be reading/writing the index file.

Uses
INDEX_FILE::read_new_rows

IO_SDFITS_LINE::lock_file

procedure IO_SDFITS_LINE::lock_file

lock file needed for sharing resources with other processes. if lock file already exists, then some other process is using the resource, and we wait (no time out). Once file is gone, we can lock the resource. this method creates the file /home/sdfits/project.lock

IO_SDFITS_LINE::unlock_file

procedure IO_SDFITS_LINE::unlock_file

lock file needed for sharing resources with other processes. this method destorys the file /home/sdfits/project.lock


Produced by IDLdoc 1.6 on Thu Jun 2 23:56:35 2005