Loading [MathJax]/extensions/TeX/AMSsymbols.js
LALPulsar 7.1.1.1-5e288d3
All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
LUT.h
Go to the documentation of this file.
1/*
2 * Copyright (C) 2005 Badri Krishnan, Alicia Sintes
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation; either version 2 of the License, or
7 * (at your option) any later version.
8 *
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
13 *
14 * You should have received a copy of the GNU General Public License
15 * along with with program; see the file COPYING. If not, write to the
16 * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
17 * MA 02110-1301 USA
18 */
19#ifndef _LUT_H
20#define _LUT_H
21
22#ifdef __cplusplus
23extern "C" {
24#endif
25
26/**
27 * \defgroup LUT_h Header LUT.h
28 * \ingroup lalpulsar_hough
29 * \date 2001, 2003
30 * \brief Provides structures and function prototypes required for the construction of look up tables
31 * that are the core for building the Hough maps.
32 * \author Sintes, A.M, Papa, M.A. and Krishnan, B.
33 *
34 * History: Created by Sintes May 11, 2001
35 * Modified by Badri Krishnan Feb 2003
36 *
37 * ### Synopsis ###
38 *
39 * \code
40 * #include <lal/LUT.h>
41 * \endcode
42 *
43 * Our goal is the construction of Hough maps. In order to produce them
44 * efficiently, the present implemetation makes use of <tt>lut</tt>s.
45 * Here we provide the necessary routines for their construction and use.
46 *
47 * In principle, the subroutines provided are valid for
48 * any Hough master equation of the form:
49 * \f[ \nu-F_0 =\vec\xi (t) \cdot (\hat n -\hat N )\, ,\f]
50 * where \f$ \nu \f$ is the measured frequency of the signal at time \f$ t \f$ ,
51 * \f$ F_0 \f$ intrinsic frequency of the signal at that time, \f$ \hat n \f$ location of the
52 * souce in the sky, \f$ \hat N \f$ the center of the sky patch used in the
53 * demodulation procedure,
54 * and
55 * \f$ \vec\xi (t) \f$ any vector.
56 *
57 * The form of this vector \f$ \vec\xi (t) \f$
58 * depends on the demodulation procedure
59 * used in the previous step. In our case this corresponds to
60 * \f[\vec\xi (t) = \left( F_0+
61 * \sum_k F_k \left[ \Delta T \right]^k\right) \frac{\vec v(t)}{c}
62 * + \left( \sum_k k F_k \left[ \Delta T \right]^{k-1}\right)
63 * \frac {\vec x(t)- \vec x(\hat t_0)}{c}\, ,\f]
64 * and
65 * \f[F_0 \equiv f_0 + \sum_k \Delta f_k
66 * \left[ \Delta T \right]^k \, , \f]
67 * where
68 * \f$ \vec v(t) \f$ is the velocity of the detector, \f$ \vec x(t) \f$ is the detector
69 * position,
70 * \f$ T_{\hat N}(t) \f$ is the time at
71 * the solar system barycenter (for a given sky
72 * location \f$ \hat N \f$ ),
73 * \f$ \Delta T \equiv T_{\hat N}(t)-T_{\hat N}(\hat t_0) \f$ ,
74 * \f$ \Delta f_k = f_k-F_k \f$ the residual spin-down parameter,
75 * \f$ F_k \f$ the spin-down parameter used in the demodulation, and \f$ f_0 \f$ , \f$ f_k \f$ the
76 * intrinsic frequency and spin-down parameters of the source at time \f$ \hat t_0 \f$ .
77 *
78 * Looking at the generic Hough master equation, one realizes that
79 * for a fixed time, a given value of \f$ F_0 \f$ , and a measured frequency \f$ \nu \f$
80 * p(from a selected peak), the source could be located anywhere on a circle (whose
81 * center points in the same direction of \f$ \vec\xi (t) \f$ and is characterized by
82 * \f$ \phi \f$ , the angle between \f$ \hat n \f$ and \f$ \vec\xi \f$ ). Since the Hough transform is performed on a
83 * set of spectra with discrete frequencies, a peak on the spectrum appearing at
84 * \f$ \nu \f$ could correspond to any source with a demodulated
85 * frequency in a certain interval. As a consequence, the location of the sources
86 * compatible with \f$ F_0 \f$ and \f$ \nu \f$ is not a circle but an annulus with a certain
87 * width.
88 *
89 * Our purpose is to map these annuli on a discrete space. An estimation of the
90 * average thickness of the annuli tells us that the vast majority of
91 * annuli will be very thin, and therefore our algorithm should not be
92 * optimized for drawing
93 * thick annuli but for thin ones. Also, the mapping implementation should be one with a uniform
94 * probability distribution in order to avoid discretization errors.
95 * In order to remove border effects, we use a biunivocal mapping, which
96 * requires
97 * that a pixel in a partial Hough map can belong only to one annulus,
98 * just touched by one peak of the spectrum. The criteria for the biunivocal mapping
99 * is that if and only if the center of the pixel is inside the annulus, then the pixel
100 * will be enhanced.
101 *
102 * In order to simplify (reduce the computational cost of) this task we
103 * construct look up tables (<tt>lut</tt>) where the borders of these annuli are
104 * marked for any possible \f$ \nu -F_0 \f$ value. Since we work on a discrete space these <tt>lut</tt> are
105 * valid for many \f$ F_0 \f$ values.
106 *
107 * \anchor LUTstereo
108 * \image html LUTstereo.png "Stereographic projection. [Credit to: D.Hilbert\, S.Cohn-Vossen\, P. Nemenyi\, ``Geometry and Imagination''\, Chelsea Publishing Company\, New York 1952.]"
109 *
110 * At this point we have already chosen a sky tiling to produce the Hough map efficiently.
111 * It consists of changing coordinates so that the center of the patch is located at
112 * \f$ (0,-\pi/2) \f$ in ( \f$ \alpha-\delta \f$ ) (or in any other coordinate system), then we make use
113 * of the stereographic projection (see \ref LUTstereo "this figure") and we take horizontal and vertical lines on
114 * the projected plane at constant space separation.
115 * This projection is advantageous because it avoids distortions, i.e. the
116 * pixel size is almost constant independently of the sky location, and makes the
117 * algorithm simpler. The stereographic projection has the property to map circles
118 * on the celestial sphere to circles on the projected plane.
119 *
120 */
121/** @{ */
122
123/*
124 * 5. Includes. This header may include others; if so, they go immediately
125 * after include-loop protection. Includes should appear in the following
126 * order:
127 * a. Standard library includes
128 * b. LDAS includes
129 * c. LAL includes
130 */
131
132#include <stdlib.h>
133#include <math.h>
134#include <stdio.h>
135# include <stdlib.h>
136# include <string.h>
137#include <lal/LALStdlib.h>
138#include <lal/LALConstants.h>
139#include <lal/AVFactories.h>
140#include <lal/SeqFactories.h>
141
142/*
143 * 7. Error codes and messages. This must be auto-extracted for
144 * inclusion in the documentation.
145 */
146
147/**\name Error Codes */
148/** @{ */
149#define LUTH_ENULL 1
150#define LUTH_ESIZE 2
151#define LUTH_ESZMM 4
152#define LUTH_EINT 6
153#define LUTH_ESAME 8
154#define LUTH_EFREQ 10
155#define LUTH_EVAL 12
156
157#define LUTH_MSGENULL "Null pointer"
158#define LUTH_MSGESIZE "Invalid input size"
159#define LUTH_MSGESZMM "Size mismatch"
160#define LUTH_MSGEINT "Invalid interval"
161#define LUTH_MSGESAME "Input/Output data vectors are the same"
162#define LUTH_MSGEFREQ "Invalid frequency"
163#define LUTH_MSGEVAL "Invalid value"
164/** @} */
165
166
167/* ******************************************************
168 * 8. Macros. But, note that macros are deprecated.
169 * They could be moved to the modules where are needed
170 */
171
172
173#define MAX(A, B) (((A) < (B)) ? (B) : (A))
174#define MIN(A, B) (((A) < (B)) ? (A) : (B))
175#define cot(A) (1./tan(A))
176
177/** \name Constant declarations */
178/** @{ */
179
180/* *******************************************************
181 * 9. Constant Declarations. (discouraged)
182 */
183
184/**
185 * Maximum ``error'' (as a fraction of the width of the thinnest annulus)
186 * which allows to represent a circle by a line.
187 */
188#define LINERR 0.001
189
190/**
191 * Maximum ``error'' (as a fraction of the width of the thinnest annulus)
192 * which allows to consider two border equivalents!
193 * It is relevant for determining the LUT frequency range validity
194 */
195#define PIXERR 0.5
196
197
198/* Width of the thinnest annulus in terms of pixels */
199/* #define PIXELFACTOR 2 */
200
201/** Earth v_epicycle/c TO BE CHANGED DEPENDING ON DETECTOR */
202#define VEPI LAL_TWOPI * LAL_REARTH_SI / ( LAL_DAYSID_SI * LAL_C_SI )
203/* #define VEPI 1.0e-06 */
204/* vepi = 2*pi*R_earth /(day *c) */
205
206/** Total detector velocity/c TO BE CHANGED DEPENDING ON DETECTOR */
207#define VTOT LAL_TWOPI * LAL_AU_SI / ( LAL_YRSID_SI * LAL_C_SI )
208/* #define VTOT 1.06e-04 */
209/* vtot = 2*pi* 1AU / (year * c) */
210
211/** @} */
212
213/* **************************************************************
214 * 10. Structure, enum, union, etc., typdefs.
215 */
216
217/** To be changed to {<tt>INT2 COORType</tt>} if the number of pixels in the x-direction exceeds 255. */
218typedef INT2 COORType; /* typedef INT4 COORType; */ /* typedef UCHAR COORType; */
219
220/** This structure stores the border of a circle clipped on the projected plane. */
221typedef struct tagHOUGHBorder {
222 INT4 yUpper; /**< upper y pixel affected by this border */
223 INT4 yLower; /**< lower y pixel affected by this border and yUpper<yLower or yUpper<0 are possible */
224 INT4 yCenter; /**< y pixel value of the center of the circle */
225 UINT2 ySide; /**< length of xPixel */
226 COORType *xPixel; /**< x pixel index to be marked */
228
229
230/**
231 * This structure stores the border indexes corresponding to one frequency
232 * bin plus the corrections to be added to the first column of the patch.
233 */
234typedef struct tagHOUGHBin2Border {
235 INT2 leftB1; /**< Border index to be used (<em>start-border</em> ` \f$ +1 \f$ ') */
236 INT2 rightB1; /**< Border index to be used (<em>stop-border</em> ` \f$ -1 \f$ ') */
237 INT2 leftB2; /**< Border index to be used (<em>start-border</em> ` \f$ +1 \f$ ') */
238 INT2 rightB2; /**< Border index to be used (<em>stop-border</em> ` \f$ -1 \f$ ') */
239 INT2 piece1max; /**< Interval limits of the (first piece) correction to the first column. */
240 INT2 piece1min; /**< If <tt>piece1min \f$ > \f$ piece1max</tt> no corrections should be added */
241 INT2 piece2max; /**< Interval limits of the (second piece) correction to the first column */
242 INT2 piece2min; /**< If <tt>piece2min \f$ > \f$ piece2max</tt> no corrections should be added */
244
245/** This structure stores the patch-time-frequency <em>look up table</em>. */
246typedef struct tagHOUGHptfLUT {
247 INT2 timeIndex; /**< time index of the \c lut */
248 INT8 f0Bin; /**< Frequency bin for which it has been constructed. */
249 REAL8 deltaF; /**< Frequency resolution <tt>df=1/TCOH</tt>, where <tt>1/TCOH</tt>
250 * is the coherent integration time used in teh demodulation procedure.
251 */
252 INT8 nFreqValid; /**< Number of frequencies where the \c lut is valid */
253 INT4 iniBin; /**< First bin affecting the patch with respect to \c f0 */
254 INT4 nBin; /**< Exact number of bins affecting the patch */
255 INT4 offset; /**< Frequency bin corresponding to center of patch measured with respect to \c f0Bin (zero in modulated case) */
256 UINT2 maxNBins; /**< Maximum number of bins affecting the patch (for memory allocation purposes) */
257 UINT2 maxNBorders; /**< Maximum number of borders affecting the patch (for memory allocation purposes) */
258 HOUGHBorder *border; /**< The annulus borders */
259 HOUGHBin2Border *bin; /**< Bin to border correspondence. */
261
262
263/** This structure stores patch-frequency \e grid information. */
264typedef struct tagHOUGHPatchGrid {
265 REAL8 f0; /**< Frequency to construct grid */
266 REAL8 deltaF; /**< Frequency resolution: <tt>df=1/TCOH</tt> */
267 REAL8 deltaX; /**< Longitudinal space resolution, x-direction */
268 REAL8 xMin; /**< Patch limit, as the coordinate of the center of the first pixel */
269 REAL8 xMax; /**< Patch limit, as the coordinate of the center of the last pixel. */
270 UINT2 xSide; /**< Real number of pixels in the x direction (in the projected plane); it should be less than or equal to \c xSideMax. */
271 REAL8 *xCoor; /**< Coordinates of the pixel centers */
272 REAL8 deltaY; /**< Longitudinal space resolution, y-direction */
273 REAL8 yMin; /**< Patch limit, as center of the first pixel */
274 REAL8 yMax; /**< Patch limit, as center of the last pixel */
275 UINT2 ySide; /**< Real number of pixels in the y-direction (in the projected
276 * plane). It should be less than or equal to \c ySideMax.
277 */
278 REAL8 *yCoor; /**< Coordinates of the pixel centers. */
280
281/** parameters needed for gridding the patch */
282typedef struct tagHOUGHResolutionPar {
283 INT8 f0Bin; /**< Frequency bin at which construct the grid */
284 REAL8 deltaF; /**< Frequency resolution: <tt>df=1/TCOH</tt> */
285 REAL8 patchSkySizeX;/**< Patch size in radians along x-axis */
286 REAL8 patchSkySizeY;/**< Patch size in radians along y-axis */
287 REAL8 pixelFactor; /**< number of pixel that fit in the thinnest annulus*/
288 REAL8 pixErr; /**< for validity of LUT as PIXERR */
289 REAL8 linErr; /**< as LINERR circle ->line */
290 REAL8 vTotC; /**< estimate value of v-total/C as VTOT */
292
293/** required for constructing patch */
294typedef struct tagHOUGHSizePar {
295 INT8 f0Bin; /**< corresponding freq bin */
296 REAL8 deltaF; /**< df=1/TCOH */
297 REAL8 deltaX; /**< pixel size in the projected plane */
299 UINT2 xSide; /**< number of pixels in the x direction (projected plane)*/
300 UINT2 ySide; /**< number of pixels in the y direction */
301 UINT2 maxNBins; /**< maximum number of bins affecting the patch; for memory allocation */
302 UINT2 maxNBorders; /**< maximum number of borders affecting the patch; for memory allocation */
303 INT8 nFreqValid; /**< number of frequencies where the LUT is valid */
304 REAL8 epsilon; /**< max. angle (rad.) from the pole to consider a circle as a line in the projected plane */
306
307/** Three dimensional Cartessian coordinates */
308typedef struct tagREAL8Cart3Coor {
313
314/** Two dimensional Cartessian coordinates */
315typedef struct tagREAL8Cart2Coor {
319
320/** Two dimensional polar coordinates. */
321typedef struct tagREAL8Polar2Coor {
325
326/** Polar coordinates of a unitary vector on the sphere */
327typedef struct tagREAL8UnitPolarCoor {
328 REAL8 alpha; /**< any value */
329 REAL8 delta; /**< In the interval [ \f$ -\pi/2, \, \pi/2 \f$ ] */
331
332/** Parameters needed to construct the partial look up table */
333typedef struct tagHOUGHParamPLUT {
334 INT8 f0Bin; /**< freq. bin for which it has been constructed */
335 REAL8 deltaF; /**< Frequency resolution: <tt>df=1/TCOH</tt> */
336 REAL8UnitPolarCoor xi; /**< Center of the circle on the celestial sphere,
337 * \f$ \xi \f$ (alpha,delta) in the rotated coordinates
338 */
339 REAL8 cosDelta; /**< \f$ \Delta \cos(\phi) \f$ corresponding to one annulus. */
340 INT4 offset; /**< Frequency bin corresponding to center of patch; measured w.r.t. \c f0Bin */
341 INT8 nFreqValid; /**< Number of frequency bins for which the LUT is valid */
342 REAL8 cosPhiMax0; /**< \f$ \max(\cos(\phi)) \f$ of the \c f0Bin */
343 REAL8 cosPhiMin0; /**< \f$ \min(\cos(\phi)) \f$ of the \c f0Bin */
344 REAL8 epsilon; /**< maximum angle (distance in radians) from the pole
345 * to consider a circle as a line in the projected plane
346 */
348
349/**
350 * Demodulation parameters needed for the Hough transform; all
351 * coordinates are assumed to be with respect to the same reference system.
352 */
353typedef struct tagHOUGHDemodPar {
354 REAL8 deltaF; /**< Frequency resolution: <tt>df=1/TCOH</tt> */
355 REAL8UnitPolarCoor skyPatch; /**< \f$ N_{center} \f$ (alpha, delta): position of the center of the patch */
356 REAL8Cart3Coor veloC; /**< \f$ v(t)/c \f$ (x,y,z): Relative detector velocity */
357 REAL8Cart3Coor positC; /**< \f$ (x(t)-x(t0))/c \f$ (x,y,z): Position of the detector */
358 REAL8 timeDiff; /**< \f$ T_{\hat N} (t)-T_{\hat N} (\hat t_0) \f$ : time difference */
359 REAL8Vector spin; /**< Spin down information. It includes the fields:
360 * \c length: maximum order of spin-down parameter, and
361 * <tt>*data</tt>: pointer to spin-down parameter set \f$ F_k \f$
362 */
364
365/*
366 * 11. Extern Global variables. (discouraged)
367 */
368
369
370/*
371 * 12. Functions Declarations (i.e., prototypes).
372 */
373void LALHOUGHComputeSizePar( LALStatus *status, /* demod case */
374 HOUGHSizePar *out,
376 );
377
378void LALHOUGHComputeNDSizePar( LALStatus *status, /* non -demod case*/
379 HOUGHSizePar *out,
381 );
382
383
385 HOUGHPatchGrid *out,
387 );
388
389void LALHOUGHCalcParamPLUT( LALStatus *status, /* Demod. case */
390 HOUGHParamPLUT *out, /* parameters needed build LUT*/
391 HOUGHSizePar *sizePar,
392 HOUGHDemodPar *par /* demodulation parameters */
393 );
394
395void LALNDHOUGHParamPLUT( LALStatus *status, /* non-demod. case */
396 HOUGHParamPLUT *out, /* parameters needed build LUT*/
397 HOUGHSizePar *sizePar,
398 HOUGHDemodPar *par /* demodulation parameters */
399 );
400
405 );
406
411 );
412
414 REAL8Polar2Coor *out,
416 );
417
419 REAL8Cart2Coor *out,
421 );
422
426 );
427
431 );
432
434 HOUGHptfLUT *lut,
435 HOUGHPatchGrid *patch,
437 );
438
439/** @} */
440
441#ifdef __cplusplus
442} /* Close C++ protection */
443#endif
444
445#endif /* Close double-include protection _LUT_H */
double REAL8
int16_t INT2
int64_t INT8
uint16_t UINT2
int32_t INT4
void LALStereoProjectCart(LALStatus *status, REAL8Cart2Coor *out, REAL8UnitPolarCoor *in)
void LALRotatePolarU(LALStatus *status, REAL8UnitPolarCoor *out, REAL8UnitPolarCoor *in, REAL8UnitPolarCoor *par)
Definition: Stereographic.c:97
void LALNDHOUGHParamPLUT(LALStatus *status, HOUGHParamPLUT *out, HOUGHSizePar *sizePar, HOUGHDemodPar *par)
Definition: NDParamPLUT.c:72
void LALStereoProjectPolar(LALStatus *status, REAL8Polar2Coor *out, REAL8UnitPolarCoor *in)
void LALInvRotatePolarU(LALStatus *status, REAL8UnitPolarCoor *out, REAL8UnitPolarCoor *in, REAL8UnitPolarCoor *par)
void LALStereoInvProjectPolar(LALStatus *status, REAL8UnitPolarCoor *out, REAL8Polar2Coor *in)
void LALHOUGHComputeNDSizePar(LALStatus *status, HOUGHSizePar *out, HOUGHResolutionPar *in)
Definition: PatchGrid.c:204
void LALHOUGHFillPatchGrid(LALStatus *status, HOUGHPatchGrid *out, HOUGHSizePar *par)
Definition: PatchGrid.c:331
void LALHOUGHConstructPLUT(LALStatus *status, HOUGHptfLUT *lut, HOUGHPatchGrid *patch, HOUGHParamPLUT *par)
void LALHOUGHCalcParamPLUT(LALStatus *status, HOUGHParamPLUT *out, HOUGHSizePar *sizePar, HOUGHDemodPar *par)
Definition: ParamPLUT.c:71
void LALHOUGHComputeSizePar(LALStatus *status, HOUGHSizePar *out, HOUGHResolutionPar *in)
Definition: PatchGrid.c:92
void LALStereoInvProjectCart(LALStatus *status, REAL8UnitPolarCoor *out, REAL8Cart2Coor *in)
INT2 COORType
To be changed to {INT2 COORType} if the number of pixels in the x-direction exceeds 255.
Definition: LUT.h:218
This structure stores the border indexes corresponding to one frequency bin plus the corrections to b...
Definition: LUT.h:234
INT2 rightB2
Border index to be used (stop-border ‘ ’)
Definition: LUT.h:238
INT2 leftB1
Border index to be used (start-border ‘ ’)
Definition: LUT.h:235
INT2 piece1min
If piece1min piece1max no corrections should be added.
Definition: LUT.h:240
INT2 piece2max
Interval limits of the (second piece) correction to the first column.
Definition: LUT.h:241
INT2 rightB1
Border index to be used (stop-border ‘ ’)
Definition: LUT.h:236
INT2 piece1max
Interval limits of the (first piece) correction to the first column.
Definition: LUT.h:239
INT2 leftB2
Border index to be used (start-border ‘ ’)
Definition: LUT.h:237
INT2 piece2min
If piece2min piece2max no corrections should be added.
Definition: LUT.h:242
This structure stores the border of a circle clipped on the projected plane.
Definition: LUT.h:221
COORType * xPixel
x pixel index to be marked
Definition: LUT.h:226
INT4 yLower
lower y pixel affected by this border and yUpper<yLower or yUpper<0 are possible
Definition: LUT.h:223
UINT2 ySide
length of xPixel
Definition: LUT.h:225
INT4 yCenter
y pixel value of the center of the circle
Definition: LUT.h:224
INT4 yUpper
upper y pixel affected by this border
Definition: LUT.h:222
Demodulation parameters needed for the Hough transform; all coordinates are assumed to be with respec...
Definition: LUT.h:353
REAL8Cart3Coor positC
(x,y,z): Position of the detector
Definition: LUT.h:357
REAL8 deltaF
Frequency resolution: df=1/TCOH
Definition: LUT.h:354
REAL8 timeDiff
: time difference
Definition: LUT.h:358
REAL8Cart3Coor veloC
(x,y,z): Relative detector velocity
Definition: LUT.h:356
REAL8Vector spin
Spin down information.
Definition: LUT.h:359
REAL8UnitPolarCoor skyPatch
(alpha, delta): position of the center of the patch
Definition: LUT.h:355
Parameters needed to construct the partial look up table.
Definition: LUT.h:333
REAL8UnitPolarCoor xi
Center of the circle on the celestial sphere, (alpha,delta) in the rotated coordinates.
Definition: LUT.h:336
REAL8 deltaF
Frequency resolution: df=1/TCOH
Definition: LUT.h:335
REAL8 cosPhiMin0
of the f0Bin
Definition: LUT.h:343
INT4 offset
Frequency bin corresponding to center of patch; measured w.r.t.
Definition: LUT.h:340
REAL8 epsilon
maximum angle (distance in radians) from the pole to consider a circle as a line in the projected pla...
Definition: LUT.h:344
REAL8 cosPhiMax0
of the f0Bin
Definition: LUT.h:342
REAL8 cosDelta
corresponding to one annulus.
Definition: LUT.h:339
INT8 nFreqValid
Number of frequency bins for which the LUT is valid.
Definition: LUT.h:341
INT8 f0Bin
freq.
Definition: LUT.h:334
This structure stores patch-frequency grid information.
Definition: LUT.h:264
UINT2 ySide
Real number of pixels in the y-direction (in the projected plane).
Definition: LUT.h:275
REAL8 deltaY
Longitudinal space resolution, y-direction.
Definition: LUT.h:272
REAL8 * xCoor
Coordinates of the pixel centers.
Definition: LUT.h:271
REAL8 yMin
Patch limit, as center of the first pixel.
Definition: LUT.h:273
UINT2 xSide
Real number of pixels in the x direction (in the projected plane); it should be less than or equal to...
Definition: LUT.h:270
REAL8 yMax
Patch limit, as center of the last pixel.
Definition: LUT.h:274
REAL8 deltaX
Longitudinal space resolution, x-direction.
Definition: LUT.h:267
REAL8 xMin
Patch limit, as the coordinate of the center of the first pixel.
Definition: LUT.h:268
REAL8 f0
Frequency to construct grid.
Definition: LUT.h:265
REAL8 xMax
Patch limit, as the coordinate of the center of the last pixel.
Definition: LUT.h:269
REAL8 * yCoor
Coordinates of the pixel centers.
Definition: LUT.h:278
REAL8 deltaF
Frequency resolution: df=1/TCOH
Definition: LUT.h:266
parameters needed for gridding the patch
Definition: LUT.h:282
REAL8 deltaF
Frequency resolution: df=1/TCOH
Definition: LUT.h:284
REAL8 pixErr
for validity of LUT as PIXERR
Definition: LUT.h:288
INT8 f0Bin
Frequency bin at which construct the grid.
Definition: LUT.h:283
REAL8 patchSkySizeY
Patch size in radians along y-axis.
Definition: LUT.h:286
REAL8 patchSkySizeX
Patch size in radians along x-axis.
Definition: LUT.h:285
REAL8 pixelFactor
number of pixel that fit in the thinnest annulus
Definition: LUT.h:287
REAL8 vTotC
estimate value of v-total/C as VTOT
Definition: LUT.h:290
REAL8 linErr
as LINERR circle ->line
Definition: LUT.h:289
required for constructing patch
Definition: LUT.h:294
UINT2 maxNBorders
maximum number of borders affecting the patch; for memory allocation
Definition: LUT.h:302
UINT2 maxNBins
maximum number of bins affecting the patch; for memory allocation
Definition: LUT.h:301
REAL8 epsilon
max.
Definition: LUT.h:304
UINT2 ySide
number of pixels in the y direction
Definition: LUT.h:300
INT8 nFreqValid
number of frequencies where the LUT is valid
Definition: LUT.h:303
INT8 f0Bin
corresponding freq bin
Definition: LUT.h:295
UINT2 xSide
number of pixels in the x direction (projected plane)
Definition: LUT.h:299
REAL8 deltaY
Definition: LUT.h:298
REAL8 deltaF
df=1/TCOH
Definition: LUT.h:296
REAL8 deltaX
pixel size in the projected plane
Definition: LUT.h:297
This structure stores the patch-time-frequency look up table.
Definition: LUT.h:246
INT4 offset
Frequency bin corresponding to center of patch measured with respect to f0Bin (zero in modulated case...
Definition: LUT.h:255
REAL8 deltaF
Frequency resolution df=1/TCOH, where 1/TCOH is the coherent integration time used in teh demodulatio...
Definition: LUT.h:249
UINT2 maxNBins
Maximum number of bins affecting the patch (for memory allocation purposes)
Definition: LUT.h:256
INT4 nBin
Exact number of bins affecting the patch.
Definition: LUT.h:254
HOUGHBorder * border
The annulus borders.
Definition: LUT.h:258
INT4 iniBin
First bin affecting the patch with respect to f0.
Definition: LUT.h:253
INT2 timeIndex
time index of the lut
Definition: LUT.h:247
HOUGHBin2Border * bin
Bin to border correspondence.
Definition: LUT.h:259
UINT2 maxNBorders
Maximum number of borders affecting the patch (for memory allocation purposes)
Definition: LUT.h:257
INT8 f0Bin
Frequency bin for which it has been constructed.
Definition: LUT.h:248
INT8 nFreqValid
Number of frequencies where the lut is valid.
Definition: LUT.h:252
Two dimensional Cartessian coordinates.
Definition: LUT.h:315
REAL8 y
Definition: LUT.h:317
REAL8 x
Definition: LUT.h:316
Three dimensional Cartessian coordinates.
Definition: LUT.h:308
REAL8 y
Definition: LUT.h:310
REAL8 x
Definition: LUT.h:309
REAL8 z
Definition: LUT.h:311
Two dimensional polar coordinates.
Definition: LUT.h:321
REAL8 radius
Definition: LUT.h:323
REAL8 alpha
Definition: LUT.h:322
Polar coordinates of a unitary vector on the sphere.
Definition: LUT.h:327
REAL8 alpha
any value
Definition: LUT.h:328
REAL8 delta
In the interval [ ].
Definition: LUT.h:329