FORS Pipeline Reference Manual 4.9.20
|
00001 /* $Id: moses.h,v 1.39 2013/02/28 15:10:43 cgarcia Exp $ 00002 * 00003 * This file is part of the VIMOS Pipeline 00004 * Copyright (C) 2002-2010 European Southern Observatory 00005 * 00006 * This program is free software; you can redistribute it and/or modify 00007 * it under the terms of the GNU General Public License as published by 00008 * the Free Software Foundation; either version 2 of the License, or 00009 * (at your option) any later version. 00010 * 00011 * This program is distributed in the hope that it will be useful, 00012 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00013 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00014 * GNU General Public License for more details. 00015 * 00016 * You should have received a copy of the GNU General Public License 00017 * along with this program; if not, write to the Free Software 00018 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 00019 */ 00020 00021 /* 00022 * $Author: cgarcia $ 00023 * $Date: 2013/02/28 15:10:43 $ 00024 * $Revision: 1.39 $ 00025 * $Name: fors-4_9_20 $ 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) CPL_ATTR_DEPRECATED; 00040 cpl_image *mos_normalise_longflat(cpl_image *, int, int, int) 00041 CPL_ATTR_DEPRECATED; 00042 cpl_error_code mos_arc_background_1D(float *, float *, int, int, int); 00043 cpl_image *mos_arc_background(cpl_image *, int, int); 00044 int mos_lines_width(const float *, int); 00045 cpl_vector *mos_peak_candidates(const float *, int, float, float); 00046 cpl_vector *mos_refine_peaks(const float *, int, cpl_vector *, int); 00047 void mos_set_multiplex(int); 00048 cpl_bivector *mos_identify_peaks(cpl_vector *, cpl_vector *, 00049 double, double, double); 00050 cpl_bivector *mos_find_peaks(const float *, int, cpl_vector *, 00051 cpl_polynomial *, double, int); 00052 double mos_eval_dds(cpl_polynomial *, double, double, double, double); 00053 cpl_polynomial *mos_poly_wav2pix(cpl_bivector *, int, double, int, 00054 int *, double *); 00055 cpl_polynomial *mos_poly_pix2wav(cpl_bivector *, int, double, int, 00056 int *, double *); 00057 cpl_image *mos_wavelength_calibration_raw(const cpl_image *, cpl_vector *, 00058 double, float, int, int, double, 00059 double, double *, double *, int *, 00060 double *, cpl_table *, cpl_image *, 00061 cpl_image *, cpl_table *, cpl_mask *); 00062 cpl_error_code mos_interpolate_wavecalib_slit(cpl_table *, cpl_table *, 00063 int, int); 00064 cpl_error_code mos_interpolate_wavecalib(cpl_table *, cpl_image *, int, int); 00065 cpl_table *mos_locate_spectra(cpl_mask *); 00066 cpl_error_code mos_validate_slits(cpl_table *); 00067 cpl_error_code mos_rotate_slits(cpl_table *, int, int, int); 00068 cpl_table *mos_identify_slits(cpl_table *, cpl_table *, cpl_table *); 00069 cpl_table *mos_identify_slits_fast(cpl_table *, cpl_table *, cpl_table *); 00070 cpl_table *mos_trace_flat(cpl_image *, cpl_table *, double, 00071 double, double, double); 00072 cpl_table *mos_poly_trace(cpl_table *, cpl_table *, int); 00073 cpl_error_code mos_global_trace(cpl_table *, cpl_table *, int); 00074 cpl_image *mos_spatial_calibration(cpl_image *, cpl_table *, cpl_table *, 00075 double, double, double, double, int, 00076 cpl_image *); 00077 cpl_image *mos_wavelength_calibration_final(cpl_image *, cpl_table *, 00078 cpl_vector *, double, float, int, 00079 int, double, double, double *, 00080 double *, int *, double *, 00081 cpl_table *, cpl_image *, 00082 cpl_image *, cpl_table *); 00083 cpl_table *mos_global_distortion(cpl_table *, cpl_table *, 00084 cpl_table *, cpl_table *, double); 00085 cpl_table *mos_build_slit_location(cpl_table *, cpl_table *, int); 00086 cpl_table *mos_build_curv_coeff(cpl_table *, cpl_table *, cpl_table *); 00087 cpl_table *mos_build_disp_coeff(cpl_table *, cpl_table *); 00088 cpl_table *mos_wavelength_align(cpl_image *, cpl_table *, double, double, 00089 double, cpl_table *, cpl_vector *, int, 00090 int, cpl_image *, int); 00091 cpl_table *mos_wavelength_align_lss(cpl_image *, double, double, double, 00092 cpl_table *, cpl_vector *, int, int, 00093 cpl_image *, int); 00094 cpl_image *mos_wavelength_calibration(cpl_image *, double, double, double, 00095 double, cpl_table *, int); 00096 cpl_image *mos_map_pixel(cpl_table *, double, double, double, double, int); 00097 cpl_image *mos_map_idscoeff(cpl_table *, int, double, double, double); 00098 cpl_image *mos_map_wavelengths(cpl_image *, cpl_image *, cpl_table *, 00099 cpl_table *, double, double, double, double); 00100 cpl_image *mos_map_spectrum(cpl_image *, cpl_image *, cpl_image *, cpl_table *, 00101 cpl_table *, double, double, double, double, int); 00102 cpl_image *mos_subtract_sky(cpl_image *, cpl_table *, cpl_table *, double, 00103 double, double, double); 00104 cpl_table *mos_sky_map(cpl_image *, cpl_image *, double, cpl_image *); 00105 cpl_table *mos_sky_map_super(cpl_image *, cpl_image *, double, double, int, 00106 cpl_image *); 00107 cpl_image *mos_sky_local_old(cpl_image *spectra, cpl_table *slits); 00108 cpl_image *mos_sky_local(cpl_image *, cpl_table *, int); 00109 00110 cpl_error_code mos_clean_cosmics(cpl_image *, float, float, float); 00111 cpl_error_code mos_clean_bad_pixels(cpl_image *, cpl_table *, int); 00112 00113 double mos_distortions_rms(cpl_image *, cpl_vector *, double, double, int, int); 00114 00115 cpl_image *mos_spatial_map(cpl_image *, cpl_table *, cpl_table *, double, 00116 double, double, double); 00117 cpl_image *mos_detect_objects(cpl_image *, cpl_table *, int, int, int); 00118 cpl_image **mos_extract_objects(cpl_image *, cpl_image *, cpl_table *, 00119 int, double, double, int); 00120 int mos_spectral_resolution(cpl_image *, double, double, double, int, 00121 double *, double *, double *, double *, int *); 00122 cpl_table *mos_resolution_table(cpl_image *image, double startwave, 00123 double dispersion, int saturation, 00124 cpl_vector *lines); 00125 double mos_integrate_signal(cpl_image *, cpl_image *, int, int, double, double); 00126 00127 cpl_polynomial *mos_montecarlo_polyfit(cpl_table *points, cpl_table *evaluate, 00128 int samples, int order); 00129 00130 cpl_error_code mos_randomise_image(cpl_image *, double ron, 00131 double gain, double bias); 00132 00133 /* Instrument dependent! */ 00134 00135 double mos_get_gain_vimos(cpl_propertylist *); 00136 cpl_table *mos_load_overscans_vimos(const cpl_propertylist *, int); 00137 cpl_table *mos_load_overscans_fors(const cpl_propertylist *); 00138 cpl_table *mos_load_slits_vimos(cpl_propertylist *); 00139 int mos_check_multiplex(cpl_table *); 00140 cpl_table *mos_load_slits_fors_mxu(cpl_propertylist *); 00141 cpl_table *mos_load_slits_fors_mos(cpl_propertylist *, int * nslits_out_det); 00142 cpl_table *mos_load_slits_fors_lss(cpl_propertylist *); 00143 cpl_table *mos_load_slits_fors_pmos(cpl_propertylist *, int * nslits_out_det); 00144 00145 cpl_error_code mos_refmask_find_gaps(cpl_mask *, cpl_image *, double); 00146 cpl_error_code mos_saturation_process(cpl_image *); 00147 cpl_error_code mos_subtract_background(cpl_image *); 00148 00149 cpl_error_code mos_object_intersect(cpl_table **, cpl_table *, int, float); 00150 00151 int mos_get_maxobjs_per_slit(cpl_table *); 00152 int mos_get_nobjects(cpl_table *); 00153 00154 int mos_check_slits(cpl_table *, float); 00155 int *fors_get_nobjs_perslit(cpl_table *); 00156 int mos_rebin_signal(cpl_image **, int); 00157 int mos_rebin_error(cpl_image **, int); 00158 cpl_table *mos_photometric_calibration(cpl_image *, double, double, double, 00159 double, cpl_table *, double, cpl_table *, 00160 int); 00161 int map_table(cpl_image *, double, double, cpl_table *, char *, char *); 00162 cpl_image *mos_ksigma_stack(cpl_imagelist *imlist, 00163 double klow, double khigh, int kiter, 00164 cpl_image **); 00165 cpl_image *mos_apply_photometry(cpl_image *, cpl_table *response, 00166 cpl_table *ext_table, double startwave, 00167 double dispersion, double gain, 00168 double exptime, double airmass); 00169 cpl_image *mos_propagate_photometry_error(cpl_image *, cpl_image *, 00170 cpl_table *response, 00171 cpl_table *ext_table, double startwave, 00172 double dispersion, double gain, 00173 double exptime, double airmass); 00174 int mos_check_polarisation(cpl_image *q_image, cpl_image *q_error, 00175 cpl_image *u_image, cpl_image *u_error, 00176 double startwave, double dispersion, 00177 double band, cpl_table *pol_sta, 00178 double ra, double dec, char *filter, 00179 int *polarisation, 00180 double *p_offset, double *p_error, 00181 double *a_offset, double *a_error); 00182 int mos_compute_offset(cpl_table *, cpl_table *, double *); 00183 cpl_error_code mos_image_shift(cpl_image *, double dx, double dy); 00184 int mos_slit_closest_to_center(cpl_table *slits, int nx, int ny); 00185 cpl_error_code mos_extract_flux(cpl_image *, cpl_table *, double, double, 00186 int, double, double *, double *); 00187 cpl_error_code mos_extract_flux_mapped(cpl_image *, cpl_table *, 00188 double, double, 00189 double lambda, double startwave, 00190 double dispersion, int dx, double gain, 00191 double *o_flux, double *o_err); 00192 int mos_median_in_slit(cpl_table *, cpl_table *, int slit, 00193 char *label, double *mvalue); 00194 cpl_image *mos_image_filter_median(cpl_image *image, int nx, int ny); 00195 00196 int fors_mos_is_lss_like(cpl_table *maskslits, int nslits_out_det); 00197 00198 00199 CPL_END_DECLS 00200 00201 #endif /* MOSES_H */