00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 #ifndef XSH_DATA_ORDER_RESID_TAB_H
00026 #define XSH_DATA_ORDER_RESID_TAB_H
00027
00028 #include <cpl.h>
00029 #include <xsh_data_order.h>
00030
00031 #define XSH_RESID_ORDER_TABLE_NB_COL 4
00032
00033 #define XSH_RESID_ORDER_TABLE_COLNAME_ORDER "Order"
00034 #define XSH_RESID_ORDER_TABLE_UNIT_ORDER "none"
00035
00036 #define XSH_RESID_ORDER_TABLE_COLNAME_POSX "X"
00037 #define XSH_RESID_ORDER_TABLE_UNIT_POSX "pixel"
00038 #define XSH_RESID_ORDER_TABLE_COLNAME_POSY "Y"
00039 #define XSH_RESID_ORDER_TABLE_UNIT_POSY "pixel"
00040
00041 #define XSH_RESID_ORDER_TABLE_COLNAME_RESX "RESX"
00042 #define XSH_RESID_ORDER_TABLE_UNIT_RESX "pixel"
00043
00044 #define XSH_RESID_ORDER_TABLE_COLNAME_POLX "POLX"
00045 #define XSH_RESID_ORDER_TABLE_UNIT_POLX "pixel"
00046
00047
00048 #define PROPERTY_GET( OBJECT, PROPERTY, TYPE, DEFAULT)\
00049 TYPE OBJECT##_get_##PROPERTY( OBJECT* obj)\
00050 {\
00051 TYPE result = DEFAULT;\
00052 \
00053 XSH_ASSURE_NOT_NULL( obj);\
00054 result = obj->PROPERTY;\
00055 \
00056 cleanup:\
00057 return result;\
00058 }
00059
00060
00061 #define RESID_ORDER_PROPERTY_GET( PROPERTY, TYPE, DEFAULT)\
00062 PROPERTY_GET( xsh_resid_tab, PROPERTY, TYPE, DEFAULT)
00063
00064 typedef struct{
00065 int size ;
00066 double residmin ;
00067 double residmax ;
00068 double residavg ;
00069 double residrms ;
00070
00071 double residmin_sel ;
00072 double residmax_sel ;
00073 double residavg_sel ;
00074 double residrms_sel ;
00075
00076
00077 int * order;
00078 double * pos_x;
00079 double * pos_y;
00080 double * res_x;
00081 double * pol_x;
00082 cpl_propertylist* header;
00083 }xsh_resid_order_tab;
00084
00085 xsh_resid_order_tab * xsh_resid_order_create(int size, int * orders,
00086 double * posx, double * posy,
00087 double * resx, double* polx ) ;
00088
00089 xsh_resid_order_tab * xsh_resid_order_load( cpl_frame* resid_tab_frame);
00090
00091 void xsh_resid_order_free( xsh_resid_order_tab ** resid);
00092
00093
00094 cpl_frame * xsh_resid_order_save( xsh_resid_order_tab * resid,
00095 const char* filename,
00096 xsh_instrument * instrument,
00097 ORDERPOS_QC_PARAM* ord_qc_param,
00098 const char* tag);
00099 cpl_table *
00100 xsh_resid_order_2tab( xsh_resid_order_tab * resid,
00101 xsh_instrument * instrument,
00102 ORDERPOS_QC_PARAM* ord_qc_param);
00103
00104 #endif