UVES Pipeline Reference Manual  5.4.0
uves_utils_cpl.h
1 /*
2  * This file is part of the ESO UVES Pipeline
3  * Copyright (C) 2004,2005 European Southern Observatory
4  *
5  * This program is free software; you can redistribute it and/or modify
6  * it under the terms of the GNU General Public License as published by
7  * the Free Software Foundation; either version 2 of the License, or
8  * (at your option) any later version.
9  *
10  * This program is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13  * GNU General Public License for more details.
14  *
15  * You should have received a copy of the GNU General Public License
16  * along with this program; if not, write to the Free Software
17  * Foundation, 51 Franklin St, Fifth Floor, Boston, MA 02111-1307 USA
18  */
19 
20 /*
21  * $Author: amodigli $
22  * $Date: 2010-09-24 09:32:08 $
23  * $Revision: 1.44 $
24  * $Name: not supported by cvs2svn $
25  * $Log: not supported by cvs2svn $
26  * Revision 1.42 2010/02/13 12:22:31 amodigli
27  * removed inlines (let's do work to compiler)
28  *
29  * Revision 1.41 2007/06/06 08:17:33 amodigli
30  * replace tab with 4 spaces
31  *
32  * Revision 1.40 2007/04/24 12:50:29 jmlarsen
33  * Replaced cpl_propertylist -> uves_propertylist which is much faster
34  *
35  * Revision 1.39 2007/02/27 14:08:46 jmlarsen
36  * Extended interface of uves_find_property
37  *
38  * Revision 1.38 2007/01/29 12:14:51 jmlarsen
39  * Added uves_find_property()
40  *
41  * Revision 1.37 2007/01/15 08:48:26 jmlarsen
42  * Exported get_kth function
43  *
44  * Revision 1.36 2006/11/06 15:19:42 jmlarsen
45  * Removed unused include directives
46  *
47  * Revision 1.35 2006/09/19 07:17:08 jmlarsen
48  * Reformatted line
49  *
50  * Revision 1.34 2006/09/11 08:19:10 jmlarsen
51  * Renamed identifier reserved by POSIX
52  *
53  * Revision 1.33 2006/09/08 14:06:03 jmlarsen
54  * Added uves_tools_get_median()
55  *
56  * Revision 1.32 2006/08/17 13:56:53 jmlarsen
57  * Reduced max line length
58  *
59  * Revision 1.31 2006/06/13 12:02:21 jmlarsen
60  * Renamed y0 -> y_0
61  *
62  * Revision 1.30 2006/02/21 14:24:45 jmlarsen
63  * Parameterized behaviour of median filter near image border
64  *
65  * Revision 1.29 2006/01/31 08:25:50 jmlarsen
66  * Renamed uves_fit_gaussian_2d -> uves_fit_gaussian_2d_image
67  *
68  * Revision 1.28 2006/01/25 16:13:20 jmlarsen
69  * Changed interface of gauss.fitting routine
70  *
71  * Revision 1.27 2006/01/12 15:41:14 jmlarsen
72  * Moved gauss. fitting to irplib
73  *
74  * Revision 1.26 2005/12/20 08:11:44 jmlarsen
75  * Added CVS entry
76  *
77  */
78 #ifndef UVES_UTILS_CPL_H
79 #define UVES_UTILS_CPL_H
80 
81 /*-----------------------------------------------------------------------------
82  Includes
83  -----------------------------------------------------------------------------*/
84 
85 #include <uves_propertylist.h>
86 #include <cpl.h>
87 #include <limits.h>
88 #include <float.h>
89 #include <stdbool.h>
90 
91 /*-----------------------------------------------------------------------------
92  Defines
93  -----------------------------------------------------------------------------*/
94 
95 /*-----------------------------------------------------------------------------
96  Prototypes
97  -----------------------------------------------------------------------------*/
98 const cpl_property * uves_find_property_const(const uves_propertylist *plist,
99  const char *name,
100  int number);
101 cpl_property * uves_find_property(uves_propertylist *plist,
102  const char *name,
103  int number);
104 
105 cpl_error_code uves_filter_image_median(cpl_image **image, int xwindow,
106  int ywindow, bool extrapolate_border);
107 cpl_error_code uves_filter_image_average(cpl_image *image, int radius_x,
108  int radius_y);
109 cpl_error_code uves_fit_gaussian_2d_image(const cpl_image *image,
110  const cpl_image *noise,
111  int x1, int y_1,
112  int x2, int y2,
113  double *x0, double *y_0,
114  double *sigmax, double *sigmay,
115  double *amplitude,
116  double *dx0, double *dy0);
117 
118 double uves_tools_get_median(double *a, int n);
119 double uves_utils_get_kth_double(double * a,
120  int n,
121  int k);
122 
123 
124 #endif
125 
126 
127 
128 
129 
130 
131 
132 
133 
134 
135 
136