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

ObitUV.h File Reference

ObitUV uv data class definition. More...

#include "ObitData.h"
#include "ObitUVDesc.h"
#include "ObitUVSel.h"
#include "ObitTableList.h"
#include "ObitDef.h"
#include "ObitDataDef.h"
#include "ObitClassDef.h"
#include "ObitDataClassDef.h"

Go to the source code of this file.

Classes

struct  ObitUV
 ObitUV Class structure. More...
struct  ObitUVClassInfo
 ClassInfo Structure. More...

Defines

#define ObitUVUnref(in)   ObitUnref (in)
 Macro to unreference (and possibly destroy) an ObitUV returns a ObitUV*.
#define ObitUVRef(in)   ObitRef (in)
 Macro to reference (update reference count) an ObitUV.
#define ObitUVIsA(in)   ObitIsA (in, ObitUVGetClass())
 Macro to determine if an object is the member of this or a derived class.
#define ObitUVSetFITS(in, nvis, disk, file, err)
 Convenience Macro to define UV I/O to a FITS file.
#define ObitUVSetAIPS(in, nvis, disk, cno, user, err)
 Convenience Macro to define UV I/O to an AIPS file.
#define ObitUVCpxDivide(in1, in2, out, work)
 Divide one complex number by another.
#define ObitUVWtCpxDivide(in1, in2, out, work)
 Divide one complex number with weight by another.

Typedefs

typedef ObitUV *(* newObitUVScratchFP )(ObitUV *in, ObitErr *err)
typedef void(* ObitUVFullInstantiateFP )(ObitUV *in, gboolean exist, ObitErr *err)
typedef gboolean(* ObitUVSameFP )(ObitUV *in1, ObitUV *in2, ObitErr *err)
typedef ObitIOCode(* ObitUVReadFP )(ObitUV *in, gfloat *data, ObitErr *err)
typedef ObitIOCode(* ObitUVReadSelectFP )(ObitUV *in, gfloat *data, ObitErr *err)
typedef ObitIOCode(* ObitUVWriteFP )(ObitUV *in, gfloat *data, ObitErr *err)
typedef ObitIOCode(* ObitUVRewritefp )(ObitUV *in, gfloat *data, ObitErr *err)
typedef ObitTable *(* newObitUVTableFP )(ObitUV *in, ObitIOAccess access, gchar *tabType, glong *tabver, ObitErr *err)
typedef ObitIOCode(* ObitUVZapTableFP )(ObitUV *in, gchar *tabType, glong tabVer, ObitErr *err)
typedef ObitIOCode(* ObitUVCopyTablesFP )(ObitUV *in, ObitUV *out, gchar **exclude, gchar **include, ObitErr *err)
typedef ObitIOCode(* ObitUVUpdateTablesFP )(ObitUV *in, ObitErr *err)
typedef glong(* ObitUVChanSelFP )(ObitUV *in, gint32 *dim, gint *IChanSel, ObitErr *err)

Functions

void ObitUVClassInit (void)
 Public: Class initializer.
ObitUVnewObitUV (gchar *name)
 Public: Constructor.
ObitUVnewObitUVScratch (ObitUV *in, ObitErr *err)
 Public: Copy Constructor for scratch file.
void ObitUVFullInstantiate (ObitUV *in, gboolean exist, ObitErr *err)
 Public: Fully instantiate.
gconstpointer ObitUVGetClass (void)
 Public: ClassInfo pointer.
ObitUVObitUVZap (ObitUV *in, ObitErr *err)
 Public: Delete underlying structures.
void ObitUVRename (ObitUV *in, ObitErr *err)
 Public: Rename underlying structures.
ObitUVObitUVCopy (ObitUV *in, ObitUV *out, ObitErr *err)
 Public: Copy (deep) constructor.
void ObitUVClone (ObitUV *in, ObitUV *out, ObitErr *err)
 Public: Copy structure.
gboolean ObitUVSame (ObitUV *in1, ObitUV *in2, ObitErr *err)
 Public: Do two UVs have the same underlying structures?.
ObitIOCode ObitUVOpen (ObitUV *in, ObitIOAccess access, ObitErr *err)
 Public: Create ObitIO structures and open file.
