Main Page | Class List | Directories | File List | Class Members | File Members

ObitTableIDI_ARRAY_GEOMETRY.h File Reference

ObitTableIDI_ARRAY_GEOMETRY class definition. More...

#include "Obit.h"
#include "ObitErr.h"
#include "ObitTable.h"
#include "ObitData.h"

Go to the source code of this file.

Classes

struct  ObitTableIDI_ARRAY_GEOMETRY
 ObitTableIDI_ARRAY_GEOMETRY Class structure. More...
struct  ObitTableIDI_ARRAY_GEOMETRYRow
 ObitTableIDI_ARRAY_GEOMETRYRow Class structure. More...
struct  ObitTableIDI_ARRAY_GEOMETRYClassInfo
 ClassInfo Structure. More...
struct  ObitTableIDI_ARRAY_GEOMETRYRowClassInfo
 ClassInfo Structure For TableIDI_ARRAY_GEOMETRYRow. More...

Defines

#define MAXKEYCHARTABLEIDI_ARRAY_GEOMETRY   24
 Number of characters for Table keyword.
#define ObitTableIDI_ARRAY_GEOMETRYUnref(in)   ObitUnref (in)
 Macro to unreference (and possibly destroy) an ObitTableIDI_ARRAY_GEOMETRY returns an ObitTableIDI_ARRAY_GEOMETRY*.
#define ObitTableIDI_ARRAY_GEOMETRYRef(in)   ObitRef (in)
 Macro to reference (update reference count) an ObitTableIDI_ARRAY_GEOMETRY.
#define ObitTableIDI_ARRAY_GEOMETRYIsA(in)   ObitIsA (in, ObitTableIDI_ARRAY_GEOMETRYGetClass())
 Macro to determine if an object is the member of this or a derived class.
#define ObitTableIDI_ARRAY_GEOMETRYRowUnref(in)   ObitUnref (in)
 Macro to unreference (and possibly destroy) an ObitTableIDI_ARRAY_GEOMETRYRow returns an ObitTableIDI_ARRAY_GEOMETRYRow*.
#define ObitTableIDI_ARRAY_GEOMETRYRowRef(in)   ObitRef (in)
 Macro to reference (update reference count) an ObitTableIDI_ARRAY_GEOMETRYRow.
#define ObitTableIDI_ARRAY_GEOMETRYRowIsA(in)   ObitIsA (in, ObitTableIDI_ARRAY_GEOMETRYRowGetClass())
 Macro to determine if an object is the member of this or a derived class.

Functions

void ObitTableIDI_ARRAY_GEOMETRYRowClassInit (void)
 Public: Row Class initializer.
ObitTableIDI_ARRAY_GEOMETRYRownewObitTableIDI_ARRAY_GEOMETRYRow (ObitTableIDI_ARRAY_GEOMETRY *table)
 Public: Constructor.
gconstpointer ObitTableIDI_ARRAY_GEOMETRYRowGetClass (void)
 Public: ClassInfo pointer.
void ObitTableIDI_ARRAY_GEOMETRYClassInit (void)
 Public: Class initializer.
ObitTableIDI_ARRAY_GEOMETRYnewObitTableIDI_ARRAY_GEOMETRY (gchar *name)
 Public: Constructor.
ObitTableIDI_ARRAY_GEOMETRYnewObitTableIDI_ARRAY_GEOMETRYValue (gchar *name, ObitData *file, glong *ver, ObitIOAccess access, oint no_band, oint numOrb, ObitErr *err)
 Public: Constructor from values.
gconstpointer ObitTableIDI_ARRAY_GEOMETRYGetClass (void)
 Public: ClassInfo pointer.
ObitTableIDI_ARRAY_GEOMETRYObitTableIDI_ARRAY_GEOMETRYCopy (ObitTableIDI_ARRAY_GEOMETRY *in, ObitTableIDI_ARRAY_GEOMETRY *out, ObitErr *err)
 Public: Copy (deep) constructor.
ObitTableIDI_ARRAY_GEOMETRYObitTableIDI_ARRAY_GEOMETRYClone (ObitTableIDI_ARRAY_GEOMETRY *in, ObitTableIDI_ARRAY_GEOMETRY *out)
 Public: Copy (shallow) constructor.
ObitTableIDI_ARRAY_GEOMETRYObitTableIDI_ARRAY_GEOMETRYConvert (ObitTable *in)
 Public: Convert an ObitTable to an ObitTableIDI_ARRAY_GEOMETRY.
