Changeset 3785 in Sophya for trunk/Cosmo/RadioBeam/syncube.cc


Ignore:
Timestamp:
Jun 16, 2010, 11:53:54 PM (15 years ago)
Author:
ansari
Message:

Ajout programme srcat2cube.cc de calcul de carte des radio source, Reza 16/06/2010

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Cosmo/RadioBeam/syncube.cc

    r3783 r3785  
    4444#include "fiosinit.h"     
    4545
    46 
    4746#include "timing.h"
    4847#include "ctimer.h"
     48
     49#include "cubedef.h"
    4950
    5051//----------------------------------------------------------------------------
     
    6566    return 1;
    6667  }
    67 
    68   //---  Parametres des lois de puissance en frequence
    69   double AmpPL1 = 1.;   // amp max PowerLaw 2
    70   double PLidx1 = -2.5;  // index de la loi de puissance synchrotron
    71   double sigPLidx1 = 0.1;  // Sigma de la variation (gaussienne) de index1
    72   // Amplitude max de la 2eme composante en loi de puissance (tirage plat 0 ... AmpPL2)
    73   double AmpPL2 = 0.1;   // amp max PowerLaw 2
    74   double PLidx2 = -3.2;
    75   double sigPLidx2 = 0.15;
    7668
    7769  // decodage arguments
     
    10193    cout << "syncube[1]: Input resolution doubled : " << inmap << endl;
    10294
    103     sa_size_t NTet=256;
    104     sa_size_t NPhi=256;
    105     LocalMap<r_4> outmap(NPhi,NTet,60.,60.,110.,150.);
     95   LocalMap<r_4> outmap(NPhi,NTheta,60.,60.,110.,150.);
    10696    for(int_4 kk=0; kk<outmap.NbPixels(); kk++) {
    10797      double theta, phi;  // Theta, Phi en radians
     
    110100    }   
    111101
    112     TArray<r_4> omap(NPhi,NTet);
    113     double tet0 = Angle(60.,Angle::Degree).ToRadian();
    114     double phi0 = Angle(120.,Angle::Degree).ToRadian();
    115     double dtet = Angle(60.,Angle::Degree).ToRadian()/(double)NTet;
    116     double dphi = Angle(60.,Angle::Degree).ToRadian()/(double)NPhi;
     102    TArray<r_4> omap(NPhi,NTheta);
     103    double tet0 = Angle(Theta0Degre,Angle::Degree).ToRadian();
     104    double phi0 = Angle(Phi0Degre,Angle::Degree).ToRadian();
     105    double dtet = Angle(ThetaSizeDegre,Angle::Degree).ToRadian()/(double)NTheta;
     106    double dphi = Angle(PhiSizeDegre,Angle::Degree).ToRadian()/(double)NPhi;
    117107    for (sa_size_t j=0; j<omap.SizeY(); j++)  {
    118108      double theta = j*dtet+tet0;
     
    122112      }
    123113    }
     114
     115    double mean, sigma;
     116    MeanSigma(omap, mean, sigma);
     117    cout << "syncube[2] omap : Mean=" << mean << " Sigma=" << sigma << "  Jy - Sizes:" << endl;
     118    omap.Show();
     119
    124120    //    Sph2Sph(inmap,outmap);
    125121   
    126     cout << "syncube[2]: Output rectangular map computed " << outmap << endl;
    127122    if (narg > 3) {
    128123      string ppfname = arg[3];
     
    134129    }
    135130
    136     sa_size_t NFreq = 128;
    137     TArray<r_4> ocube(NPhi,NTet,NFreq);
     131    TArray<r_4> ocube(NPhi,NTheta,NFreq);
    138132
    139133    double infreq = 400.; // Frequence carte input en MHz
    140     double freq0 = 840.;  // Freq0 du cube de sortie
    141     double dfreq = 1.
     134    double freq0 = Freq0MHz;  // Freq0 du cube de sortie
     135    double dfreq = FreqSizeMHz/(double)NFreq
    142136
    143137    ThSDR48RandGen rg;
     
    162156    // On sauve le cube de sortie
    163157    {
    164       cout << " syncube[2]: Saving output cube to -> " << outname << endl;
     158      cout << " syncube[4]: Saving output cube to -> " << outname << endl;
    165159      POutPersist poc(outname);
    166160      poc << ocube;
     
    170164  }
    171165  catch (PThrowable& exc) {
    172     cerr << " treccyl.cc catched Exception " << exc.Msg() << endl;
     166    cerr << " syncube.cc catched Exception " << exc.Msg() << endl;
    173167    rc = 77;
    174168  } 
Note: See TracChangeset for help on using the changeset viewer.