ObitIOCode ObitUVClose (ObitUV *in, ObitErr *err)
 Public: Close file and become inactive.
ObitIOCode ObitUVIOSet (ObitUV *in, ObitErr *err)
 Public: Reset IO to start of file.
ObitIOCode ObitUVRead (ObitUV *in, gfloat *data, ObitErr *err)
 Public: Read specified data.
ObitIOCode ObitUVReadSelect (ObitUV *in, gfloat *data, ObitErr *err)
 Public: Read select, edit, calibrate specified data.
ObitIOCode ObitUVWrite (ObitUV *in, gfloat *data, ObitErr *err)
 Public: Write specified data.
ObitIOCode ObitUVRewrite (ObitUV *in, gfloat *data, ObitErr *err)
 Public: Rewrite specified data.
ObitTablenewObitUVTable (ObitUV *in, ObitIOAccess access, gchar *tabType, glong *tabver, ObitErr *err)
 Public: Return an associated Table.
ObitIOCode ObitUVZapTable (ObitUV *in, gchar *tabType, glong tabVer, ObitErr *err)
 Public: Destroy an associated Table.
ObitIOCode ObitUVCopyTables (ObitUV *in, ObitUV *out, gchar **exclude, gchar **include, ObitErr *err)
 Public: Copy associated Tables.
ObitIOCode ObitUVUpdateTables (ObitUV *in, ObitErr *err)
 Public: Update disk resident tables information.
void ObitUVGetFreq (ObitUV *in, ObitErr *err)
 Public: Get Frequency arrays.
ObitIOCode ObitUVGetSubA (ObitUV *in, ObitErr *err)
 Public: Obtains Subarray info for an ObitUV.
void ObitUVGetRADec (ObitUV *uvdata, gdouble *ra, gdouble *dec, ObitErr *err)
 Public: Get source position.
void ObitUVGetSouInfo (ObitUV *uvdata, ObitErr *err)
 Public: Get single source info.
void ObitUVWriteKeyword (ObitUV *in, gchar *name, ObitInfoType type, gint32 *dim, gconstpointer data, ObitErr *err)
 Public: Write header keyword.
void ObitUVReadKeyword (ObitUV *in, gchar *name, ObitInfoType *type, gint32 *dim, gpointer data, ObitErr *err)
 Public: Read header keyword.
glong ObitUVChanSel (ObitUV *in, gint32 *dim, gint *IChanSel, ObitErr *err)
 Public: Channel selection in FG table.


Detailed Description

ObitUV uv data class definition.

This class is derived from the ObitData class. Related functions are in the ObitUVUtil , ObitUVEdit and ObitUVPeelUtil modules.

This class contains interoferometric data and allows access. An ObitUV is the front end to a persistent disk resident structure. There maybe (usually are) associated tables which either describe the data or contain calibration and/or editing information. These associated tables are listed in an ObitTableList member and the newObitUVTable function allows access to these tables. Both FITS (as Tables) and AIPS cataloged data are supported. The knowledge of underlying classes should be limited to private function #ObitUVSetupIO in ObitUV.c

Specifying desired data transfer parameters

The desired data transfers are specified in the member ObitInfoList. There are separate sets of parameters used to specify the FITS or AIPS data files. Data is read and written as arrays of floats, data compressed on the disk is compressed/uncompressed on the fly. 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). To specify whether the underlying data files are FITS or AIPS The following apply to both types of files:

FITS files

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

AIPS files

The ObitAIPS class must be initialized before accessing AIPS files; this uses ObitAIPSClassInit. The convenience macro ObitUVSetAIPS simplifies specifying the desired data. For accessing AIPS files, the following entries in the ObitInfoList are used:

Creators and Destructors

An ObitUV can be created using newObitUV which allows specifying a name for the object. This name is used to label messages. The copy constructors ObitUVClone and ObitUVCopy make shallow and deep copies of an extant ObitUV. If the output ObitUV has previously been specified, including its disk resident information, then ObitUVCopy will copy the disk resident as well as the memory resident information. Also, any associated tables will be copied.

A copy of a pointer to an ObitUV should always be made using the ObitUVRef function which updates the reference count in the object. Then whenever freeing an ObitUV or changing a pointer, the function ObitUVUnref will decrement the reference count and destroy the object when the reference count hits 0. There is no explicit destructor.