ObitIOCode ObitTableIDI_ARRAY_GEOMETRYOpen (ObitTableIDI_ARRAY_GEOMETRY *in, ObitIOAccess access, ObitErr *err)
 Public: Create ObitIO structures and open file.
ObitIOCode ObitTableIDI_ARRAY_GEOMETRYReadRow (ObitTableIDI_ARRAY_GEOMETRY *in, glong iIDI_ARRAY_GEOMETRYRow, ObitTableIDI_ARRAY_GEOMETRYRow *row, ObitErr *err)
 Public: Read a table row.
void ObitTableIDI_ARRAY_GEOMETRYSetRow (ObitTableIDI_ARRAY_GEOMETRY *in, ObitTableIDI_ARRAY_GEOMETRYRow *row, ObitErr *err)
 Public: Init a table row for write.
ObitIOCode ObitTableIDI_ARRAY_GEOMETRYWriteRow (ObitTableIDI_ARRAY_GEOMETRY *in, glong iIDI_ARRAY_GEOMETRYRow, ObitTableIDI_ARRAY_GEOMETRYRow *row, ObitErr *err)
 Public: Write a table row.
ObitIOCode ObitTableIDI_ARRAY_GEOMETRYClose (ObitTableIDI_ARRAY_GEOMETRY *in, ObitErr *err)
 Public: Close file and become inactive.


Detailed Description

ObitTableIDI_ARRAY_GEOMETRY class definition.

This class is derived from the ObitTable class.

This class contains tabular data and allows access. This table is part of the IDI uv data format. IDI contains information about the locations of antennas in a UV data set. Also time information and the state of the Earth's orientation. ] In memory tables are stored in a fashion similar to how they are stored on disk - in large blocks in memory rather than structures. Due to the word alignment requirements of some machines, they are stored by order of the decreasing element size: double, float long, int, short, char rather than the logical order. The details of the storage in the buffer are kept in the ObitTableDesc.

This class contains tabular data and allows access. "IDI_ARRAY_GEOMETRY" table An ObitTableIDI_ARRAY_GEOMETRY is the front end to a persistent disk resident structure. Only FITS (as Tables) are supported.

HistoryTable data storage

In memory tables are stored in a fashion similar to how they are stored on disk - in large blocks in memory rather than structures. Due to the word alignment requirements of some machines, they are stored by order of the decreasing element size: double, float long, int, short, char rather than the logical order. The details of the storage in the buffer are kept in the #ObitTableIDI_ARRAY_GEOMETRYDesc.

In addition to the normal tabular data, a table will have a "_status" column to indicate the status of each row.

Specifying desired data transfer parameters

The desired data transfers are specified in the member ObitInfoList. In the following an ObitInfoList entry is defined by the name in double quotes, the data type code as an #ObitInfoType enum and the dimensions of the array (? => depends on application).

The following apply to both types of files:

FITS files

This implementation uses cfitsio which allows using, in addition to regular FITS images, gzip compressed files, pipes, shared memory and a number of other input forms. The convenience Macro #ObitTableIDI_ARRAY_GEOMETRYSetFITS simplifies specifying the desired data. Binary tables are used for storing visibility data in FITS. For accessing FITS files the following entries in the ObitInfoList are used:

Creators and Destructors

An ObitTableIDI_ARRAY_GEOMETRY can be created using newObitTableIDI_ARRAY_GEOMETRYValue which attaches the table to an ObitData for the object. If the output ObitTableIDI_ARRAY_GEOMETRY has previously been specified, including file information, then ObitTableIDI_ARRAY_GEOMETRYCopy will copy the disk resident as well as the memory resident information.

A copy of a pointer to an ObitTableIDI_ARRAY_GEOMETRY should always be made using the ObitTableIDI_ARRAY_GEOMETRYRef function which updates the reference count in the object. Then whenever freeing an ObitTableIDI_ARRAY_GEOMETRY or changing a pointer, the function ObitTableIDI_ARRAY_GEOMETRYUnref will decrement the reference count and destroy the object when the reference count hits 0.

I/O

Visibility data is available after an input object is "Opened" and "Read". I/O optionally uses a buffer attached to the ObitTableIDI_ARRAY_GEOMETRY or some external location. To Write an ObitTableIDI_ARRAY_GEOMETRY, create it, open it, and write. The object should be closed to ensure all data is flushed to disk. Deletion of an ObitTableIDI_ARRAY_GEOMETRY after its final unreferencing will automatically close it.

Define Documentation

#define MAXKEYCHARTABLEIDI_ARRAY_GEOMETRY   24
 

Number of characters for Table keyword.

