// Lecture des fichiers chanum_?.ppf et recherche des visibilites ecrites dans les matrices d'acq // > make OBJ=$CMVPROG/obj/ EXE=$CMVPROG/exe/ chanum_1210 #include "sopnamsp.h" #include "machdefs.h" #include #include #include #include #include #include #include #include #include #include #include "pexceptions.h" #include "tvector.h" #include "nbtrixx.h" // > chanum_1210 -f 1375.0610351 -o CasA02Dec.txt crt*/CasA02Dec/chanum_*.ppf // > chanum_1210 -f 1375.0610351 -o Crab03Dec.txt crt*/Crab03Dec/chanum_*.ppf // > chanum_1210 -f 1382.5378418 -o Sun03Dec.txt crt*/Sun03Dec/chanum_*.ppf // > chanum_1210 -f 1390.0146484 -o CasA03Dec.txt crt*/CasA03Dec/chanum_*.ppf int decode_numthread(string filein,string& dir); //--------------------------- Fonctions de ce fichier ------------------- void usage(void); void usage(void) { cout<<"Usage: chanum_1210 [options] chanum_?.ppf ..."<=narg) {usage(); return -2;} vector vcode, vnth, vrow; vector vdir; int nvisi = 0; for(int ifile=optind;ifile chanpairnum; if(pin.GotoNameTag("chanpairnum")) pin.GetObject(chanpairnum,"chanpairnum"); else {cout<<"!!!UNKNOWN OBJECTchanpairnum "<0) ? vcode[IVcode(i-1)]: 99999999; uint_4 vcode_suiv = (iv2) {swap(v1,v2); argu += " -c";} // faut-il conjuger ? sprintf(str," -t %d",vnth[ip]); argu += str; // numero de threads sprintf(str," -r %d",vrow[ip]); argu += str; // ligne de la matrice acq // nom du fichier de sortie avec gestion des duplications if(vcode_suiv==vcode[ip] || vcode_prec!=vcode[ip]) argu += " -D"; if(vcode_prec==vcode[ip]) { dupli++; argu += " -D"; } else { ndupli+=dupli; dupli=0; } sprintf(str," -o visi%d_%02d_%02d.ppf",dupli,v1,v2); argu += str; argu += " "; argu += vdir[ip]; // repertoire des fichiers acq ftxt << argu <=filein.size()) return -1; if(p<=1) dir = ""; else dir = filein.substr(0,p-1); const char * c = (filein.c_str() + p); int nth = -2; sscanf(c,"chanum_%d.ppf",&nth); //cout<<"\""<