I/O

Visibility data is available after an input object is "Opened" and "Read". "Read Select" also allows specifying the data to be read as well as optional calibration and editing to be applied as the data is read. I/O optionally uses a buffer attached to the ObitUV or some external location. Data consists of a set of "random parameters" (u,v,w time, baseline, etc) and a rectangular data array of complex visibilities with a weight. The order, presence and size of components of the data are described in an ObitUVDesc object which also tells which visibility numbers are in the buffer. To Write an ObitUV, create it, open it, and write. The object should be closed to ensure all data is flushed to disk. Deletion of an ObitUV after its final unreferencing will automatically close it.

Selection, Editing and Calibration

All IO supports (where appropriate) data selection, editing an calibration. These are controlled by information on the ObitUV data object's info member, details are given in the ObitUVSel class documentation.

Define Documentation

#define ObitUVCpxDivide in1,
in2,
out,
work   ) 
 

Value:

G_STMT_START{      \
       work[2] = in2[0]*in2[0] + in2[1]*in2[1];               \
       if (work[2]==0.0) work[2] = 1;                         \
       work[0] = in1[0]/work[2]; work[1] = in1[1]/work[2];    \
       out[0] = work[0]*in2[0] + work[1]*in2[1];              \
       out[1] = work[1]*in2[0] - work[0]*in2[1];              \
     }G_STMT_END
Divide one complex number by another.

  • in1 = Numerator complex (real,imaginary)
  • in2 = Denominator complex
  • out = Output complex value, can be in1 (0,0) on zero divide
  • work = Array of 3 elements like in...

#define ObitUVIsA in   )     ObitIsA (in, ObitUVGetClass())
 

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 ObitUVRef in   )     ObitRef (in)
 

Macro to reference (update reference count) an ObitUV.

returns a ObitUV*. in = object to reference

#define ObitUVSetAIPS in,
nvis,
disk,
cno,
user,
err   ) 
 

Value:

G_STMT_START{     \
       in->info->dim[0]=1; in->info->dim[1]=1; in->info->dim[2]=1;  \
       in->info->dim[3]=1; in->info->dim[4]=1;                      \
       in->info->work[0] = OBIT_IO_AIPS;                            \
       in->info->work[1]= nvis;                                     \
       ObitInfoListPut (in->info, "FileType", OBIT_int,             \
                  in->info->dim, (gpointer)&in->info->work[0], err);\
       ObitInfoListPut (in->info, "nVisPIO", OBIT_int, in->info->dim,\
                 (gpointer)&in->info->work[1], err);                \
       in->info->dim[0] = 1;                                        \
       ObitInfoListPut (in->info, "Disk", OBIT_int,                 \
                 in->info->dim, (gpointer)&disk, err);              \
       ObitInfoListPut (in->info, "DISK", OBIT_int,                 \
                 in->info->dim, (gpointer)&disk, err);              \
       ObitInfoListPut (in->info, "CNO", OBIT_int,                  \
                 in->info->dim, (gpointer)&cno, err);               \
       ObitInfoListPut (in->info, "User", OBIT_int,                 \
                 in->info->dim, (gpointer)&user, err);              \
     }G_STMT_END
Convenience Macro to define UV I/O to an AIPS file.

Sets values on ObitInfoList on input object.

  • in = ObitUV to specify i/O for.
  • nvis = Max. Number of visibilities per read.
  • disk = AIPS disk number
  • cno = catalog slot number
  • user = User id number
  • err = ObitErr to receive error messages.

#define ObitUVSetFITS in,
nvis,
disk,
file,
err   ) 
 

Value:

G_STMT_START{         \
       in->info->dim[0]=1; in->info->dim[1]=1; in->info->dim[2]=1;  \
       in->info->dim[3]=1; in->info->dim[4]=1;                      \
       in->info->work[0] = OBIT_IO_FITS;                            \
       in->info->work[1] = nvis; in->info->work[2]= disk;           \
       ObitInfoListPut (in->info, "FileType", OBIT_int,             \
                  in->info->dim, (gpointer)&in->info->work[0], err);\
       ObitInfoListPut (in->info, "nVisPIO", OBIT_int,              \
                  in->info->dim, (gpointer)&in->info->work[1], err);\
       ObitInfoListPut (in->info, "IOBy", OBIT_int, in->info->dim,  \
                 (gpointer)&in->info->work[1], err);                \
       in->info->dim[0] = 1;                                        \
       ObitInfoListPut (in->info, "Disk", OBIT_int,                 \
                 in->info->dim, (gpointer)&in->info->work[2], err); \
       in->info->dim[0] = strlen(file);                             \
       ObitInfoListPut (in->info, "FileName", OBIT_string,          \
                 in->info->dim, (gpointer)file, err);               \
     }G_STMT_END