#define ObitTableIDI_ARRAY_GEOMETRYIsA in   )     ObitIsA (in, ObitTableIDI_ARRAY_GEOMETRYGetClass())
 

Macro to determine if an object is the member of this or a derived class.

Returns TRUE if a member, else FALSE in = object to reference

#define ObitTableIDI_ARRAY_GEOMETRYRef in   )     ObitRef (in)
 

Macro to reference (update reference count) an ObitTableIDI_ARRAY_GEOMETRY.

returns an ObitTableIDI_ARRAY_GEOMETRY*. in = object to reference

#define ObitTableIDI_ARRAY_GEOMETRYRowIsA in   )     ObitIsA (in, ObitTableIDI_ARRAY_GEOMETRYRowGetClass())
 

Macro to determine if an object is the member of this or a derived class.

Returns TRUE if a member, else FALSE in = object to reference

#define ObitTableIDI_ARRAY_GEOMETRYRowRef in   )     ObitRef (in)
 

Macro to reference (update reference count) an ObitTableIDI_ARRAY_GEOMETRYRow.

returns an ObitTableIDI_ARRAY_GEOMETRYRow*. in = object to reference

#define ObitTableIDI_ARRAY_GEOMETRYRowUnref in   )     ObitUnref (in)
 

Macro to unreference (and possibly destroy) an ObitTableIDI_ARRAY_GEOMETRYRow returns an ObitTableIDI_ARRAY_GEOMETRYRow*.

in = object to unreference

#define ObitTableIDI_ARRAY_GEOMETRYUnref in   )     ObitUnref (in)
 

Macro to unreference (and possibly destroy) an ObitTableIDI_ARRAY_GEOMETRY returns an ObitTableIDI_ARRAY_GEOMETRY*.

in = object to unreference


Function Documentation

ObitTableIDI_ARRAY_GEOMETRY* newObitTableIDI_ARRAY_GEOMETRY gchar *  name  ) 
 

Public: Constructor.

Initializes class if needed on first call.

Parameters:
name An optional name for the object.
Returns:
the new object.

ObitTableIDI_ARRAY_GEOMETRYRow* newObitTableIDI_ARRAY_GEOMETRYRow ObitTableIDI_ARRAY_GEOMETRY table  ) 
 

Public: Constructor.

If table is open and for write, the row is attached to the buffer Initializes Row class if needed on first call.

Parameters:
name An optional name for the object.
Returns:
the new object.

ObitTableIDI_ARRAY_GEOMETRY* newObitTableIDI_ARRAY_GEOMETRYValue gchar *  name,
ObitData file,
glong *  ver,
ObitIOAccess  access,
oint  no_band,
oint  numOrb,
ObitErr err
 

Public: Constructor from values.

Creates a new table structure and attaches to the TableList of file. If the specified table already exists then it is returned. Initializes class if needed on first call. Forces an update of any disk resident structures (e.g. AIPS header).

Parameters:
name An optional name for the object.
file ObitData which which the table is to be associated.
ver Table version number. 0=> add higher, value used returned
access access (OBIT_IO_ReadOnly, means do not create if it doesn't exist.
no_band Number of frequency bands (IF)
numOrb Number of orbital parameters
err Error stack, returns if not empty.
Returns:
the new object, NULL on failure.

void ObitTableIDI_ARRAY_GEOMETRYClassInit void   ) 
 

Public: Class initializer.

ObitTableIDI_ARRAY_GEOMETRY* ObitTableIDI_ARRAY_GEOMETRYClone ObitTableIDI_ARRAY_GEOMETRY in,
ObitTableIDI_ARRAY_GEOMETRY out
 

Public: Copy (shallow) constructor.

ObitIOCode ObitTableIDI_ARRAY_GEOMETRYClose ObitTableIDI_ARRAY_GEOMETRY in,
ObitErr err
 

Public: Close file and become inactive.

Parameters:
in Pointer to object to be closed.
err ObitErr for reporting errors.
Returns:
error code, OBIT_IO_OK=> OK

ObitTableIDI_ARRAY_GEOMETRY* ObitTableIDI_ARRAY_GEOMETRYConvert ObitTable in  ) 
 

Public: Convert an ObitTable to an ObitTableIDI_ARRAY_GEOMETRY.

New object will have references to members of in.

Parameters:
in The object to copy, will still exist afterwards and should be Unrefed if not needed.
Returns:
pointer to the new object.

ObitTableIDI_ARRAY_GEOMETRY* ObitTableIDI_ARRAY_GEOMETRYCopy ObitTableIDI_ARRAY_GEOMETRY in,
ObitTableIDI_ARRAY_GEOMETRY out,
ObitErr err
 

