Changeset 3941 in Sophya
- Timestamp:
- Jan 26, 2011, 6:52:12 PM (15 years ago)
- Location:
- trunk/AddOn/TAcq
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/AddOn/TAcq/chanum_1210.cc
r3940 r3941 18 18 #include "nbtrixx.h" 19 19 20 // > chanum_1210 -f 1375.0610351 - F 0,8888,5 -o CasA02Dec.csh ../../crt*/PittsDec10/CasA02Dec/chanum_*.ppf21 // > chanum_1210 -f 1375.0610351 - F 0,8888,5 -o Crab03Dec.csh ../../crt*/PittsDec10/Crab03Dec/chanum_*.ppf22 // > chanum_1210 -f 1382.5378418 - F 0,8888,5 -o Sun03Dec.csh ../../crt*/PittsDec10/Sun03Dec/chanum_*.ppf23 // > chanum_1210 -f 1390.0146484 - F 0,8888,5 -o CasA03Dec.csh ../../crt*/PittsDec10/CasA03Dec/chanum_*.ppf20 // > chanum_1210 -f 1375.0610351 -o CasA02Dec.csh ../../crt*/PittsDec10/CasA02Dec/chanum_*.ppf 21 // > chanum_1210 -f 1375.0610351 -o Crab03Dec.csh ../../crt*/PittsDec10/Crab03Dec/chanum_*.ppf 22 // > chanum_1210 -f 1382.5378418 -o Sun03Dec.csh ../../crt*/PittsDec10/Sun03Dec/chanum_*.ppf 23 // > chanum_1210 -f 1390.0146484 -o CasA03Dec.csh ../../crt*/PittsDec10/CasA03Dec/chanum_*.ppf 24 24 25 25 int decode_numthread(string filein,string& dir); … … 31 31 cout<<"Usage: chanum_1210 [options] chanum_?.ppf ..."<<endl 32 32 <<" -f F0MHz : 1ere frequence pour cette acquisition (def=0.)"<<endl 33 <<" -F if0,if1,idf : selection freq de if0 a if1 moyenne par idf (def=\"0,8888,1\")"<<endl34 33 <<" -T it0,it1 : selection fichier temps de it0 a it1 (def=\"0,99999\")"<<endl 35 34 <<" -o fichier.csh : nom du fichier de sortie pour les commandes a lancer"<<endl; … … 40 39 { 41 40 string outname = "chanum_1210.csh"; 42 string sel freq = "0,8888,1", seltime = "0,99999";41 string seltime = "0,99999"; 43 42 double freq0 = 0.; 44 43 45 44 char c; 46 while((c = getopt(narg,arg,"hO:o:f: F:T:")) != -1) {45 while((c = getopt(narg,arg,"hO:o:f:T:")) != -1) { 47 46 switch (c) { 48 47 case 'f' : … … 51 50 case 'o' : 52 51 outname = optarg; 53 break;54 case 'F' :55 selfreq = optarg;56 52 break; 57 53 case 'T' : … … 108 104 for(uint_4 i=0;i<vcode.size();i++) { 109 105 char str[512]; 110 sprintf(str,"time ${TACQEXE}/svv2mtx2_1210 -f %.7f -T %s -F %s" 111 ,freq0,seltime.c_str(),selfreq.c_str()); 106 sprintf(str,"time ${TACQEXE}/svv2mtx2_1210 -f %.7f -T %s",freq0,seltime.c_str()); 112 107 string argu = str; 113 108 uint_4 ip = IVcode(i); -
trunk/AddOn/TAcq/svv2mtx2_1210.cc
r3940 r3941 41 41 <<" -f freq0 : 1ere frequence en MHz"<<endl 42 42 <<" -T it1,it2 : numero (temps) des fichiers a traiter [it1,it2]"<<endl 43 <<" -F if1,if2,ngrpfreq : numero des frequences [if1,if2] de [0,N[ a traiter et regroupement par ngrpfreq"<<endl44 43 <<"ATTENTION: lancer ce prog depuis le repertoire ou doivent etre ecrits les fichiers de visi"<<endl; 45 44 } … … 56 55 int vacq1=-1, vacq2=-1; 57 56 int ifilmin=0, ifilmax=99999; 58 int jfr1=0, jfr2=-1, ngrpfreq=1;59 57 60 58 char c; 61 while((c = getopt(narg,arg,"hDCo:t:r:f:T: F:v:")) != -1) {59 while((c = getopt(narg,arg,"hDCo:t:r:f:T:v:")) != -1) { 62 60 switch (c) { 63 61 case 'v' : … … 85 83 sscanf(optarg,"%d,%d",&ifilmin,&ifilmax); 86 84 if(ifilmin<0) ifilmin=0; 87 break;88 case 'F' :89 sscanf(optarg,"%d,%d,%d",&jfr1,&jfr2,&ngrpfreq);90 if(ngrpfreq<=0) ngrpfreq=1;91 85 break; 92 86 case 'h' : … … 106 100 cout<<"freq0="<<freq0<<" MHz"<<endl; 107 101 cout<<"request: file "<<ifilmin<<" to "<<ifilmax<<endl; if(ifilmax<ifilmin) return -3; 108 cout<<"request: freq "<<jfr1<<" to "<<jfr2<<" grouped by "<<ngrpfreq<<endl;109 102 110 103 InitTim(); … … 163 156 TMatrix< complex<r_4> > MVisi; 164 157 TVector<r_8> MeanTT(nfile); 158 TVector<int_4> Npaqsum(nfile); 165 159 TVector<r_4> Freq; 166 TVector<int_4> Npaqsum(nfile);167 160 string tudeb, tufin; 168 161 double tudeb_day, tufin_day; … … 192 185 MeanTT(ntimefill) = (double)vismtx.Info()["MeanTT"]/125.e6; 193 186 uint_4 npaqsum = vismtx.Info()["NPAQSUM"]; 187 Npaqsum(ntimefill) = npaqsum; 194 188 195 189 // --- Initialisation purposes for the first read file … … 202 196 return -5; 203 197 } 204 205 // frequency grouping 206 int nfreq0 = vismtx.NCols(); 207 cout<<"vismtx: number of frequencies = "<<nfreq0<<endl; 208 if(jfr1<=0) jfr1=0; if(jfr1>=nfreq0) jfr1=nfreq0-1; 209 if(jfr2<jfr1 || jfr2>=nfreq0) jfr2=nfreq0-1; 210 cout<<"frequency from jfr1="<<jfr1<<" to jfr2="<<jfr2<<" grouped by "<<ngrpfreq<<endl; 211 nfreq = 0; for(int i=jfr1;i<=jfr2;i+=ngrpfreq) nfreq++; 212 cout<<"frequency from [jfr1="<<jfr1<<" , jfr2="<<jfr2<<"] grouped by "<<ngrpfreq 213 <<": total of "<<nfreq<<" freq"<<endl; 214 Freq.ReSize(nfreq); Freq = 0.; 215 for(int i=0;i<nfreq;i++) { 216 int nf=0; 217 for(int j=0; j<ngrpfreq; j++) { 218 int f = jfr1 + i*ngrpfreq + j; 219 if(f>jfr2) break; 220 Freq(i) += f; 221 nf++; 222 } 223 if(nf>0) Freq(i) /= (double)nf; 224 else {cout<<"ERROR: last freq bin with 0 freq in it"<<endl; return -6;} 225 if(i<4 || i>nfreq-4) cout<<" F("<<i<<") = "<<Freq(i)<<" nf="<<nf<<endl; 226 } 227 198 // Frequency 199 nfreq = vismtx.NCols(); 200 cout<<"vismtx: number of frequencies = "<<nfreq<<endl; 201 Freq.ReSize(nfreq); for(int i=0;i<nfreq;i++) Freq(i) = i; 228 202 // allocate visib matrice <f> vs t 229 203 cout<<"allocating visibility matrice ("<<nfile<<","<<nfreq<<") " … … 234 208 235 209 // Fill time-freq visibility matrix 236 for(int i=0;i<nfreq;i++) { 237 int nf=0; 238 for(int j=0; j<ngrpfreq; j++) { 239 int f = jfr1 + i*ngrpfreq + j; 240 if(f>jfr2) break; 241 MVisi(ntimefill,i) += vismtx(numrow,f); 242 nf++; 243 } 244 Npaqsum(ntimefill) = nf * npaqsum; 245 MVisi(ntimefill,i) /= double(Npaqsum(ntimefill)); 246 if(doconj) MVisi(ntimefill,i) = conj(MVisi(ntimefill,i)); 210 for(int c=0;c<nfreq;c++) { 211 MVisi(ntimefill,c) = vismtx(numrow,c) / complex<r_4>(npaqsum); 212 if(doconj) MVisi(ntimefill,c) = conj(MVisi(ntimefill,c)); 247 213 } 248 214 ntimefill++; … … 279 245 dvl["freq0"] = freq0; 280 246 dvl["dfreq0"] = 500./8192.; 281 dvl["jfr1"] = jfr1; 282 dvl["jfr2"] = jfr2; 283 dvl["ngrpfreq"] = ngrpfreq; 247 dvl["jfr1"] = 0; 248 dvl["jfr2"] = nfreq-1; 249 dvl["nfreq"] = nfreq; 250 dvl["ngrpfreq"] = 1; 284 251 dvl["ifilmin"] = ifilmin; 285 252 dvl["ifilmax"] = ifilmax; … … 298 265 dum3.Info() = dvl; 299 266 pos.PutObject(dum3,"visi"); 300 }301 pos.PutObject(Freq,"ifreq");267 pos.PutObject(Freq,"ifreq"); 268 } 302 269 303 270 } … … 330 297 n/plot ifreq.val%n ! ! "cpts" 331 298 332 n/plot npaqsum.val%n ! ! "cpts"333 334 299 n/plot meantt.val%n ! ! "cpts" 335 300 cp meantt dmeantt
Note:
See TracChangeset
for help on using the changeset viewer.