GRAVI Pipeline Reference Manual 1.9.4
Loading...
Searching...
No Matches
Macros | Functions | Variables
gravi_utils.h File Reference
#include <cpl.h>
#include "gravi_data.h"

Go to the source code of this file.

Macros

#define gravi_bit_set(number, pos)   do{(number) |= (1 << ((int)pos));}while(0)
 
#define gravi_bit_clear(number, pos)   do{(number) &= (~(1 << ((int)pos)));}while(0)
 
#define gravi_bit_get(number, pos)   (1 & ((number) >> ((int)pos)))
 
#define CPLCHECK(msg)   do{int code; if( (code=cpl_error_get_code ()) ) { cpl_msg_error(cpl_func,msg); cpl_error_set_message(cpl_func, code, msg); }} while (0)
 
#define CPLCHECK_MSG(msg)   do{int code; if( (code=cpl_error_get_code ()) ) { cpl_msg_error(cpl_func,msg); return cpl_error_set_message(cpl_func, code, msg); }} while (0)
 
#define CPLCHECK_NUL(msg)   do{int code; if( (code=cpl_error_get_code ()) ) { cpl_msg_error(cpl_func,msg); cpl_error_set_message(cpl_func, code, msg); return NULL; }} while (0)
 
#define CPLCHECK_INT(msg)   do{int code; if( (code=cpl_error_get_code ()) ) { cpl_msg_error(cpl_func,msg); cpl_error_set_message(cpl_func, code, msg); return code; }} while (0)
 
#define CPLCHECK_CLEAN(msg)   do{int code; if( (code=cpl_error_get_code ()) ) { cpl_msg_error(cpl_func,msg); cpl_error_set_message(cpl_func, code, msg); goto cleanup; }} while (0)
 
#define CPLCHECK_GOTO(msg, tag)   do{int code; if( (code=cpl_error_get_code ()) ) { cpl_msg_error(cpl_func,msg); cpl_error_set_message(cpl_func, code, msg); goto tag; }} while (0)
 
#define ERROR_CLEAN(code, msg)   do{cpl_msg_error(cpl_func,msg); cpl_error_set_message(cpl_func, code, msg); goto cleanup;} while (0)
 
#define CHECK_NUL(flag, msg)   do{ if( flag ) { cpl_msg_error(cpl_func,msg); cpl_error_set_message(cpl_func, CPL_ERROR_ILLEGAL_INPUT, msg); return NULL; }} while (0)
 
#define CHECK_MSG(flag, msg)   do{ if( flag ) { cpl_msg_error(cpl_func,msg); return cpl_error_set_message(cpl_func, CPL_ERROR_ILLEGAL_INPUT, msg); }} while (0)
 
#define FREE(function, variable)   do{ if (variable) { function(variable); variable=NULL;} } while (0)
 
#define FREELOOP(function, variable, n)   do{ if (variable) { for (int iloopfree = 0 ; iloopfree < n; iloopfree++) { if (variable[iloopfree]) { function( variable[iloopfree] ); variable[iloopfree] = NULL; } } if (variable) { cpl_free (variable); variable = NULL; } } } while (0)
 
#define FILESHORT(file)   (strrchr(file, '/') ? strrchr(file, '/') + 1 : file)
 
#define TEST_MESSAGE   cpl_msg_info (cpl_func,">>>>>>> TEST <<<<<<<")
 
#define gravi_pow2(data)   data*data
 
#define gravi_msg_function_start(flag)   clock_t timer_function = clock(); do{ if(flag) cpl_msg_info(cpl_func,"Start function %s", cpl_func); }while(0)
 
#define gravi_msg_function_exit(flag)   do{ if(flag) cpl_msg_info(cpl_func,"Exit function %s (%.6f s)",cpl_func,(double)(clock()-timer_function)/(double)CLOCKS_PER_SEC); }while(0)
 
#define gravi_data_get_shutter(data, tel)   gravi_get_shutter (gravi_data_get_header(data),tel)
 
#define gravi_data_check_shutter(data, t0, t1, t2, t3)   gravi_check_shutter (gravi_data_get_header(data), t0,t1,t2,t3)
 
#define gravi_data_check_shutter_closed(data)   gravi_check_shutter (gravi_data_get_header(data), 0,0,0,0)
 
