Changeset 3825 in Sophya for trunk/Cosmo/RadioBeam/srcat2cube.cc
- Timestamp:
- Aug 2, 2010, 7:29:48 PM (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Cosmo/RadioBeam/srcat2cube.cc
r3785 r3825 72 72 sa_size_t idxd = nvss.IndexNom("C_DEJ2000"); 73 73 sa_size_t idxf = nvss.IndexNom("S1_4"); 74 cout << " ... Index Alpha: " << idxa << " Delta: " << idxd << " Flux: " << idxf << endl; 74 sa_size_t idxmajax = nvss.IndexNom("MajAxis"); 75 sa_size_t idxminax = nvss.IndexNom("MinAxis"); 76 77 cout << " ... Index Alpha: " << idxa << " Delta: " << idxd << " Flux: " << idxf 78 << " MajAxis: " << idxmajax << " MajAxis: " << idxminax << endl; 75 79 76 80 TArray<r_4> omap(NPhi,NTheta); … … 83 87 84 88 sa_size_t srccnt=0; 89 sa_size_t extendedsrccnt=0; 90 85 91 double meanflx=0.; 86 92 double flxmin=9.e99; … … 89 95 double dtet = ThetaSizeDegre/(double)NTheta; 90 96 double dphi = PhiSizeDegre/(double)NPhi; 97 double mpixsizarcmin = 0.5*(dtet+dphi)*60.; 98 91 99 for (sa_size_t n=0; n<nvss.NRows(); n++) { 92 100 r_8* pline=nvss.GetLineD(n); … … 94 102 double delta=pline[idxd]; // delta en degre 95 103 double flx=pline[idxf]*1.e-3; // flux en Jy 104 double srcszarcmin=0.5*(pline[idxmajax]+pline[idxminax])/60.; // taille (extension de la source en arcmin 105 if (srcszarcmin<1.) srcszarcmin=1.; 96 106 double tet = 90.-delta; 97 107 double phi = alpha; … … 100 110 if ((i<0)||(i>=omap.SizeX())) continue; 101 111 if ((j<0)||(j>=omap.SizeY())) continue; 102 omap(i,j) += flx; 112 double srat = (4.*srcszarcmin*srcszarcmin)/(mpixsizarcmin*mpixsizarcmin); 113 if (srcszarcmin<(0.5*mpixsizarcmin)) { // Toute l'energie dans un seul pixel 114 omap(i,j) += flx*srat; 115 } 116 else { // on repartit l'energie de la source dans plusieurs pixels 117 extendedsrccnt++; 118 for(int bi=-1;bi<=1;bi++) { 119 for(sa_size_t bj=-1; bj<=1; bj++) { 120 sa_size_t ii = (phi-phi0+bi*srcszarcmin/60.)/dphi; 121 sa_size_t jj = (tet-tet0+bj*srcszarcmin/60.)/dtet; 122 if ((ii<0)||(ii>=omap.SizeX())) continue; 123 if ((jj<0)||(jj>=omap.SizeY())) continue; 124 if ((bi==0)&&(bj==0)) omap(ii,jj) += flx*srat*0.3; 125 else omap(ii,jj) += flx*srat*0.7/8.; 126 } 127 } 128 } 103 129 srccnt++; meanflx+=flx; 104 130 if (flx<flxmin) flxmin=flx; … … 108 134 cout << "srccat2cube[3]: Output rectangular map computed " << endl; 109 135 meanflx /= (double)srccnt; 110 cout << " SrcCount in map: " << srccnt << " -> meanFlx=" << meanflx << " min=" << flxmin 136 cout << " SrcCount in map: " << srccnt << " extended=" << extendedsrccnt 137 << " -> meanFlx=" << meanflx << " min=" << flxmin 111 138 << " max=" << flxmax << " Jy" << endl; 112 139 113 140 double mean, sigma; 141 r_4 mintemp, maxtemp; 142 omap.MinMax(mintemp, maxtemp); 114 143 MeanSigma(omap, mean, sigma); 115 144 cout << " Src Map : Mean=" << mean << " Sigma=" << sigma << " Jy - Sizes:" << endl;
Note:
See TracChangeset
for help on using the changeset viewer.