Convenience Macro to define UV I/O to a FITS file.

Sets values on ObitInfoList on input object.

  • in = ObitUV to specify i/O for.
  • nvis = Max. Number of visibilities per read.
  • disk = FITS disk number
  • file = Specified FITS file name.
  • err = ObitErr to receive error messages.

#define ObitUVUnref in   )     ObitUnref (in)
 

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

in = object to unreference

#define ObitUVWtCpxDivide in1,
in2,
out,
work   ) 
 

Value:

G_STMT_START{    \
       if ((in1[2]<=0.0) || (in2[2]<=0.0)) { /* bad */        \
         out[0] = out[1] = out[2] = 0.0;                      \
       } else { /* do division */                             \
         work[2] = in2[0]*in2[0] + in2[1]*in2[1];             \
         if (work[2]==0.0) {out[0] = out[1] = out[2] = 0.0;   \
         } else {  /* OK */                                   \
           work[0] = in1[0]/work[2]; work[1] = in1[1]/work[2];\
           out[0] = work[0]*in2[0] + work[1]*in2[1];          \
           out[1] = work[1]*in2[0] - work[0]*in2[1];          \
           out[2] *= sqrt(work[2]);                           \
         }                                                    \
       }                                                      \
     }G_STMT_END
Divide one complex number with weight by another.

Sets values on ObitInfoList on input object.

  • in1 = Numerator complex (real,imaginary,weight)
  • in2 = Denominator complex
  • out = Output complex value, can be in1, (0,0,0) on zero divide
  • work = Array of 3 elements like in...


Typedef Documentation

typedef ObitUV*(* newObitUVScratchFP)(ObitUV *in, ObitErr *err)
 

typedef ObitTable*(* newObitUVTableFP)(ObitUV *in, ObitIOAccess access, gchar *tabType, glong *tabver, ObitErr *err)
 

typedef glong(* ObitUVChanSelFP)(ObitUV *in, gint32 *dim, gint *IChanSel, ObitErr *err)
 

typedef ObitIOCode(* ObitUVCopyTablesFP)(ObitUV *in, ObitUV *out, gchar **exclude, gchar **include, ObitErr *err)
 

typedef void(* ObitUVFullInstantiateFP)(ObitUV *in, gboolean exist, ObitErr *err)
 

typedef ObitIOCode(* ObitUVReadFP)(ObitUV *in, gfloat *data, ObitErr *err)
 

typedef ObitIOCode(* ObitUVReadSelectFP)(ObitUV *in, gfloat *data, ObitErr *err)
 

typedef ObitIOCode(* ObitUVRewritefp)(ObitUV *in, gfloat *data, ObitErr *err)
 

typedef gboolean(* ObitUVSameFP)(ObitUV *in1, ObitUV *in2, ObitErr *err)
 

typedef ObitIOCode(* ObitUVUpdateTablesFP)(ObitUV *in, ObitErr *err)
 

typedef ObitIOCode(* ObitUVWriteFP)(ObitUV *in, gfloat *data, ObitErr *err)
 

typedef ObitIOCode(* ObitUVZapTableFP)(ObitUV *in, gchar *tabType, glong tabVer, ObitErr *err)
 


Function Documentation

ObitUV* newObitUV gchar *  name  ) 
 

Public: Constructor.

Initializes class if needed on first call.

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

ObitUV* newObitUVScratch ObitUV in,
ObitErr err
 

Public: Copy Constructor for scratch file.

A scratch UV is more or less the same as a normal UV except that it is automatically deleted on the final unreference. The output will have the underlying files of the same type as in already allocated. The object is defined but the underlying structures are not created.

Parameters:
in The object to copy
err Error stack, returns if not empty.
Returns:
pointer to the new object.