#define gravi_data_check_shutter_open(data)   gravi_check_shutter (gravi_data_get_header(data), 1,1,1,1)
 
#define gravi_spectrum_get_npol(table)   (gravi_spectrum_get_nregion (table) > 24 ? 2 : 1)
 
#define GRAVI_NBASE   6
 
#define GRAVI_LBD_FTSC   6
 
#define GRAVI_MATH_RAD_MAS   4.848136811095360246362499795228298560267887751251691952347755e-09
 
#define GRAVI_LABINPUT_1   7
 
#define GRAVI_LABINPUT_2   5
 
#define GRAVI_LABINPUT_3   3
 
#define GRAVI_LABINPUT_4   1
 
#define SHUTTER_KEY   "IPAG INS SHUT"
 
#define SHUTTER_KEY1   "IPAG INS SHUT1 ST"
 
#define SHUTTER_KEY2   "IPAG INS SHUT2 ST"
 
#define SHUTTER_KEY3   "IPAG INS SHUT3 ST"
 
#define SHUTTER_KEY4   "IPAG INS SHUT4 ST"
 
#define GRAVI_SHUTTER_KEY   "ESO INS SHUT"
 
#define GRAVI_SHUTTER_KEY1   "ESO INS SHUT 1"
 
#define GRAVI_SHUTTER_KEY2   "ESO INS SHUT 2"
 
#define GRAVI_SHUTTER_KEY3   "ESO INS SHUT 3"
 
#define GRAVI_SHUTTER_KEY4   "ESO INS SHUT 4"
 
#define POLAR_1   "S"
 
#define POLAR_2   "P"
 
#define POLAR_3   "C"
 
#define GRAVI_POLAR(pol, npol)   (npol==1 ? "C" : (pol==0 ? "S" : "P") )
 
#define PHASE_1   "A"
 
#define PHASE_2   "B"
 
#define PHASE_3   "C"
 
#define PHASE_4   "D"
 
#define COHERENCE   "COHERENCE"
 
#define TRANSMISSION   "TRANSMISSION"
 
#define PHASE   "PHASE"
 
#define SQR(a)   ((sqrarg=(a)) == 0.0 ? 0.0 : sqrarg*sqrarg)
 
#define SIGN(a, b)   ((b) >= 0.0 ? fabs(a) : -fabs(a))
 
#define IMIN(a, b)   (((a) < (b)) ? (a) : (b))
 

Functions

const char * gravi_get_license (void)
 Get the pipeline copyright and license.
 
cpl_error_code gravi_msg_warning (const char *component, const char *msg)
 
cpl_error_code gravi_dump_the_boss (double ra, double dec)
 
int gravi_get_shutter (cpl_propertylist *, int)
 
int gravi_check_shutter (cpl_propertylist *, int, int, int, int)
 
int gravi_data_check_shutter_beam (gravi_data **datas, int nb_datas)
 
int gravi_get_shutter_id (cpl_propertylist *header)
 
int gravi_get_shutter_baseid (cpl_propertylist *header)
 
int gravi_region_get_base (cpl_table *imaging_detector, int region)
 Return the base of a region.
 
int gravi_region_get_pol (cpl_table *imaging_detector, int region)
 Return the polarisation id of a region.
 
int gravi_get_region (cpl_table *img_det, int base, char phase, int pol)
 Find the region matching base, phase and pol.
 
int gravi_region_get_tel (cpl_table *imaging_detector, int region, int beam)
 Return the telescope id (0,1,2,3) in a beam of a region.
 
int gravi_region_get_phaseid (cpl_table *imaging_detector, int region)
 Return the phase id of a region.
 
char gravi_region_get_phase (cpl_table *imaging_detector, int region)
 Return the phase character of a region.
 
int gravi_region_get_base_sign (cpl_table *imaging_detector, int base)
 Return the sign of a base by looking at the PORT order.
 
int gravi_wave_get_nlambda (cpl_table *wave_data, double lambda_min, double lambda_max)
 Get the number of spectral element between lambdamin et lambdamax.
 
cpl_table * gravi_table_oi_create (int, int, const char *)
 Create the oi table (oi_vis, oi_vis2, oi_t3)
 
int * gravi_image_extract_dimension (cpl_image *)
 Compute startx and nx of the illuminated part of the image.
 
