#include "ObitData.h"
#include "ObitOTFDesc.h"
#include "ObitOTFSel.h"
#include "ObitOTFArrayGeom.h"
#include "ObitTableList.h"
Go to the source code of this file.
Classes | |
struct | ObitOTF |
ObitOTF Class structure. More... | |
struct | ObitOTFClassInfo |
ClassInfo Structure. More... | |
Defines | |
#define | ObitOTFUnref(in) ObitUnref (in) |
Macro to unreference (and possibly destroy) an ObitOTF returns a ObitOTF*. | |
#define | ObitOTFRef(in) ObitRef (in) |
Macro to reference (update reference count) an ObitOTF. | |
#define | ObitOTFIsA(in) ObitIsA (in, ObitOTFGetClass()) |
Macro to determine if an object is the member of this or a derived class. | |
#define | ObitOTFSetFITS(in, nsamp, disk, file, err) |
Convenience Macro to define OTF I/O to a FITS file. | |
Typedefs | |
typedef ObitOTF *(* | newObitOTFScratchFP )(ObitOTF *in, ObitErr *err) |
Typedef for definition of class pointer structure. | |
typedef void(* | ObitOTFFullInstantiateFP )(ObitOTF *in, gboolean exist, ObitErr *err) |
typedef gboolean(* | ObitOTFSameFP )(ObitOTF *in1, ObitOTF *in2, ObitErr *err) |
typedef ObitIOCode(* | ObitOTFIOSetFP )(ObitOTF *in, ObitErr *err) |
typedef ObitTable *(* | newObitOTFTableFP )(ObitOTF *in, ObitIOAccess access, gchar *tabType, glong *tabver, ObitErr *err) |
typedef ObitIOCode(* | ObitOTFZapTableFP )(ObitOTF *in, gchar *tabType, glong tabVer, ObitErr *err) |
typedef ObitIOCode(* | ObitOTFCopyTablesFP )(ObitOTF *in, ObitOTF *out, gchar **exclude, gchar **include, ObitErr *err) |
typedef ObitIOCode(* | ObitOTFUpdateTablesFP )(ObitOTF *in, ObitErr *err) |
Functions | |
void | ObitOTFClassInit (void) |
Public: Class initializer. | |
ObitOTF * | newObitOTF (gchar *name) |
Public: Constructor. | |
ObitOTF * | newObitOTFScratch (ObitOTF *in, ObitErr *err) |
Public: Copy Constructor for scratch file. | |
void | ObitOTFFullInstantiate (ObitOTF *in, gboolean exist, ObitErr *err) |
Public: Fully instantiate. | |
gconstpointer | ObitOTFGetClass (void) |
Public: ClassInfo pointer. | |
void | ObitOTFRename (ObitOTF *in, ObitErr *err) |
Public: Rename underlying structures. | |
void | ObitIOOTFFITSRename (ObitIO *in, ObitInfoList *info, ObitErr *err) |
Public: Rename underlying structures. | |
ObitOTF * | ObitOTFZap (ObitOTF *in, ObitErr *err) |
Public: Delete underlying structures. | |
ObitOTF * | ObitOTFCopy (ObitOTF *in, ObitOTF *out, ObitErr *err) |
Public: Copy (deep) constructor. | |
ObitOTF * | ObitOTFAver (ObitOTF *in, ObitOTF *out, ObitErr *err) |
Public: Copy (deep) constructor averaging over frequency. | |
void | ObitOTFClone (ObitOTF *in, ObitOTF *out, ObitErr *err) |
Public: Copy structure only - no data copy. | |
gboolean | ObitOTFSame (ObitOTF *in1, ObitOTF *in2, ObitErr *err) |
Public: Do two OTFs have the same underlying structures?. | |
ObitIOCode | ObitOTFConcat (ObitOTF *in, ObitOTF *out, ObitErr *err) |
Public: Concatenate two OTF, (in at end of out). | |
ObitIOCode | ObitOTFOpen (ObitOTF *in, ObitIOAccess access, ObitErr *err) |
Public: Create ObitIO structures and open file. | |
ObitIOCode | ObitOTFClose (ObitOTF *in, ObitErr *err) |
Public: Close file and become inactive. | |
ObitIOCode | ObitOTFIOSet (ObitOTF *in, ObitErr *err) |
Public: Reset IO to start of file. | |
ObitIOCode | ObitOTFRead (ObitOTF *in, gfloat *data, ObitErr *err) |
Public: Read specified data. | |
ObitIOCode | ObitOTFReadSelect (ObitOTF *in, gfloat *data, ObitErr *err) |
Public: Read select, edit, calibrate specified data. | |
ObitIOCode | ObitOTFWrite (ObitOTF *in, gfloat *data, ObitErr *err) |
Public: Write specified data. | |
ObitTable * | newObitOTFTable (ObitOTF *in, ObitIOAccess access, gchar *tabType, glong *tabver, ObitErr *err) |
Public: Return an associated Table. | |
ObitIOCode | ObitOTFZapTable (ObitOTF *in, gchar *tabType, glong tabVer, ObitErr *err) |
Public: Destroy an associated Table. | |
ObitIOCode | ObitOTFCopyTables (ObitOTF *in, ObitOTF *out, gchar **exclude, gchar **include, ObitErr *err) |
Public: Copy associated Tables. | |
ObitIOCode | ObitOTFUpdateTables (ObitOTF *in, ObitErr *err) |
Public: Update disk resident tables information. | |
void | ObitOTFWriteKeyword (ObitOTF *in, gchar *name, ObitInfoType type, gint32 *dim, gconstpointer data, ObitErr *err) |
Public: Write header keyword. | |
void | ObitOTFReadKeyword (ObitOTF *in, gchar *name, ObitInfoType *type, gint32 *dim, gpointer data, ObitErr *err) |
Public: Read header keyword. | |
glong | ObitOTFNumRecScan (ObitOTF *inOTF) |
Public: How many records in current scan? |
This class contains single dish data and allows access. An ObitOTF 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 newObitOTFTable function allows access to these tables. ObitOTF is a derived class from class ObitData. Only FITS data are supported.
The following apply to all types of files:
A copy of a pointer to an ObitOTF should always be made using the ObitOTFRef function which updates the reference count in the object. Then whenever freeing an ObitOTF or changing a pointer, the function ObitOTFUnref will decrement the reference count and destroy the object when the reference count hits 0. There is no explicit destructor.
|
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 |
|
Macro to reference (update reference count) an ObitOTF. returns a ObitOTF*. in = object to reference |
|
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] = nsamp; in->info->work[2]= disk; \ ObitInfoListPut (in->info, "FileType", OBIT_int, \ in->info->dim, (gpointer)&in->info->work[0], err);\ ObitInfoListPut (in->info, "nRecPIO", 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 Sets values on ObitInfoList on input object.
|
|
Macro to unreference (and possibly destroy) an ObitOTF returns a ObitOTF*. in = object to unreference |
|
Typedef for definition of class pointer structure.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Public: Constructor. Initializes class if needed on first call.
|
|
Public: Copy Constructor for scratch file. A scratch OTF is more or less the same as a normal OTF 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.
|
|
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.
|
|
Public: Rename underlying structures. New name information is given on the info member:
|
|
Public: Copy (deep) constructor averaging over frequency. 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. If the contents of the 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:
|
|
Public: Class initializer.
|
|
Public: Copy structure only - no data copy. Parent class members are included but any derived class info is ignored.
|
|
Public: Close file and become inactive.
|
|
Public: Concatenate two OTF, (in at end of out).
|
|
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. If the contents of the 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:
|
|
Public: Copy associated Tables.
|
|
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
|
|
Public: ClassInfo pointer.
|
|
Public: Reset IO to start of file.
|
|
Public: How many records in current scan? Only returns valid results after reading has begun. If there is no selection in effect then the size of the file is returned.
|
|
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 ObitOTFSel 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:
|
|
Public: Read specified data. The ObitOTFDesc maintains the current location in the file. The number read will be mySel->nRecPIO (until the end of the selected range of records in which case it will be smaller). The first visibility number after a read is myDesc->firstRec and the number of visibilities is myDesc->numRecBuff.
|
|
Public: Read header keyword.
|
|
Public: Read select, edit, calibrate specified data. The number read will be mySel->nRecPIO (until the end of the selected range of record in which case it will be smaller). The first record number after a read is myDesc->firstRec and the number of records is myDesc->numRecBuff.
|
|
Public: Rename underlying structures. For FITS files:
|
|
Public: Do two OTFs have the same underlying structures?. This test is done using values entered into the #ObitInfoList in case the object has not yet been opened.
|
|
Public: Update disk resident tables information.
|
|
Public: Write specified data. The data in the buffer will be written starting at record myDesc->firstRec and the number written will be myDesc->numRecBuff which should not exceed mySel->nRecPIO if the internal buffer is used. myDesc->firstRec will be maintained and need not be changed for sequential writing.
|
|
Public: Write header keyword.
|
|
Public: Delete underlying structures.
|
|
Public: Destroy an associated Table. The table is removed from the ObitTableList
|