Loading [MathJax]/extensions/TeX/AMSsymbols.js
LALPulsar 7.1.1.1-b246709
All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
HoughMapTest.c
Go to the documentation of this file.
1/*
2* Copyright (C) 2007 Badri Krishnan, Jolien Creighton, Alicia Sintes Olives
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
20/*-----------------------------------------------------------------------
21 *
22 * File Name: TestHoughMap.c
23 *
24 * Authors: Sintes, A.M., Krishnan, B.
25 *
26 *
27 * History: Created by Sintes June 25, 2001
28 * Modified August 6, 2001
29 * Modified by Badri Krishnan Feb 2003
30 *-----------------------------------------------------------------------
31 */
32
33/*
34 * 1. An author and Id block
35 */
36
37/**
38 * \author Sintes, A. M., Krishnan, B.
39 * \file
40 * \ingroup HoughMap_h
41 * \brief Tests the construction of Hough maps.
42 *
43 * ### Program TestHoughMap.c ###
44 *
45 *
46 * ### Usage ###
47 *
48 * \code
49 * TestHoughMap [-d debuglevel] [-o outfile] [-f f0] [-p alpha delta]
50 * \endcode
51 *
52 * ### Description ###
53 *
54 * \%TO BE CHANGED
55 *
56 * Similar to the previous ones, this program generates a patch grid, calculates
57 * the parameters needed for
58 * building a \c lut, and builds the \c lut. Then, given a peak-gram
59 * constructs a \c phmd at a
60 * certain frequency (shifted from the frequency at which the \c lut was built).
61 * The sky patch is set at the south pole,
62 * no spin-down parameters are assumed for the demodulation and
63 * every third peak in the spectrum is selected. The peak-gram frequency interval
64 * is large enough to ensure compatibility with the \c lut and the frequency of
65 * the \c phmd.
66 *
67 * Moreover, this program initializes a Hough map \c ht
68 * and the Hough
69 * map derivative space \c hd, adds one \c phmd into the Hough map
70 * derivative \c hd,
71 * constructs the total Hough map \c ht by integrating the \c hd,
72 * and outputs the \c ht into a file.
73 *
74 * By default, running this program with no arguments simply tests the subroutines,
75 * producing an output file called <tt>OutHough.asc</tt>. All default parameters are set from
76 * <tt>\#define</tt>d constants.
77 *
78 * The <b>-d</b> option sets the debug level to the specified value
79 * \c debuglevel. The <b>-o</b> flag tells the program to print the partial Hough map
80 * derivative to the specified data file \c outfile. The
81 * <b>-f</b> option sets the intrinsic frequency \c f0 at which build the <tt>lut</tt>.
82 * The <b>-p</b> option sets the velocity orientation of the detector
83 * \c alpha, \c delta (in radians).
84 *
85 * ### Uses ###
86 *
87 * \code
88 * LALHOUGHCalcParamPLUT()
89 * LALHOUGHConstructPLUT()
90 * LALHOUGHPeak2PHMD()
91 * LALHOUGHInitializeHT()
92 * LALHOUGHInitializeHD()
93 * LALHOUGHAddPHMD2HD()
94 * LALHOUGHIntegrHD2HT()
95 * LALPrintError()
96 * LALMalloc()
97 * LALFree()
98 * LALCheckMemoryLeaks()
99 * \endcode
100 *
101 */
102
103#include <lal/HoughMap.h>
104
105/**\name Error Codes */ /** @{ */
106#define TESTHOUGHMAPC_ENORM 0
107#define TESTHOUGHMAPC_ESUB 1
108#define TESTHOUGHMAPC_EARG 2
109#define TESTHOUGHMAPC_EBAD 3
110#define TESTHOUGHMAPC_EFILE 4
111
112#define TESTHOUGHMAPC_MSGENORM "Normal exit"
113#define TESTHOUGHMAPC_MSGESUB "Subroutine failed"
114#define TESTHOUGHMAPC_MSGEARG "Error parsing arguments"
115#define TESTHOUGHMAPC_MSGEBAD "Bad argument values"
116#define TESTHOUGHMAPC_MSGEFILE "Could not create output file"
117/** @} */
118
119
120/** \cond DONT_DOXYGEN */
121
122/* Default parameters. */
123
124
125#define F0 500.0 /* frequency to build the LUT. */
126#define TCOH 100000.0 /* time baseline of coherent integration. */
127#define DF (1./TCOH) /* frequency resolution. */
128#define ALPHA 0.0
129#define DELTA 0.0
130#define MWR 1 /*.minWidthRatio */
131#define FILEOUT "OutHough.asc" /* file output */
132#define PIXELFACTOR 2
133/* Usage format string. */
134
135#define USAGE "Usage: %s [-d debuglevel] [-o outfile] [-f f0] [-p alpha delta] [-s patchSizeX patchSizeY]\n"
136
137/*********************************************************************/
138/* Macros for printing errors & testing subroutines (from Creighton) */
139/*********************************************************************/
140
141#define ERROR( code, msg, statement ) \
142do { \
143 if ( lalDebugLevel & LALERROR ) \
144 XLALPrintError( "Error[0] %d: program %s, file %s, line %d, %s\n" \
145 " %s %s\n", (code), *argv, __FILE__, \
146 __LINE__, "$Id$", statement ? statement : \
147 "", (msg) ); \
148} while (0)
149
150#define INFO( statement ) \
151do { \
152 if ( lalDebugLevel & LALINFO ) \
153 XLALPrintError( "Info[0]: program %s, file %s, line %d, %s\n" \
154 " %s\n", *argv, __FILE__, __LINE__, \
155 "$Id$", (statement) ); \
156} while (0)
157
158#define SUB( func, statusptr ) \
159do { \
160 if ( (func), (statusptr)->statusCode ) { \
161 ERROR( TESTHOUGHMAPC_ESUB, TESTHOUGHMAPC_MSGESUB, \
162 "Function call \"" #func "\" failed:" ); \
163 return TESTHOUGHMAPC_ESUB; \
164 } \
165} while (0)
166/******************************************************************/
167
168/* >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< */
169/* vvvvvvvvvvvvvvvvvvvvvvvvvvvvvv------------------------------------ */
170int main( int argc, char *argv[] )
171{
172
173 static LALStatus status; /* LALStatus pointer */
174 static HOUGHptfLUT lut; /* the Look Up Table */
175 static HOUGHPatchGrid patch; /* Patch description */
176 static HOUGHParamPLUT parLut; /* parameters needed to build lut */
177 static HOUGHResolutionPar parRes;
178 static HOUGHDemodPar parDem; /* demodulation parameters */
179 static HOUGHSizePar parSize;
180 static HOUGHPeakGram pg;
181 static HOUGHphmd phmd; /* the partial Hough map derivative */
182 static HOUGHMapDeriv hd; /* the Hough map derivative */
183 static HOUGHMapTotal ht; /* the total Hough map */
184 /* ------------------------------------------------------- */
185
186 UINT2 maxNBins, maxNBorders;
187
188 INT8 f0Bin; /* freq. bin to construct LUT */
189 UINT2 xSide, ySide;
190
191 CHAR *fname = NULL; /* The output filename */
192 FILE *fp = NULL; /* Output file */
193
194 INT4 arg; /* Argument counter */
195 INT4 i, j; /* Index counter, etc */
196 UINT4 k;
197
198 REAL8 f0, alpha, delta, veloMod;
199 REAL8 patchSizeX, patchSizeY;
200
201 /************************************************************/
202 /* Set up the default parameters. */
203 /************************************************************/
204
205 ht.map = NULL;
206 hd.map = NULL;
207
208 f0 = F0;
209 f0Bin = F0 * TCOH;
210
211 parRes.f0Bin = f0Bin;
212 parRes.deltaF = DF;
213 parRes.patchSkySizeX = patchSizeX = 1.0 / ( TCOH * F0 * VEPI );
214 parRes.patchSkySizeY = patchSizeY = 1.0 / ( TCOH * F0 * VEPI );
215 parRes.pixelFactor = PIXELFACTOR;
216 parRes.pixErr = PIXERR;
217 parRes.linErr = LINERR;
218 parRes.vTotC = VTOT;
219
220 parDem.deltaF = DF;
221 parDem.skyPatch.alpha = 0.0;
222 parDem.skyPatch.delta = -LAL_PI_2;
223
224 alpha = ALPHA;
225 delta = DELTA;
226 veloMod = VTOT;
227
228
229 /********************************************************/
230 /* Parse argument list. i stores the current position. */
231 /********************************************************/
232 arg = 1;
233 while ( arg < argc ) {
234 /* Parse debuglevel option. */
235 if ( !strcmp( argv[arg], "-d" ) ) {
236 if ( argc > arg + 1 ) {
237 arg++;
238 } else {
240 XLALPrintError( USAGE, *argv );
241 return TESTHOUGHMAPC_EARG;
242 }
243 }
244 /* Parse output file option. */
245 else if ( !strcmp( argv[arg], "-o" ) ) {
246 if ( argc > arg + 1 ) {
247 arg++;
248 fname = argv[arg++];
249 } else {
251 XLALPrintError( USAGE, *argv );
252 return TESTHOUGHMAPC_EARG;
253 }
254 }
255 /* Parse frequency option. */
256 else if ( !strcmp( argv[arg], "-f" ) ) {
257 if ( argc > arg + 1 ) {
258 arg++;
259 f0 = atof( argv[arg++] );
260 f0Bin = f0 * TCOH;
261 parRes.f0Bin = f0Bin;
262 } else {
264 XLALPrintError( USAGE, *argv );
265 return TESTHOUGHMAPC_EARG;
266 }
267 }
268 /* Parse velocity position options. */
269 else if ( !strcmp( argv[arg], "-p" ) ) {
270 if ( argc > arg + 2 ) {
271 arg++;
272 alpha = atof( argv[arg++] );
273 delta = atof( argv[arg++] );
274 } else {
276 XLALPrintError( USAGE, *argv );
277 return TESTHOUGHMAPC_EARG;
278 }
279 }
280 /* Parse patch size option. */
281 else if ( !strcmp( argv[arg], "-s" ) ) {
282 if ( argc > arg + 2 ) {
283 arg++;
284 parRes.patchSkySizeX = patchSizeX = atof( argv[arg++] );
285 parRes.patchSkySizeY = patchSizeY = atof( argv[arg++] );
286 } else {
288 XLALPrintError( USAGE, *argv );
289 return TESTHOUGHMAPC_EARG;
290 }
291 }
292 /* Unrecognized option. */
293 else {
295 XLALPrintError( USAGE, *argv );
296 return TESTHOUGHMAPC_EARG;
297 }
298 } /* End of argument parsing loop. */
299 /******************************************************************/
300
301 if ( f0 < 0 ) {
303 XLALPrintError( USAGE, *argv );
304 return TESTHOUGHMAPC_EBAD;
305 }
306
307
308 /******************************************************************/
309 /* create patch grid */
310 /******************************************************************/
311 SUB( LALHOUGHComputeSizePar( &status, &parSize, &parRes ), &status );
312
313 xSide = parSize.xSide;
314 ySide = parSize.ySide;
315 maxNBins = parSize.maxNBins;
316 maxNBorders = parSize.maxNBorders;
317
318 /* allocate memory based on xSide and ySide */
319 patch.xSide = xSide;
320 patch.ySide = ySide;
321
322 patch.xCoor = NULL;
323 patch.yCoor = NULL;
324 patch.xCoor = ( REAL8 * )LALMalloc( xSide * sizeof( REAL8 ) );
325 patch.yCoor = ( REAL8 * )LALMalloc( ySide * sizeof( REAL8 ) );
326
327
328 SUB( LALHOUGHFillPatchGrid( &status, &patch, &parSize ), &status );
329
330
331 /******************************************************************/
332 /* memory allocation again and settings */
333 /******************************************************************/
334
335
336 lut.maxNBins = maxNBins;
337 lut.maxNBorders = maxNBorders;
338 lut.border =
339 ( HOUGHBorder * )LALMalloc( maxNBorders * sizeof( HOUGHBorder ) );
340 lut.bin =
341 ( HOUGHBin2Border * )LALMalloc( maxNBins * sizeof( HOUGHBin2Border ) );
342
343 phmd.maxNBorders = maxNBorders;
344 phmd.leftBorderP =
345 ( HOUGHBorder ** )LALMalloc( maxNBorders * sizeof( HOUGHBorder * ) );
346 phmd.rightBorderP =
347 ( HOUGHBorder ** )LALMalloc( maxNBorders * sizeof( HOUGHBorder * ) );
348
349
350 ht.xSide = xSide;
351 ht.ySide = ySide;
352 ht.map = ( HoughTT * )LALMalloc( xSide * ySide * sizeof( HoughTT ) );
353
354 hd.xSide = xSide;
355 hd.ySide = ySide;
356 hd.map = ( HoughDT * )LALMalloc( ( xSide + 1 ) * ySide * sizeof( HoughDT ) );
357
358 phmd.ySide = ySide;
359 phmd.firstColumn = NULL;
360 phmd.firstColumn = ( UCHAR * )LALMalloc( ySide * sizeof( UCHAR ) );
361
362
363 for ( i = 0; i < maxNBorders; ++i ) {
364 lut.border[i].ySide = ySide;
365 lut.border[i].xPixel = ( COORType * )LALMalloc( ySide * sizeof( COORType ) );
366 }
367
368
369 /******************************************************************/
370 /* Case: no spins, patch at south pole */
371 /************************************************************/
372
373 parDem.veloC.x = veloMod * cos( delta ) * cos( alpha );
374 parDem.veloC.y = veloMod * cos( delta ) * sin( alpha );
375 parDem.veloC.z = veloMod * sin( delta );
376
377 parDem.positC.x = 0.0;
378 parDem.positC.y = 0.0;
379 parDem.positC.z = 0.0;
380 parDem.timeDiff = 0.0;
381 parDem.spin.length = 0;
382 parDem.spin.data = NULL;
383
384
385 /******************************************************************/
386 /* Frequency-bin of the Partial Hough Map*/
387 /******************************************************************/
388
389 phmd.fBin = f0Bin + 21; /* a bit shifted from the LUT */
390
391 /******************************************************************/
392 /* A Peakgram for testing */
393 /******************************************************************/
394 pg.deltaF = DF;
395 pg.fBinIni = ( phmd.fBin ) - maxNBins;
396 pg.fBinFin = ( phmd.fBin ) + 5 * maxNBins;
397 pg.length = maxNBins; /* could be much smaller */
398 pg.peak = NULL;
399 pg.peak = ( INT4 * )LALMalloc( ( pg.length ) * sizeof( INT4 ) );
400
401 for ( k = 0; k < pg.length; ++k ) {
402 pg.peak[k] = 3 * k; /* a test */
403 }
404
405
406 /******************************************************************/
407 /* calculate parameters needed for buiding the LUT */
408 /******************************************************************/
409 SUB( LALHOUGHCalcParamPLUT( &status, &parLut, &parSize, &parDem ), &status );
410
411 /******************************************************************/
412 /* build the LUT */
413 /******************************************************************/
414 SUB( LALHOUGHConstructPLUT( &status, &lut, &patch, &parLut ), &status );
415
416 /******************************************************************/
417 /* build a PHMD from a peakgram and LUT */
418 /******************************************************************/
419
420 SUB( LALHOUGHPeak2PHMD( &status, &phmd, &lut, &pg ), &status );
421
422 /******************************************************************/
423 /* initializing the Hough map space */
424 /******************************************************************/
425
426 SUB( LALHOUGHInitializeHT( &status, &ht, &patch ), &status );
427
428 /******************************************************************/
429 /* initializing the Hough map derivative space */
430 /******************************************************************/
431
433
434 /******************************************************************/
435 /* sum a partial-HMD into a HD */
436 /******************************************************************/
437 SUB( LALHOUGHAddPHMD2HD( &status, &hd, &phmd ), &status );
438
439 /******************************************************************/
440 /* construction of a total Hough map: integration of a HM-deriv. */
441 /******************************************************************/
442
443 SUB( LALHOUGHIntegrHD2HT( &status, &ht, &hd ), &status );
444
445 /******************************************************************/
446 /* printing the results into a particular file */
447 /* if the -o option was given, or into FILEOUT */
448 /******************************************************************/
449
450 if ( fname ) {
451 fp = fopen( fname, "w" );
452 } else {
453 fp = fopen( FILEOUT, "w" );
454 }
455
456 if ( !fp ) {
458 return TESTHOUGHMAPC_EFILE;
459 }
460
461
462 for ( j = ySide - 1; j >= 0; --j ) {
463 for ( i = 0; i < xSide; ++i ) {
464 fprintf( fp, " %f", ht.map[j * xSide + i] );
465 fflush( fp );
466 }
467 fprintf( fp, " \n" );
468 fflush( fp );
469 }
470
471 fclose( fp );
472
473
474 /******************************************************************/
475 /* Free memory and exit */
476 /******************************************************************/
477
478 LALFree( pg.peak );
479
480 for ( i = 0; i < maxNBorders; ++i ) {
481 LALFree( lut.border[i].xPixel );
482 }
483
484 LALFree( lut.border );
485 LALFree( lut.bin );
486
487 LALFree( phmd.leftBorderP );
488 LALFree( phmd.rightBorderP );
489 LALFree( phmd.firstColumn );
490
491 LALFree( ht.map );
492 LALFree( hd.map );
493
494 LALFree( patch.xCoor );
495 LALFree( patch.yCoor );
496
498
500 return TESTHOUGHMAPC_ENORM;
501}
502
503/* >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< */
504
505/** \endcond */
#define SUB(func, statusptr)
#define ERROR(code, msg, statement)
#define INFO(statement)
#define TESTHOUGHMAPC_MSGEFILE
Definition: HoughMapTest.c:116
#define TESTHOUGHMAPC_MSGENORM
Definition: HoughMapTest.c:112
#define TESTHOUGHMAPC_MSGEARG
Definition: HoughMapTest.c:114
#define TESTHOUGHMAPC_EFILE
Definition: HoughMapTest.c:110
#define TESTHOUGHMAPC_ENORM
Definition: HoughMapTest.c:106
#define TESTHOUGHMAPC_MSGEBAD
Definition: HoughMapTest.c:115
#define TESTHOUGHMAPC_EBAD
Definition: HoughMapTest.c:109
#define TESTHOUGHMAPC_EARG
Definition: HoughMapTest.c:108
#define DELTA
#define ALPHA
int j
int k
void LALCheckMemoryLeaks(void)
#define LALMalloc(n)
#define LALFree(p)
static double double delta
#define fprintf
int main(int argc, char **argv)
void LALHOUGHInitializeHD(LALStatus *status, HOUGHMapDeriv *hd)
This function initializes the Hough map derivative space HOUGHMapDeriv *hd to zero.
Definition: HoughMap.c:31
REAL8 HoughTT
Total Hough Map pixel type.
Definition: HoughMap.h:113
void LALHOUGHAddPHMD2HD(LALStatus *status, HOUGHMapDeriv *hd, HOUGHphmd *phmd)
Given an initial Hough map derivative HOUGHMapDeriv *hd and a representation of a phmd HOUGHphmd *phm...
Definition: HoughMap.c:123
void LALHOUGHIntegrHD2HT(LALStatus *status, HOUGHMapTotal *ht, HOUGHMapDeriv *hd)
This function constructs a total Hough map HOUGHMapTotal *ht from its derivative HOUGHMapDeriv *hd by...
Definition: HoughMap.c:353
void LALHOUGHInitializeHT(LALStatus *status, HOUGHMapTotal *ht, HOUGHPatchGrid *patch)
This function initializes the total Hough map HOUGHMapTotal *ht to zero and checks consistency betwee...
Definition: HoughMap.c:74
#define LAL_PI_2
unsigned char UCHAR
double REAL8
int64_t INT8
uint16_t UINT2
char CHAR
uint32_t UINT4
int32_t INT4
#define VTOT
Total detector velocity/c TO BE CHANGED DEPENDING ON DETECTOR.
Definition: LUT.h:207
#define PIXERR
Maximum `‘error’' (as a fraction of the width of the thinnest annulus) which allows to consider two b...
Definition: LUT.h:195
#define LINERR
Maximum `‘error’' (as a fraction of the width of the thinnest annulus) which allows to represent a ci...
Definition: LUT.h:188
void LALHOUGHFillPatchGrid(LALStatus *status, HOUGHPatchGrid *out, HOUGHSizePar *par)
Definition: PatchGrid.c:331
#define VEPI
Earth v_epicycle/c TO BE CHANGED DEPENDING ON DETECTOR.
Definition: LUT.h:202
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
INT2 COORType
To be changed to {INT2 COORType} if the number of pixels in the x-direction exceeds 255.
Definition: LUT.h:218
REAL8 HoughDT
Hough Map derivative pixel type.
Definition: PHMD.h:121
void LALHOUGHPeak2PHMD(LALStatus *status, HOUGHphmd *phmd, HOUGHptfLUT *lut, HOUGHPeakGram *pg)
Construction of Partial-Hough-Map-Derivatives (phmd) given a peak-gram and the look-up-table.
Definition: Peak2PHMD.c:61
int XLALPrintError(const char *fmt,...) _LAL_GCC_PRINTF_FORMAT_(1
#define F0
#define FILEOUT
#define PIXELFACTOR
double alpha
This structure stores the border indexes corresponding to one frequency bin plus the corrections to b...
Definition: LUT.h:234
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
UINT2 ySide
length of xPixel
Definition: LUT.h:225
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
This structure stores the Hough map derivative.
Definition: HoughMap.h:121
UINT2 ySide
number of physical pixels in the y direction
Definition: HoughMap.h:123
UINT2 xSide
number of physical pixels in the x direction
Definition: HoughMap.h:122
HoughDT * map
the pixel count derivatives; the number of elements to allocate is ySide*(xSide+1)*
Definition: HoughMap.h:124
This structure stores the Hough map.
Definition: HoughMap.h:130
UINT2 ySide
number of physical pixels in the y direction
Definition: HoughMap.h:142
UINT2 xSide
number of physical pixels in the x direction
Definition: HoughMap.h:141
HoughTT * map
the pixel counts; the number of elements to allocate is ySide*xSide
Definition: HoughMap.h:143
Parameters needed to construct the partial look up table.
Definition: LUT.h:333
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 * xCoor
Coordinates of the pixel centers.
Definition: LUT.h:271
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 * yCoor
Coordinates of the pixel centers.
Definition: LUT.h:278
This structure stores the `‘peak-gram’'.
Definition: PHMD.h:129
REAL8 deltaF
Frequency resolution: df=1/TCOH
Definition: PHMD.h:131
UINT4 length
Number of peaks present in the peak-gram.
Definition: PHMD.h:134
UINT8 fBinFin
Frequency index of the last element of the spectrum covered by this peak-gram.
Definition: PHMD.h:133
UINT8 fBinIni
Frequency index of the first element of the spectrum covered by this peak-gram; it can be seen as an ...
Definition: PHMD.h:132
INT4 * peak
The peak indices relative to fBinIni, i.e., the zero peak corresponds to fBinIni.
Definition: PHMD.h:135
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
UINT2 ySide
number of pixels in the y direction
Definition: LUT.h:300
UINT2 xSide
number of pixels in the x direction (projected plane)
Definition: LUT.h:299
This structure stores a partial Hough map derivative.
Definition: PHMD.h:141
UINT8 fBin
Frequency bin of this partial map derivative.
Definition: PHMD.h:142
UCHAR * firstColumn
Number of elements of firstColumn.
Definition: PHMD.h:151
UINT2 ySide
number of elements of firstColumn
Definition: PHMD.h:150
HOUGHBorder ** rightBorderP
Pointers to borders.
Definition: PHMD.h:149
UINT2 maxNBorders
Maximun number of borders of each type (for memory allocation purposes), i.e. length of *leftBorderP ...
Definition: PHMD.h:145
HOUGHBorder ** leftBorderP
Pointers to borders.
Definition: PHMD.h:148
This structure stores the patch-time-frequency look up table.
Definition: LUT.h:246
UINT2 maxNBins
Maximum number of bins affecting the patch (for memory allocation purposes)
Definition: LUT.h:256
HOUGHBorder * border
The annulus borders.
Definition: LUT.h:258
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
REAL8 y
Definition: LUT.h:310
REAL8 x
Definition: LUT.h:309
REAL8 z
Definition: LUT.h:311
REAL8 alpha
any value
Definition: LUT.h:328
REAL8 delta
In the interval [ ].
Definition: LUT.h:329
REAL8 * data