short gravi_sta_index (int gravi_input, cpl_table *optical_train_table, cpl_table *array_geometry_table)
 Retrieve STA_INDEX corresponding to a given input.
 
cpl_size gravi_spectrum_get_nregion (const cpl_table *table)
 
cpl_size gravi_spectrum_get_nwave (const cpl_table *table)
 
double gravi_spectrum_get_flux (const cpl_table *table)
 Return the total flux in DATA# regions.
 
double gravi_imagelist_get_flux (const cpl_imagelist *imglist)
 Return the total flux in imagelist.
 
cpl_error_code gravi_lkdt_get_sequence (cpl_table *oi_table, cpl_size ntel, cpl_size *first, cpl_size *nobs)
 Return the longuest sequence with constant LKDT.
 
cpl_vector * gravi_compute_envelope (const cpl_vector *opd, int wave, int n_wave)
 Compute the envelope value.
 
int gravi_conf_get_iss (int gravi_beam, cpl_propertylist *header)
 
const char * gravi_conf_get_telname (int gravi_beam, cpl_propertylist *header)
 

Variables

int GRAVI_BASE_TEL [GRAVI_NBASE][2]
 
char GRAVI_BASE_NAME [GRAVI_NBASE][3]
 
int GRAVI_TRI_BASE [GRAVI_NBASE][2][2]
 
int GRAVI_TRI_SIGN [GRAVI_NBASE][2][2]
 
int GRAVI_CLO_BASE [4][3]
 
int GRAVI_CLO_TEL [4][3]
 
char GRAVI_CLO_NAME [4][4]
 
char GRAVI_DATA [50][7]
 
char GRAVI_DATAERR [50][10]
 
int GRAVI_LABINPUT [4]
 

Macro Definition Documentation

◆ CHECK_MSG

#define CHECK_MSG (   flag,
  msg 
)    do{ if( flag ) { cpl_msg_error(cpl_func,msg); return cpl_error_set_message(cpl_func, CPL_ERROR_ILLEGAL_INPUT, msg); }} while (0)

Definition at line 66 of file gravi_utils.h.

◆ CHECK_NUL

#define CHECK_NUL (   flag,
  msg 
)    do{ if( flag ) { cpl_msg_error(cpl_func,msg); cpl_error_set_message(cpl_func, CPL_ERROR_ILLEGAL_INPUT, msg); return NULL; }} while (0)

Definition at line 63 of file gravi_utils.h.

◆ COHERENCE

#define COHERENCE   "COHERENCE"

Definition at line 149 of file gravi_utils.h.

◆ CPLCHECK

#define CPLCHECK (   msg)    do{int code; if( (code=cpl_error_get_code ()) ) { cpl_msg_error(cpl_func,msg); cpl_error_set_message(cpl_func, code, msg); }} while (0)

Definition at line 42 of file gravi_utils.h.

◆ CPLCHECK_CLEAN

#define CPLCHECK_CLEAN (   msg)    do{int code; if( (code=cpl_error_get_code ()) ) { cpl_msg_error(cpl_func,msg); cpl_error_set_message(cpl_func, code, msg); goto cleanup; }} while (0)

Definition at line 54 of file gravi_utils.h.

◆ CPLCHECK_GOTO

#define CPLCHECK_GOTO (   msg,
  tag 
)    do{int code; if( (code=cpl_error_get_code ()) ) { cpl_msg_error(cpl_func,msg); cpl_error_set_message(cpl_func, code, msg); goto tag; }} while (0)

Definition at line 57 of file gravi_utils.h.

◆ CPLCHECK_INT

#define CPLCHECK_INT (   msg)    do{int code; if( (code=cpl_error_get_code ()) ) { cpl_msg_error(cpl_func,msg); cpl_error_set_message(cpl_func, code, msg); return code; }} while (0)

Definition at line 51 of file gravi_utils.h.

◆ CPLCHECK_MSG

#define CPLCHECK_MSG (   msg)    do{int code; if( (code=cpl_error_get_code ()) ) { cpl_msg_error(cpl_func,msg); return cpl_error_set_message(cpl_func, code, msg); }} while (0)

Definition at line 45 of file gravi_utils.h.

◆ CPLCHECK_NUL

