@@ -229,20 +229,18 @@ static void usage(char *argv[])
229
229
fprintf (OUTMAN, " Apply a l_1 constraint also on the mixing matrix. Default is no. \n " );
230
230
fprintf (OUTMAN, " [-d]\n " );
231
231
fprintf (OUTMAN, " Estimate the number of sources. Default is no. \n " );
232
- fprintf (OUTMAN, " [-d]\n " );
233
- fprintf (OUTMAN, " Estimate the number of sources. Default is no. \n " );
234
232
fprintf (OUTMAN, " [-m]\n " );
235
233
fprintf (OUTMAN, " Mad-based stopping criterion when the number of sources is estimated. Default is 5 - default criterion is l2-based. \n " );
236
234
fprintf (OUTMAN, " [-L]\n " );
237
235
fprintf (OUTMAN, " L2-based stopping criterion when the number of sources is estimated. Default is 40 (in dB). \n " );
238
- fprintf (OUTMAN, " [-D] \n " );
239
- fprintf (OUTMAN, " Spectra with disjoint supports for thresholds higher than 7 Mad. \n " ); // Should be an option
236
+ // fprintf(OUTMAN, " [-D] \n");
237
+ // fprintf(OUTMAN, " Spectra with disjoint supports for thresholds higher than 7 Mad. \n"); // Should be an option
240
238
fprintf (OUTMAN, " [-K Last K-Mad]\n " );
241
239
fprintf (OUTMAN, " Last value of K for K-Mad Thresholding. \n " );
242
240
fprintf (OUTMAN, " [-G Global Thresholding]\n " );
243
- fprintf (OUTMAN, " [-O]\n " );
244
- fprintf (OUTMAN, " Orthogonalization of the spectra\n " );
245
- verbose_usage ();
241
+ // fprintf(OUTMAN, " [-O]\n");
242
+ // fprintf(OUTMAN, " Orthogonalization of the spectra\n");
243
+ verbose_usage ();
246
244
vm_usage ();
247
245
manline ();
248
246
exit (-1 );
@@ -435,7 +433,7 @@ static void transinit(int argc, char *argv[])
435
433
436
434
int main (int argc, char *argv[])
437
435
{
438
- fltarray Dat;
436
+ dblarray Dat;
439
437
/* Get command line arguments, open input file(s) if necessary */
440
438
fitsstruct Header;
441
439
char Cmd[512 ];
@@ -466,38 +464,44 @@ int main(int argc, char *argv[])
466
464
467
465
if (Verbose == True) cout << " \n Reading the data" << endl;
468
466
469
- io_3d_read_data (Name_Cube_In, Dat, &Header);
470
-
467
+ // io_3d_read_data(Name_Cube_In, Dat, &Header);
468
+ fits_read_dblarr (Name_Cube_In, Dat);
469
+
471
470
int Nx = Dat.nx ();
472
471
int Ny = Dat.ny ();
473
472
int Nz = Dat.nz ();
474
- if (Verbose == True) cout << " Nx = " << Dat.nx () << " Ny = " << Dat.ny () << " Nz = " << Dat.nz () << endl;
475
-
473
+ if (Verbose == True)
474
+ cout << " Nx = " << Dat.nx () << " Ny = " << Dat.ny () << " Nz = " << Dat.nz () << endl;
475
+ // Dat.info("READ data");
476
+
477
+
476
478
if (Normalize == True)
477
479
{
478
480
double Mean = Dat.mean ();
479
481
double Sigma = Dat.sigma ();
482
+ // cout << "Data mean = " << Mean << " Sigma = " << Sigma << endl;
483
+ // printf("Sigmad=f = %f", Sigma);
480
484
for (int i=0 ;i<Nx;i++)
481
485
for (int j=0 ;j<Ny;j++)
482
486
for (int k=0 ;k<Nz;k++) Dat (i,j,k) = (Dat (i,j,k)-Mean)/Sigma;
483
487
}
484
-
488
+ // Dat.info("Normalized data");
489
+
485
490
486
491
// MR2D1D WT;
487
492
GMCA_2D WT;
488
-
489
493
if (Verbose == True) cout << " Alloc ... " << endl;
490
494
WT.alloc (Nx, Ny, Nz, Transform, NbrScale2d, 1 ); // On ne regularise que la MixingMat
491
495
492
496
if (Verbose == True) cout << " 2d1d_trans ... " << endl;
493
497
494
498
// WT.transform (Dat); // Pas utile
495
-
499
+
496
500
// WT.write(Name_Out);
497
501
// Compute the 2D1D transform
498
- fltarray TabVect;
499
- WT.transform_to_vectarray (Dat, TabVect);
500
- // fits_write_fltarr ("xx_tabvect.fits", TabVect);
502
+ dblarray TabVect;
503
+ WT.transform_to_vectdblarray (Dat, TabVect);
504
+ // fits_write_dblarr ("xx_tabvect.fits", TabVect);
501
505
502
506
// Initalize the class for GMCA
503
507
@@ -518,7 +522,7 @@ int main(int argc, char *argv[])
518
522
WT.GlobThrd = GThrd;
519
523
WT.SVConst = UsePCA;
520
524
WT.MatNbrScale1D = Nbr_Plan;
521
- fltarray QSVec;
525
+ dblarray QSVec;
522
526
523
527
if (UsePCA == True)
524
528
{
@@ -528,12 +532,12 @@ int main(int argc, char *argv[])
528
532
529
533
if (UseMask == True)
530
534
{
531
- fits_read_fltarr (Name_Mask, WT.Mask );
535
+ fits_read_dblarr (Name_Mask, WT.Mask );
532
536
}
533
537
534
538
if (UseKnownColomn == True)
535
539
{
536
- fits_read_fltarr (Name_KnowColumn, WT.MatKnownColumn );
540
+ fits_read_dblarr (Name_KnowColumn, WT.MatKnownColumn );
537
541
if (WT.MatKnownColumn .naxis () == 1 ) WT.NbrKnownColumn = 1 ;
538
542
else WT.NbrKnownColumn = WT.MatKnownColumn .axis (2 );
539
543
}
@@ -543,7 +547,7 @@ int main(int argc, char *argv[])
543
547
544
548
if (EstimNbSources == False) // THE NUMBER OF SOURCES IS FIXED
545
549
{
546
- fltarray TabSource;
550
+ dblarray TabSource;
547
551
int NbrCoef = TabVect.nx ();
548
552
TabSource.alloc (NbrCoef,NbrSources);
549
553
WT.GMCA ::Verbose = Verbose;
@@ -554,19 +558,19 @@ int main(int argc, char *argv[])
554
558
if (EstimNbSources == TRUE ) // THE NUMBER OF SOURCES IS ESTIMATED
555
559
{
556
560
int NbrSourcesMax = NbrSources;
557
- float RelError = 0 ;
561
+ double RelError = 0 ;
558
562
// float SigmaData=TabVect.sigma();
559
563
NbrSources = 1 ;
560
564
bool ExitCriterion = False; // / CHANGEDDDDD
561
- float OldRelError=0 ;
562
- float DiffRelError;
565
+ double OldRelError=0 ;
566
+ double DiffRelError;
563
567
564
568
while (NbrSources <= NbrSourcesMax && ExitCriterion == False)
565
569
{
566
570
NbrSources++;
567
571
if (Verbose == True) cout << " Running GMCA ... Number of Estimated Sources : " << NbrSources << endl;
568
572
WT.NbrSources = NbrSources;
569
- fltarray TabSource;
573
+ dblarray TabSource;
570
574
int NbrCoef = TabVect.nx ();
571
575
TabSource.alloc (NbrCoef,NbrSources);
572
576
WT.GMCA ::Verbose = Verbose;
@@ -605,17 +609,17 @@ int main(int argc, char *argv[])
605
609
606
610
// Reconstruction :
607
611
if (Verbose == True) cout << " Reconstruction ... " << endl;
608
- fltarray EstSources;
612
+ dblarray EstSources;
609
613
WT.recons_sources (Dat,EstSources);
610
614
// WT.Sort_Sources(EstSources);
611
615
612
616
if (Verbose == True) cout << " Write results ... " << endl;
613
617
// fits_write_fltarr ("xx_EstSources.fits", EstSources);
614
- fits_write_fltarr (" xx_EstMixmat.fits" , WT.MixingMat );
615
- fits_write_fltarr (" xx_InvMixingMat.fits" , WT.InvMixingMat );
618
+ fits_write_dblarr (" xx_EstMixmat.fits" , WT.MixingMat );
619
+ fits_write_dblarr (" xx_InvMixingMat.fits" , WT.InvMixingMat );
616
620
617
621
// Header.origin = Cmd;
618
- fits_write_fltarr (Name_Out, EstSources);
622
+ fits_write_dblarr (Name_Out, EstSources);
619
623
620
624
exit (0 );
621
625
}
0 commit comments