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 MOSES_H
00029 #define MOSES_H
00030
00031 #include <cpl.h>
00032
00033 CPL_BEGIN_DECLS
00034
00035 cpl_table *mos_hough_table(cpl_table *, const char *, const char *);
00036 cpl_image *mos_remove_bias(cpl_image *, cpl_image *, cpl_table *);
00037 cpl_image *mos_normalise_flat(cpl_image *, cpl_image *, cpl_table *,
00038 cpl_table *, double, double, double, double,
00039 int, int);
00040 cpl_image *mos_normalise_longflat(cpl_image *, int, int, int);
00041 cpl_error_code mos_arc_background_1D(float *, float *, int, int, int);
00042 cpl_image *mos_arc_background(cpl_image *, int, int);
00043 int mos_lines_width(const float *, int);
00044 cpl_vector *mos_peak_candidates(const float *, int, float, float);
00045 cpl_vector *mos_refine_peaks(const float *, int, cpl_vector *, int);
00046 cpl_bivector *mos_identify_peaks(cpl_vector *, cpl_vector *,
00047 double, double, double, int);
00048 cpl_bivector *mos_find_peaks(const float *, int, cpl_vector *,
00049 cpl_polynomial *, double, int);
00050 double mos_eval_dds(cpl_polynomial *, double, double, double, double);
00051 cpl_polynomial *mos_poly_wav2pix(cpl_bivector *, int, double, int,
00052 int *, double *);
00053 cpl_polynomial *mos_poly_pix2wav(cpl_bivector *, int, double, int,
00054 int *, double *);
00055 cpl_image *mos_wavelength_calibration_raw(const cpl_image *, cpl_vector *,
00056 double, float, int, int, double,
00057 double, double *, double *, int *,
00058 double *, cpl_table *, cpl_image *,
00059 cpl_image *, cpl_table *, cpl_mask *);
00060 cpl_error_code mos_interpolate_wavecalib(cpl_table *, cpl_image *, int);
00061 cpl_table *mos_locate_spectra(cpl_mask *);
00062 cpl_error_code mos_validate_slits(cpl_table *);
00063 cpl_error_code mos_rotate_slits(cpl_table *, int, int, int);
00064 cpl_table *mos_identify_slits(cpl_table *, cpl_table *, cpl_table *);
00065 cpl_table *mos_identify_slits_fast(cpl_table *, cpl_table *, cpl_table *);
00066 cpl_table *mos_trace_flat(cpl_image *, cpl_table *, double,
00067 double, double, double);
00068 cpl_table *mos_poly_trace(cpl_table *, cpl_table *, int);
00069 cpl_error_code mos_global_trace(cpl_table *, cpl_table *, int);
00070 cpl_image *mos_spatial_calibration(cpl_image *, cpl_table *, cpl_table *,
00071 double, double, double, double, int,
00072 cpl_image *);
00073 cpl_image *mos_wavelength_calibration_final(cpl_image *, cpl_table *,
00074 cpl_vector *, double, float, int,
00075 int, double, double, double *,
00076 double *, int *, double *,
00077 cpl_table *, cpl_image *,
00078 cpl_image *, cpl_table *);
00079 cpl_table *mos_global_distortion(cpl_table *, cpl_table *,
00080 cpl_table *, cpl_table *, double);
00081 cpl_table *mos_build_slit_location(cpl_table *, cpl_table *, int);
00082 cpl_table *mos_build_curv_coeff(cpl_table *, cpl_table *, cpl_table *);
00083 cpl_table *mos_build_disp_coeff(cpl_table *, cpl_table *);
00084 cpl_table *mos_wavelength_align(cpl_image *, cpl_table *, double, double,
00085 double, cpl_table *, cpl_vector *, int,
00086 int, cpl_image *, int);
00087 cpl_table *mos_wavelength_align_lss(cpl_image *, double, double, double,
00088 cpl_table *, cpl_vector *, int, int,
00089 cpl_image *, int);
00090 cpl_image *mos_wavelength_calibration(cpl_image *, double, double, double,
00091 double, cpl_table *, int);
00092 cpl_image *mos_map_pixel(cpl_table *, double, double, double, double, int);
00093 cpl_image *mos_map_idscoeff(cpl_table *, int, double, double, double);
00094 cpl_image *mos_map_wavelengths(cpl_image *, cpl_image *, cpl_table *,
00095 cpl_table *, double, double, double, double);
00096 cpl_image *mos_map_spectrum(cpl_image *, cpl_image *, cpl_image *, cpl_table *,
00097 cpl_table *, double, double, double, double, int);
00098 cpl_image *mos_subtract_sky(cpl_image *, cpl_table *, cpl_table *, double,
00099 double, double, double);
00100 cpl_table *mos_sky_map(cpl_image *, cpl_image *, double, cpl_image *);
00101 cpl_table *mos_sky_map_super(cpl_image *, cpl_image *, double, double, int,
00102 cpl_image *);
00103 cpl_image *mos_sky_local_old(cpl_image *spectra, cpl_table *slits);
00104 cpl_image *mos_sky_local(cpl_image *, cpl_table *, int);
00105
00106 cpl_error_code mos_clean_cosmics(cpl_image *, float, float, float);
00107 cpl_error_code mos_clean_bad_pixels(cpl_image *, cpl_table *, int);
00108
00109 double mos_distortions_rms(cpl_image *, cpl_vector *, double, double, int, int);
00110
00111 cpl_image *mos_spatial_map(cpl_image *, cpl_table *, cpl_table *, double,
00112 double, double, double);
00113 cpl_image *mos_detect_objects(cpl_image *, cpl_table *, int, int, int);
00114 cpl_image **mos_extract_objects(cpl_image *, cpl_image *, cpl_table *,
00115 int, double, double, int);
00116 int mos_spectral_resolution(cpl_image *, double, double, double, int,
00117 double *, double *, double *, double *, int *);
00118 cpl_table *mos_resolution_table(cpl_image *image, double startwave,
00119 double dispersion, int saturation,
00120 cpl_vector *lines);
00121 double mos_integrate_signal(cpl_image *, cpl_image *, int, int, double, double);
00122
00123 cpl_polynomial *mos_montecarlo_polyfit(cpl_table *points, cpl_table *evaluate,
00124 int samples, int order);
00125
00126
00127
00128 double mos_get_gain_vimos(cpl_propertylist *);
00129 cpl_table *mos_load_overscans_vimos(const cpl_propertylist *, int);
00130 cpl_table *mos_load_overscans_fors(const cpl_propertylist *);
00131 cpl_table *mos_load_slits_vimos(cpl_propertylist *);
00132 cpl_table *mos_load_slits_fors_mxu(cpl_propertylist *);
00133 cpl_table *mos_load_slits_fors_mos(cpl_propertylist *);
00134 cpl_table *mos_load_slits_fors_lss(cpl_propertylist *);
00135 cpl_table *mos_load_slits_fors_pmos(cpl_propertylist *);
00136
00137 cpl_error_code mos_refmask_find_gaps(cpl_mask *, cpl_image *);
00138 cpl_error_code mos_saturation_process(cpl_image *);
00139 cpl_error_code mos_subtract_background(cpl_image *);
00140
00141 cpl_error_code mos_object_intersect(cpl_table **, cpl_table *, int);
00142
00143 cpl_error_code mos_object_intersect_old(cpl_table **, cpl_table *, int);
00144
00145 int mos_get_maxobjs_per_slit(cpl_table *);
00146 int mos_get_nobjects(cpl_table *);
00147
00148 int mos_check_slits(cpl_table *);
00149 int * fors_get_nobjs_perslit(cpl_table *);
00150
00151 CPL_END_DECLS
00152
00153 #endif