#define CPLCHECK_NUL (   msg)    do{int code; if( (code=cpl_error_get_code ()) ) { cpl_msg_error(cpl_func,msg); cpl_error_set_message(cpl_func, code, msg); return NULL; }} while (0)

Definition at line 48 of file gravi_utils.h.

◆ ERROR_CLEAN

#define ERROR_CLEAN (   code,
  msg 
)    do{cpl_msg_error(cpl_func,msg); cpl_error_set_message(cpl_func, code, msg); goto cleanup;} while (0)

Definition at line 60 of file gravi_utils.h.

◆ FILESHORT

#define FILESHORT (   file)    (strrchr(file, '/') ? strrchr(file, '/') + 1 : file)

Definition at line 75 of file gravi_utils.h.

◆ FREE

#define FREE (   function,
  variable 
)    do{ if (variable) { function(variable); variable=NULL;} } while (0)

Definition at line 69 of file gravi_utils.h.

◆ FREELOOP

#define FREELOOP (   function,
  variable,
 
)    do{ if (variable) { for (int iloopfree = 0 ; iloopfree < n; iloopfree++) { if (variable[iloopfree]) { function( variable[iloopfree] ); variable[iloopfree] = NULL; } } if (variable) { cpl_free (variable); variable = NULL; } } } while (0)

Definition at line 72 of file gravi_utils.h.

◆ gravi_bit_clear

#define gravi_bit_clear (   number,
  pos 
)    do{(number) &= (~(1 << ((int)pos)));}while(0)

Definition at line 37 of file gravi_utils.h.

◆ gravi_bit_get

#define gravi_bit_get (   number,
  pos 
)    (1 & ((number) >> ((int)pos)))

Definition at line 38 of file gravi_utils.h.

◆ gravi_bit_set

#define gravi_bit_set (   number,
  pos 
)    do{(number) |= (1 << ((int)pos));}while(0)

Definition at line 36 of file gravi_utils.h.

◆ gravi_data_check_shutter

#define gravi_data_check_shutter (   data,
  t0,
  t1,
  t2,
  t3 
)    gravi_check_shutter (gravi_data_get_header(data), t0,t1,t2,t3)

Definition at line 89 of file gravi_utils.h.

◆ gravi_data_check_shutter_closed

#define gravi_data_check_shutter_closed (   data)    gravi_check_shutter (gravi_data_get_header(data), 0,0,0,0)

Definition at line 90 of file gravi_utils.h.

◆ gravi_data_check_shutter_open

#define gravi_data_check_shutter_open (   data)    gravi_check_shutter (gravi_data_get_header(data), 1,1,1,1)

Definition at line 91 of file gravi_utils.h.

◆ gravi_data_get_shutter

#define gravi_data_get_shutter (   data,
  tel 
)    gravi_get_shutter (gravi_data_get_header(data),tel)

Definition at line 88 of file gravi_utils.h.

◆ GRAVI_LABINPUT_1

#define GRAVI_LABINPUT_1   7

Definition at line 124 of file gravi_utils.h.

◆ GRAVI_LABINPUT_2

#define GRAVI_LABINPUT_2   5

Definition at line 125 of file gravi_utils.h.

◆ GRAVI_LABINPUT_3

#define GRAVI_LABINPUT_3   3

Definition at line 126 of file gravi_utils.h.

◆ GRAVI_LABINPUT_4

#define GRAVI_LABINPUT_4   1

Definition at line 127 of file gravi_utils.h.

◆ GRAVI_LBD_FTSC

#define GRAVI_LBD_FTSC   6

Definition at line 116 of file gravi_utils.h.

◆ GRAVI_MATH_RAD_MAS

#define GRAVI_MATH_RAD_MAS   4.848136811095360246362499795228298560267887751251691952347755e-09

Definition at line 119 of file gravi_utils.h.

◆ gravi_msg_function_exit

#define gravi_msg_function_exit (   flag)    do{ if(flag) cpl_msg_info(cpl_func,"Exit function %s (%.6f s)",cpl_func,(double)(clock()-timer_function)/(double)CLOCKS_PER_SEC); }while(0)

Definition at line 85 of file gravi_utils.h.

◆ gravi_msg_function_start

#define gravi_msg_function_start (   flag)    clock_t timer_function = clock(); do{ if(flag) cpl_msg_info(cpl_func,"Start function %s", cpl_func); }while(0)

