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
00026
00027 #ifndef XSH_DATA_LINETILT_H
00028 #define XSH_DATA_LINETILT_H 1.2
00029
00030 #include <cpl.h>
00031
00032
00033 #define XSH_LINETILT_TABLE_NB_COL 15
00034
00035 #define XSH_LINETILT_TABLE_COLNAME_WAVELENGTH "WAVELENGTH"
00036 #define XSH_LINETILT_TABLE_UNIT_WAVELENGTH "none"
00037
00038 #define XSH_LINETILT_TABLE_COLNAME_NAME "NAME"
00039 #define XSH_LINETILT_TABLE_UNIT_NAME "none"
00040
00041 #define XSH_LINETILT_TABLE_COLNAME_ORDER "ORDER"
00042 #define XSH_LINETILT_TABLE_UNIT_ORDER "none"
00043
00044 #define XSH_LINETILT_TABLE_COLNAME_FLUX "Flux"
00045 #define XSH_LINETILT_TABLE_UNIT_FLUX "ADU"
00046
00047 #define XSH_LINETILT_TABLE_COLNAME_INTENSITY "Intensity"
00048 #define XSH_LINETILT_TABLE_UNIT_INTENSITY "ADU"
00049
00050 #define XSH_LINETILT_TABLE_COLNAME_CENPOSX "Xcen"
00051 #define XSH_LINETILT_TABLE_UNIT_CENPOSX "pixel"
00052
00053 #define XSH_LINETILT_TABLE_COLNAME_CENPOSY "Ycen"
00054 #define XSH_LINETILT_TABLE_UNIT_CENPOSY "pixel"
00055
00056 #define XSH_LINETILT_TABLE_COLNAME_GAUSSY "YGauss"
00057 #define XSH_LINETILT_TABLE_UNIT_GAUSSY "pixel"
00058
00059 #define XSH_LINETILT_TABLE_COLNAME_TILTY "Ytilt"
00060 #define XSH_LINETILT_TABLE_UNIT_TILTY "pixel"
00061
00062 #define XSH_LINETILT_TABLE_COLNAME_FWHM "FWHM"
00063 #define XSH_LINETILT_TABLE_UNIT_FWHM "pixel"
00064
00065 #define XSH_LINETILT_TABLE_COLNAME_SHIFTY "SHIFT_Y"
00066 #define XSH_LINETILT_TABLE_UNIT_SHIFTY "pixel"
00067
00068 #define XSH_LINETILT_TABLE_COLNAME_TILT "TILT"
00069 #define XSH_LINETILT_TABLE_UNIT_TILT "none"
00070
00071 #define XSH_LINETILT_TABLE_COLNAME_CHISQ "chisq"
00072 #define XSH_LINETILT_TABLE_UNIT_CHISQ "none"
00073
00074 #define XSH_LINETILT_TABLE_COLNAME_SPECRES "SPECRES"
00075 #define XSH_LINETILT_TABLE_UNIT_SPECRES "none"
00076
00077 #define XSH_LINETILT_TABLE_COLNAME_FLAG "FLAG"
00078 #define XSH_LINETILT_TABLE_UNIT_FLAG "none"
00079
00080 typedef struct{
00081
00082 float wavelength;
00083
00084 char* name;
00085 int order ;
00086 double cenposx ;
00087 double cenposy ;
00088 double pre_pos_y ;
00089 double tilt_y;
00090 double shift_y;
00091 double deltay ;
00092 double slit ;
00093 int slit_index ;
00094 double tilt ;
00095 double chisq ;
00096 double xmin,
00097 xmax ;
00098 double specres ;
00099 double area ;
00100 double intensity;
00101 int ntot ;
00102 int ngood ;
00103 int flag ;
00104 } xsh_linetilt ;
00105
00106
00107 typedef struct{
00108 int size;
00109 int full_size ;
00110 xsh_linetilt ** list;
00111 cpl_propertylist* header;
00112 }xsh_linetilt_list;
00113
00114 xsh_linetilt_list * xsh_linetilt_list_new( int size,
00115 cpl_propertylist * header ) ;
00116 void xsh_linetilt_list_free(xsh_linetilt_list** list);
00117 xsh_linetilt * xsh_linetilt_new(void);
00118 void xsh_linetilt_free( xsh_linetilt ** tilt) ;
00119 void xsh_linetilt_list_add( xsh_linetilt_list * list,
00120 xsh_linetilt * line, int idx ) ;
00121 cpl_frame * xsh_linetilt_list_save( xsh_linetilt_list * list,
00122 xsh_instrument * instrument,
00123 const char * filename,
00124 const char* tag,
00125 const double kappa,
00126 const int niter ) ;
00127
00128 double * xsh_linetilt_list_get_posx( xsh_linetilt_list * list) ;
00129 double * xsh_linetilt_list_get_posy( xsh_linetilt_list * list) ;
00130 double * xsh_linetilt_list_get_pre_posy( xsh_linetilt_list * list) ;
00131 double * xsh_linetilt_list_get_deltay( xsh_linetilt_list * list) ;
00132 double * xsh_linetilt_list_get_sigma_y( xsh_linetilt_list * list) ;
00133 double * xsh_linetilt_list_get_orders( xsh_linetilt_list * list) ;
00134 double * xsh_linetilt_list_get_wavelengths( xsh_linetilt_list * list) ;
00135 double * xsh_linetilt_list_get_slits( xsh_linetilt_list * list) ;
00136 int * xsh_linetilt_list_get_slit_index( xsh_linetilt_list * list) ;
00137 cpl_propertylist * xsh_linetilt_list_get_header( xsh_linetilt_list * list) ;
00138 int xsh_linetilt_is_duplicate( xsh_linetilt_list * list, float lambda,
00139 int order ) ;
00140
00141 #endif