OIFITS Merger

This module implements merging of a list of OIFITS datasets into a single dataset. More...


Files

file  oimerge.h
 Definitions for merge component of OIFITSlib.
file  oimerge.c
 Implementation of merge component of OIFITSlib.

Functions

GHashTable * merge_oi_target (const GList *, oi_fits *)
 Copy records for uniquely-named targets into output target table.
GList * merge_all_oi_wavelength (const GList *, oi_fits *)
 Copy unique wavelength tables into output dataset.
void merge_all_oi_vis (const GList *, GHashTable *, const GList *, oi_fits *)
 Copy all input OI_VIS tables into output dataset.
void merge_all_oi_vis2 (const GList *, GHashTable *, const GList *, oi_fits *)
 Copy all input OI_VIS2 tables into output dataset.
void merge_all_oi_t3 (const GList *, GHashTable *, const GList *, oi_fits *)
 Copy all input OI_T3 tables into output dataset.
void merge_oi_fits_list (const GList *, oi_fits *)
 Merge list of oi_fits structs into single dataset.
void merge_oi_fits (oi_fits *, oi_fits *, oi_fits *,...)
 Merge supplied oi_fits structs into single dataset.


Detailed Description

This module implements merging of a list of OIFITS datasets into a single dataset.

To simplify the implementation, OI_ARRAY tables are not copied into the output dataset (these are not required by the OIFITS standard). Target records with the same target name are merged (without checking that the coordinates etc. are identical), as are duplicate OI_WAVELENGTH tables.

A merged dataset should be obtained by calling merge_oi_fits() (which takes a variable number of arguments) or merge_oi_fits_list() (which takes a linked list of datasets to merge). Applications should not normally need to call the lower-level functions that merge subsets of the OIFITS tables (such as merge_oi_target() and merge_all_oi_vis2()).


Function Documentation

GHashTable* merge_oi_target ( const GList *  inList,
oi_fits pOutput 
)

Copy records for uniquely-named targets into output target table.

Parameters:
inList linked list of oi_fits structs to merge
pOutput pointer to oi_fits struct to write merged data to
Returns:
Hash table giving new TARGET_ID indexed by target name

References MAX_TARGET, oi_target::ntarget, oi_target::revision, oi_target::targ, target::target, target::target_id, and oi_fits::targets.

Referenced by merge_oi_fits_list().

GList* merge_all_oi_wavelength ( const GList *  inList,
oi_fits pOutput 
)

Copy unique wavelength tables into output dataset.

Parameters:
inList linked list of oi_fits structs to merge
pOutput pointer to oi_fits struct to write merged data to
Returns:
Linked list of hash tables, giving mapping from old to new INSNAMEs for each input dataset

References dup_oi_wavelength(), oi_wavelength::insname, match_oi_wavelength(), oi_fits::numWavelength, oi_fits::wavelengthHash, and oi_fits::wavelengthList.

Referenced by merge_oi_fits_list().

void merge_all_oi_vis ( const GList *  inList,
GHashTable *  targetIdHash,
const GList *  insnameHashList,
oi_fits pOutput 
)

Copy all input OI_VIS tables into output dataset.

Modifies INSNAME and TARGET_ID to maintain correct cross-references.

Parameters:
inList linked list of oi_fits structs to merge
targetIdHash hash table giving new TARGET_ID indexed by target name
insnameHashList list of hash tables giving new INSNAME indexed by old
pOutput pointer to oi_fits struct to write merged data to

References dup_oi_vis(), oi_vis::insname, oi_fits::numVis, REPLACE_INSNAME, REPLACE_TARGET_ID, UNSET_ARRNAME, and oi_fits::visList.

Referenced by merge_oi_fits_list().

void merge_all_oi_vis2 ( const GList *  inList,
GHashTable *  targetIdHash,
const GList *  insnameHashList,
oi_fits pOutput 
)

Copy all input OI_VIS2 tables into output dataset.

Modifies INSNAME and TARGET_ID to maintain correct cross-references.

Parameters:
inList linked list of oi_fits structs to merge
targetIdHash hash table giving new TARGET_ID indexed by target name
insnameHashList list of hash tables giving new INSNAME indexed by old
pOutput pointer to oi_fits struct to write merged data to

References dup_oi_vis2(), oi_vis2::insname, oi_fits::numVis2, REPLACE_INSNAME, REPLACE_TARGET_ID, UNSET_ARRNAME, and oi_fits::vis2List.

Referenced by merge_oi_fits_list().

void merge_all_oi_t3 ( const GList *  inList,
GHashTable *  targetIdHash,
const GList *  insnameHashList,
oi_fits pOutput 
)

Copy all input OI_T3 tables into output dataset.

Modifies INSNAME and TARGET_ID to maintain correct cross-references.

Parameters:
inList linked list of oi_fits structs to merge
targetIdHash hash table giving new TARGET_ID indexed by target name
insnameHashList list of hash tables giving new INSNAME indexed by old
pOutput pointer to oi_fits struct to write merged data to

References dup_oi_t3(), oi_t3::insname, oi_fits::numT3, REPLACE_INSNAME, REPLACE_TARGET_ID, oi_fits::t3List, and UNSET_ARRNAME.

Referenced by merge_oi_fits_list().

void merge_oi_fits_list ( const GList *  inList,
oi_fits pOutput 
)

Merge list of oi_fits structs into single dataset.

Parameters:
inList linked list of oi_fits structs to merge
pOutput pointer to oi_fits struct to write merged data to

References init_oi_fits(), merge_all_oi_t3(), merge_all_oi_vis(), merge_all_oi_vis2(), merge_all_oi_wavelength(), and merge_oi_target().

Referenced by merge_oi_fits().

void merge_oi_fits ( oi_fits pOutput,
oi_fits pInput1,
oi_fits pInput2,
  ... 
)

Merge supplied oi_fits structs into single dataset.

Parameters:
pOutput pointer to oi_fits struct to write merged data to
pInput1 pointer to first oi_fits struct to merge
pInput2 pointer to second oi_fits struct to merge, followed by pointers to any further structs to merge, followed by NULL

References merge_oi_fits_list().


Generated on Mon Jun 8 12:45:08 2009 for OIFITSlib by  doxygen 1.5.7.1