ObitTable* newObitUVTable ObitUV in,
ObitIOAccess  access,
gchar *  tabType,
glong *  tabVer,
ObitErr err
 

Public: Return an associated Table.

If such an object exists, a reference to it is returned, else a new object is created and entered in the ObitTableList.

Parameters:
in Pointer to object with associated tables. This MUST have been opened before this call.
access access (OBIT_IO_ReadOnly,OBIT_IO_ReadWrite, or OBIT_IO_WriteOnly). This is used to determine defaulted version number and a different value may be used for the actual Open.
tabType The table type (e.g. "AIPS CC").
tabVer Desired version number, may be zero in which case the highest extant version is returned for read and the highest+1 for write.
err ObitErr for reporting errors.
Returns:
pointer to created ObitTable, NULL on failure.

glong ObitUVChanSel ObitUV in,
gint32 *  dim,
gint *  IChanSel,
ObitErr err
 

Public: Channel selection in FG table.

If a flag table is currently selected it is copied to a new AIPS FG table on the uv data and channel selection added. If no flag table is selected then an new table is created. The new flagging entries includ all channels and IFs in the range specified in the UVSel values of BChan, EChan, BIF and EIF that are NOT specified in the IChanSel array

Parameters:
in UV with selection to which the new flag table is to be attached.
dim Dimensionality of IChanSel
IChanSel Channel selection in groups of 4 values: Sets of channels are selected by groups of 4 parameters: [0] 1-rel start channel number in block (def . 1) [1] 1-rel end channel number, (def. to end) [2] channel increment [3] 1-rel IF number (def all) [5,0,2,1] means every other channel from 5 to the highest in IF 1. All zeroes means all channels and all IFs selected by BChan, EChan, BIF, EIF. List terminated by group of 4 zeroes.
err ObitErr for reporting errors.
Returns:
the AIPS FG table version number, -1 on no selection or failure.

void ObitUVClassInit void   ) 
 

Public: Class initializer.

void ObitUVClone ObitUV in,
ObitUV out,
ObitErr err
 

Public: Copy structure.

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.

ObitIOCode ObitUVClose ObitUV 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

ObitUV* ObitUVCopy ObitUV in,
ObitUV 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 does not apply any selection/calibration/translation. The copy will be attempted but no errors will be logged until both input and output have been successfully opened. If the contents of the uv data are copied, all associated tables are copied first. 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. The file etc. info should have been stored in the ObitInfoList:

  • "doCalSelect" OBIT_boolean scalar if TRUE, calibrate/select/edit input data.
    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.

ObitIOCode ObitUVCopyTables ObitUV in,
ObitUV out,
gchar **  exclude,
gchar **  include,
ObitErr err
 

Public: Copy associated Tables.

Parameters:
in The ObitUV with tables to copy.
out An ObitUV to copy the tables to, old ones replaced.
exclude a NULL termimated list of table types NOT to copy. If NULL, use include
include a NULL termimated list of table types to copy. ignored if exclude nonNULL.
err ObitErr for reporting errors.
Returns:
return code, OBIT_IO_OK=> OK

void ObitUVFullInstantiate ObitUV in,
gboolean  exist,
ObitErr err
 

Public: Fully instantiate.

If object has previously been opened, as demonstrated by the existance of its myIO member, this operation is a no-op. Virtual - calls actual class member

Parameters:
in Pointer to object
exist TRUE if object should previously exist, else FALSE
err ObitErr for reporting errors.
Returns:
error code, OBIT_IO_OK=> OK

gconstpointer ObitUVGetClass void   ) 
 

Public: ClassInfo pointer.

Returns:
pointer to the class structure.

void ObitUVGetFreq ObitUV in,
ObitErr err
 

Public: Get Frequency arrays.

These are the myDesc->freqArr and myDesc->fscale array members. Uses source dependent frequency info if available from in->info

  • "SouIFOff" OBIT_double (nif,1,1) Source frequency offset per IF
  • "SouBW" OBIT_double (1,1,1) Channel Bandwidth
Parameters:
in The ObitUV with descriptor to update.
err ObitErr for reporting errors.

void ObitUVGetRADec ObitUV uvdata,
gdouble *  ra,
gdouble *  dec,
ObitErr err
 

