// 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.csh ../../crt*/PittsDec10/CasA02Dec/chanum_*.ppf // > chanum_1210 -f 1375.0610351 -o Crab03Dec.csh ../../crt*/PittsDec10/Crab03Dec/chanum_*.ppf // > chanum_1210 -f 1382.5378418 -o Sun03Dec.csh ../../crt*/PittsDec10/Sun03Dec/chanum_*.ppf // > chanum_1210 -f 1390.0146484 -o CasA03Dec.csh ../../crt*/PittsDec10/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 = (i // Si v1 et v2 sont de parites differentes donc de cylindres differents // on veut toujours avoir une visi cad bool doconj = false; if( v1%2==0 && v2%2!=0 ) {argu += " -C"; doconj = true;} // v1 pair et v2 impair // 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++; if(i==vcode.size()-1) ndupli += dupli; } 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<<"\""<