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
00028 #ifndef VISIR_INPUTS_H
00029 #define VISIR_INPUTS_H
00030
00031
00032
00033
00034
00035 #include <cpl.h>
00036
00037 #include "irplib_framelist.h"
00038
00039 #include "visir_spc_optmod.h"
00040
00041
00042
00043
00044
00045
00046 #define VISIR_HCYCLE_BPM_THRESHOLD 65000.0
00047
00048
00049
00050
00051
00052 #define VISIR_HCYCLE_OFFSET 32768.0
00053
00054 typedef enum {
00055
00056
00057
00058 VISIR_CHOPNOD_PERPENDICULAR,
00059
00060
00061 VISIR_CHOPNOD_PARALLEL,
00062
00063
00064 VISIR_CHOPNOD_AUTO
00065
00066 } visir_chopnod_mode;
00067
00068 typedef enum {
00069 VISIR_ERROR,
00070 VISIR_VARIANCE,
00071 VISIR_WEIGHT
00072 } visir_error_type;
00073
00074 typedef enum {
00075 VISIR_DATA_CUBE1,
00076 VISIR_DATA_CUBE2,
00077 VISIR_DATA_BURST,
00078 VISIR_DATA_AQU_HCYCLE,
00079 VISIR_DATA_AQU_BURST,
00080 VISIR_DATA_AQU_BURST_EXT,
00081
00082
00083 VISIR_DATA_AQU_INT,
00084 } visir_data_type;
00085
00086 static inline cpl_boolean
00087 visir_data_is_aqu(const visir_data_type dtype)
00088 {
00089 return dtype == VISIR_DATA_AQU_HCYCLE || dtype == VISIR_DATA_AQU_BURST ||
00090 dtype == VISIR_DATA_AQU_BURST_EXT || dtype == VISIR_DATA_AQU_INT;
00091 }
00092
00093 static inline cpl_boolean
00094 visir_data_is_drs(const visir_data_type dtype)
00095 {
00096 return !visir_data_is_aqu(dtype);
00097 }
00098
00099 static inline cpl_boolean
00100 visir_data_is_burst(const visir_data_type dtype)
00101 {
00102 return dtype == VISIR_DATA_BURST || dtype == VISIR_DATA_AQU_BURST ||
00103 dtype == VISIR_DATA_AQU_BURST_EXT;
00104 }
00105
00106
00107
00108
00109
00110
00111 cpl_imagelist * visir_inputs_combine(const char *, const cpl_parameterlist *,
00112 const irplib_framelist *, const char *,
00113 const char *, int *, cpl_boolean,
00114 double, visir_spc_resol);
00115 cpl_image ** visir_img_recombine_list(const char *,
00116 const cpl_parameterlist *,
00117 cpl_imagelist *,
00118 const cpl_propertylist **,
00119 cpl_geom_combine, cpl_boolean *);
00120 cpl_image ** visir_img_recombine(const char *, const cpl_parameterlist *,
00121 const irplib_framelist *, const char *,
00122 const char *, cpl_geom_combine, cpl_boolean *,
00123 cpl_boolean, double, visir_spc_resol);
00124 cpl_imagelist * visir_load_imagelist(const irplib_framelist *, int,
00125 cpl_boolean);
00126 cpl_imagelist * visir_load_hcycle(const irplib_framelist *, int);
00127 cpl_error_code visir_image_reject_hot(cpl_image *, const char *);
00128
00129 cpl_imagelist * visir_imagelist_load_last(const irplib_framelist *);
00130
00131 cpl_image ** visir_img_collapse_beam(cpl_propertylist *,
00132 const cpl_image *,
00133 const cpl_parameterlist *,
00134 const char *,
00135 visir_chopnod_mode,
00136 const cpl_propertylist *);
00137
00138 double visir_img_check_box(const cpl_apertures *, int, int,
00139 const cpl_apertures *, int, int,
00140 double, double, cpl_boolean *, cpl_boolean *);
00141
00142 double visir_img_check_align(const cpl_apertures *, int,
00143 const cpl_apertures *, int, int,
00144 double, double,
00145 cpl_boolean *);
00146
00147 double visir_img_check_line(const cpl_apertures *, int,
00148 const cpl_apertures *, int,
00149 double, double);
00150
00151 cpl_error_code visir_get_data_type(const cpl_frame * frame,
00152 const cpl_propertylist * plist,
00153 visir_data_type * ptype, cpl_size * pnext);
00154
00155 cpl_bivector * visir_load_lintable(cpl_frame * linframe, cpl_boolean is_spec);
00156
00157 cpl_image *
00158 visir_load_bpm(cpl_frame * frm, visir_data_type dtype, cpl_boolean is_spec);
00159
00160 cpl_error_code visir_load_cube2_split(cpl_imagelist *, cpl_imagelist *,
00161 const irplib_framelist *, const int,
00162 const int, const int);
00163
00164 cpl_error_code visir_load_burst(cpl_imagelist *, cpl_imagelist *,
00165 const cpl_frame *, const cpl_propertylist *,
00166 const int, const int, const int, const int,
00167 const int, const int);
00168 cpl_error_code visir_load_burst_aqu(cpl_imagelist *, cpl_imagelist *,
00169 const cpl_frame *, const cpl_propertylist *,
00170 const int, const int, const int);
00171
00172 cpl_error_code visir_img_burst_find_delta_chop(const cpl_propertylist *,
00173 int *, int *);
00174
00175
00176 visir_chopnod_mode visir_img_find_beam(cpl_propertylist *,
00177 const cpl_image *,
00178 const cpl_image *,
00179 const cpl_propertylist *,
00180 const cpl_parameterlist *,
00181 const char *,
00182 double [],
00183 double []);
00184
00185 cpl_error_code visir_img_find_beam_two(cpl_propertylist *, const cpl_image *,
00186 const cpl_image *, double, double, double,
00187 double [], double []);
00188
00189 #endif