Public: Get source position.

If single source file get from uvDesc, if multisource read from SU table Checks that only one source selected. Also fill in position like information in the descriptor for multi-source datasets

Parameters:
uvdata Data object from which position sought
ra [out] RA at mean epoch (deg)
dec [out] Dec at mean epoch (deg)
err Error stack, returns if not empty.

void ObitUVGetSouInfo ObitUV uvdata,
ObitErr err
 

Public: Get single source info.

Also fill in position like information in the descriptor for multi-source datasets If source table is read, the source dependent IF offsets and bandwidth are written to the in->info object as

  • "SouIFOff" OBIT_double (nif,1,1) Source frequency offset per IF
  • "SouBW" OBIT_double (1,1,1) Bandwidth
Parameters:
uvdata Data object from which info sought
err Error stack, returns if not empty.

ObitIOCode ObitUVGetSubA ObitUV in,
ObitErr err
 

Public: Obtains Subarray info for an ObitUV.

Parameters:
in Object to obtain data from and with descriptors to update. Updated on in->myDesc and in->myIO->myDesc:
  • numSubA Number of subarrays, always >0
  • numAnt Array of maximum antenna numbers per subarray will be allocaded here and must be gfreeed when done NULL returned if no AN tables
  • maxAnt Maximum antenna number in numAnt. 0 if no AN tables.
*err ObitErr error stack.
Returns:
I/O Code OBIT_IO_OK = OK.

ObitIOCode ObitUVIOSet ObitUV in,
ObitErr err
 

Public: Reset IO to start of file.

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

ObitIOCode ObitUVOpen ObitUV in,
ObitIOAccess  access,
ObitErr err
 

Public: Create ObitIO structures and open file.