Public: Copy (deep) constructor.

Copies are made of complex members including disk files; these will be copied applying whatever selection is associated with the input. Objects should be closed on input and will be closed on output. In order for the disk file structures to be copied, the output file must be sufficiently defined that it can be written. The copy will be attempted but no errors will be logged until both input and output have been successfully opened. ObitInfoList and ObitThread members are only copied if the output object didn't previously exist. Parent class members are included but any derived class info is ignored.

Parameters:
in The object to copy
out An existing object pointer for output or NULL if none exists.
err Error stack, returns if not empty.
Returns:
pointer to the new object.

gconstpointer ObitTableIDI_ARRAY_GEOMETRYGetClass void   ) 
 

Public: ClassInfo pointer.

Returns:
pointer to the class structure.

ObitIOCode ObitTableIDI_ARRAY_GEOMETRYOpen ObitTableIDI_ARRAY_GEOMETRY in,
ObitIOAccess  access,
ObitErr err
 

Public: Create ObitIO structures and open file.

The image descriptor is read if OBIT_IO_ReadOnly or OBIT_IO_ReadWrite and written to disk if opened OBIT_IO_WriteOnly. After the file has been opened the member, buffer is initialized for reading/storing the table unless member bufferSize is <0. If the requested version ("Ver" in InfoList) is 0 then the highest numbered table of the same type is opened on Read or Read/Write, or a new table is created on on Write. The file etc. info should have been stored in the ObitInfoList:

  • "FileType" OBIT_int scalar = OBIT_IO_FITS (AIPS not allowed) for file type (see class documentation for details).
  • "nRowPIO" OBIT_int scalar = Maximum number of table rows per transfer, this is the target size for Reads (may be fewer) and is used to create buffers.
    Parameters:
    in Pointer to object to be opened.
    access access (OBIT_IO_ReadOnly,OBIT_IO_ReadWrite, or OBIT_IO_WriteOnly). If OBIT_IO_WriteOnly any existing data in the output file will be lost.
    err ObitErr for reporting errors.
    Returns:
    return code, OBIT_IO_OK=> OK

ObitIOCode ObitTableIDI_ARRAY_GEOMETRYReadRow ObitTableIDI_ARRAY_GEOMETRY in,
glong  iIDI_ARRAY_GEOMETRYRow,
ObitTableIDI_ARRAY_GEOMETRYRow row,
ObitErr err
 

Public: Read a table row.

Scalar values are copied but for array values, pointers into the data array are returned.

Parameters:
in Table to read
iIDI_ARRAY_GEOMETRYRow Row number, -1 -> next
row Table Row structure to receive data
err ObitErr for reporting errors.
Returns:
return code, OBIT_IO_OK=> OK

void ObitTableIDI_ARRAY_GEOMETRYRowClassInit void   ) 
 

Public: Row Class initializer.

gconstpointer ObitTableIDI_ARRAY_GEOMETRYRowGetClass void   ) 
 

Public: ClassInfo pointer.

Returns:
pointer to the Row class structure.

void ObitTableIDI_ARRAY_GEOMETRYSetRow ObitTableIDI_ARRAY_GEOMETRY in,
ObitTableIDI_ARRAY_GEOMETRYRow row,
ObitErr err
 

Public: Init a table row for write.

This is only useful prior to filling a row structure in preparation . for a WriteRow operation. Array members of the Row structure are . pointers to independently allocated memory, this routine allows using . the table IO buffer instead of allocating yet more memory.. This routine need only be called once to initialize a Row structure for write..

Parameters:
in Table with buffer to be written
row Table Row structure to attach
err ObitErr for reporting errors.

ObitIOCode ObitTableIDI_ARRAY_GEOMETRYWriteRow ObitTableIDI_ARRAY_GEOMETRY in,
glong  iIDI_ARRAY_GEOMETRYRow,
ObitTableIDI_ARRAY_GEOMETRYRow row,
ObitErr err
 

Public: Write a table row.

Before calling this routine, the row structure needs to be initialized and filled with data. The array members of the row structure are pointers to independently allocated memory. These pointers can be set to the correct table buffer locations using ObitTableIDI_ARRAY_GEOMETRYSetRow

Parameters:
in Table to read
iIDI_ARRAY_GEOMETRYRow Row number, -1 -> next
row Table Row structure containing data
err ObitErr for reporting errors.
Returns:
return code, OBIT_IO_OK=> OK


Generated on Fri Aug 31 22:13:08 2007 for Obit by  doxygen 1.3.9.1