Definition at line 84 of file gravi_utils.h.

◆ GRAVI_NBASE

#define GRAVI_NBASE   6

Definition at line 105 of file gravi_utils.h.

◆ GRAVI_POLAR

#define GRAVI_POLAR (   pol,
  npol 
)    (npol==1 ? "C" : (pol==0 ? "S" : "P") )

Definition at line 144 of file gravi_utils.h.

◆ gravi_pow2

#define gravi_pow2 (   data)    data*data

Definition at line 81 of file gravi_utils.h.

◆ GRAVI_SHUTTER_KEY

#define GRAVI_SHUTTER_KEY   "ESO INS SHUT"

Definition at line 136 of file gravi_utils.h.

◆ GRAVI_SHUTTER_KEY1

#define GRAVI_SHUTTER_KEY1   "ESO INS SHUT 1"

Definition at line 137 of file gravi_utils.h.

◆ GRAVI_SHUTTER_KEY2

#define GRAVI_SHUTTER_KEY2   "ESO INS SHUT 2"

Definition at line 138 of file gravi_utils.h.

◆ GRAVI_SHUTTER_KEY3

#define GRAVI_SHUTTER_KEY3   "ESO INS SHUT 3"

Definition at line 139 of file gravi_utils.h.

◆ GRAVI_SHUTTER_KEY4

#define GRAVI_SHUTTER_KEY4   "ESO INS SHUT 4"

Definition at line 140 of file gravi_utils.h.

◆ gravi_spectrum_get_npol

#define gravi_spectrum_get_npol (   table)    (gravi_spectrum_get_nregion (table) > 24 ? 2 : 1)

Definition at line 92 of file gravi_utils.h.

◆ IMIN

#define IMIN (   a,
 
)    (((a) < (b)) ? (a) : (b))

Definition at line 155 of file gravi_utils.h.

◆ PHASE

#define PHASE   "PHASE"

Definition at line 151 of file gravi_utils.h.

◆ PHASE_1

#define PHASE_1   "A"

Definition at line 145 of file gravi_utils.h.

◆ PHASE_2

#define PHASE_2   "B"

Definition at line 146 of file gravi_utils.h.

◆ PHASE_3

#define PHASE_3   "C"

Definition at line 147 of file gravi_utils.h.

◆ PHASE_4

#define PHASE_4   "D"

Definition at line 148 of file gravi_utils.h.

◆ POLAR_1

#define POLAR_1   "S"

Definition at line 141 of file gravi_utils.h.

◆ POLAR_2

#define POLAR_2   "P"

Definition at line 142 of file gravi_utils.h.

◆ POLAR_3

#define POLAR_3   "C"

Definition at line 143 of file gravi_utils.h.

◆ SHUTTER_KEY

#define SHUTTER_KEY   "IPAG INS SHUT"

Definition at line 131 of file gravi_utils.h.

◆ SHUTTER_KEY1

#define SHUTTER_KEY1   "IPAG INS SHUT1 ST"

Definition at line 132 of file gravi_utils.h.

◆ SHUTTER_KEY2

#define SHUTTER_KEY2   "IPAG INS SHUT2 ST"

Definition at line 133 of file gravi_utils.h.

◆ SHUTTER_KEY3

#define SHUTTER_KEY3   "IPAG INS SHUT3 ST"

Definition at line 134 of file gravi_utils.h.

◆ SHUTTER_KEY4

#define SHUTTER_KEY4   "IPAG INS SHUT4 ST"

Definition at line 135 of file gravi_utils.h.

◆ SIGN

#define SIGN (   a,
 
)    ((b) >= 0.0 ? fabs(a) : -fabs(a))

Definition at line 154 of file gravi_utils.h.

◆ SQR

#define SQR (   a)    ((sqrarg=(a)) == 0.0 ? 0.0 : sqrarg*sqrarg)

Definition at line 153 of file gravi_utils.h.

◆ TEST_MESSAGE

#define TEST_MESSAGE   cpl_msg_info (cpl_func,">>>>>>> TEST <<<<<<<")

Definition at line 77 of file gravi_utils.h.

◆ TRANSMISSION

#define TRANSMISSION   "TRANSMISSION"

Definition at line 150 of file gravi_utils.h.