The image descriptor is read if OBIT_IO_ReadOnly, OBIT_IO_ReadCal or OBIT_IO_ReadWrite and written to disk if opened OBIT_IO_WriteOnly. If access is OBIT_IO_ReadCal then the calibration/selection/editing needed is initialized. See the ObitUVSel class for a description of the selection and calibration parameters. After the file has been opened the member, buffer is initialized for reading/storing the data unless member bufferSize is <0. The file etc. info should have been stored in the ObitInfoList:

  • "FileType" OBIT_int scalar = OBIT_IO_FITS or OBIT_IO_AIPS for file type.
  • "nVisPIO" OBIT_int scalar = Maximum number of visibilities per transfer, this is the target size for Reads (may be fewer) and is used to create buffers.
  • "Compress" Obit_bool scalar = TRUE indicates output is to be in compressed format. (access=OBIT_IO_WriteOnly only).
  • "SubScanTime" Obit_float scalar [Optional] if given, this is the desired time (day) of a sub scan. This is used by the selector to suggest a value close to this which will evenly divided the current scan. See ObitUVSelSubScan
    Parameters:
    in Pointer to object to be opened.
    access access (OBIT_IO_ReadOnly,OBIT_IO_ReadWrite, OBIT_IO_ReadCal 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 ObitUVRead ObitUV in,
gfloat *  data,
ObitErr err
 

Public: Read specified data.

The ObitUVDesc maintains the current location in the file. The number read will be mySel->nVisPIO (until the end of the selected range of visibilities in which case it will be smaller). The first visibility number after a read is myDesc->firstVis and the number of visibilities is myDesc->numVisBuff.

Parameters:
in Pointer to object to be read.
data pointer to buffer to write results. if NULL, use the buffer member of in.
err ObitErr for reporting errors.
Returns:
return code, OBIT_IO_OK => OK

void ObitUVReadKeyword ObitUV in,
gchar *  name,
ObitInfoType *  type,
gint32 *  dim,
gpointer  data,
ObitErr err
 

Public: Read header keyword.

Parameters:
in object to update, must be fully instantiated
name [out] The label (keyword) of the information. Max 8 char
type [out] Data type of data element (enum defined in ObitInfoList class).
dim [out] Dimensionality of datum. Only scalars and strings up to 8 char are supported Note: for strings, the first element is the length in char.
data [out] Pointer to the data.
err ObitErr for reporting errors.

ObitIOCode ObitUVReadSelect ObitUV in,
gfloat *  data,
ObitErr err
 

Public: Read select, edit, calibrate specified data.

The number read will be mySel->nVisPIO (until the end of the selected range of visibilities in which case it will be smaller). The first visibility number after a read is myDesc->firstVis and the number of visibilities is myDesc->numVisBuff.

Parameters:
in Pointer to object to be read.
data pointer to buffer to write results. if NULL, use the buffer member of in.
err ObitErr for reporting errors.
Returns:
return code, OBIT_IO_OK => OK

void ObitUVRename ObitUV in,
ObitErr err
 

Public: Rename underlying structures.

For FITS files:

  • "newFileName" OBIT_string (?,1,1) New Name of disk file.
For AIPS:
  • "newName" OBIT_string (12,1,1) New AIPS Name Blank = don't change
  • "newClass" OBIT_string (6,1,1) New AIPS Class Blank = don't changeO
  • "newSeq" OBIT_int (1,1,1) New AIPS Sequence 0 => unique value
    Parameters:
    in Pointer to object to be renamed.
    err ObitErr for reporting errors.

ObitIOCode ObitUVRewrite ObitUV in,
gfloat *  data,
ObitErr err
 

Public: Rewrite specified data.

This routines assumes that the input UV is also being read and so the firstVis values in the UV descriptors on both in and its IO member are left unchanged. Otherwise a call to this routine is equivalent to ObitUVWrite The data in the buffer will be written starting at visibility myDesc->firstVis and the number written will be myDesc->numVisBuff which should not exceed mySel->nVisPIO if the internal buffer is used.

Parameters:
in Pointer to object to be written.
data pointer to buffer containing input data. if NULL, use the buffer member of in.
err ObitErr for reporting errors.
Returns:
return code, OBIT_IO_OK=> OK

gboolean ObitUVSame ObitUV in1,
ObitUV in2,
ObitErr err
 

Public: Do two UVs have the same underlying structures?.

This test is done using values entered into the ObitInfoList in case the object has not yet been opened.

Parameters:
in1 First object to compare
in2 Second object to compare
err ObitErr for reporting errors.
Returns:
TRUE if to objects have the same underlying structures else FALSE

ObitIOCode ObitUVUpdateTables ObitUV in,
ObitErr err
 

Public: Update disk resident tables information.

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

ObitIOCode ObitUVWrite ObitUV in,
gfloat *  data,
ObitErr err
 

Public: Write specified data.

The data in the buffer will be written starting at visibility myDesc->firstVis and the number written will be myDesc->numVisBuff which should not exceed mySel->nVisPIO if the internal buffer is used. myDesc->firstVis will be maintained and need not be changed for sequential writing. NB: If the same UV data is being both read and rewritten, use ObitUVRewrite instead of ObitUVWrite.

Parameters:
in Pointer to object to be written.
data pointer to buffer containing input data. if NULL, use the buffer member of in.
err ObitErr for reporting errors.
Returns:
return code, OBIT_IO_OK=> OK

void ObitUVWriteKeyword ObitUV in,
gchar *  name,
ObitInfoType  type,
gint32 *  dim,
gconstpointer  data,
ObitErr err
 

Public: Write header keyword.

Parameters:
in object to update, must be open during call with Write access
name The label (keyword) of the information. Max 8 char
type Data type of data element (enum defined in ObitInfoList class).
dim Dimensionality of datum. Only scalars and strings up to 8 char are allowed Note: for strings, the first element is the length in char.
data Pointer to the data.
err ObitErr for reporting errors.

ObitUV* ObitUVZap ObitUV in,
ObitErr err
 

Public: Delete underlying structures.

Parameters:
in Pointer to object to be zapped.
err ObitErr for reporting errors.
Returns:
pointer for input object, NULL if deletion successful

ObitIOCode ObitUVZapTable ObitUV in,
gchar *  tabType,
glong  tabVer,
ObitErr err
 

Public: Destroy an associated Table.

The table is removed from the ObitTableList but the external form may not be updated.

Parameters:
in Pointer to object with associated tables.
tabType The table type (e.g. "AIPS CC").
tabVer Desired version number, may be zero in which case the highest extant version is returned for read and the highest+1 for write. -1 => all versions of tabType
err ObitErr for reporting errors.
Returns:
return code, OBIT_IO_OK=> OK


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