source: Sophya/trunk/Cosmo/SimLSS/cmvgsm2sph.cc@ 3983

Last change on this file since 3983 was 3790, checked in by cmv, 15 years ago

etude des cubes generes par le GSM, cmv 28/06/2010

File size: 1.5 KB
Line 
1#include "sopnamsp.h"
2#include "machdefs.h"
3#include <stdlib.h>
4#include <stdio.h>
5#include <fstream>
6#include <iostream>
7#include <string.h>
8#include <unistd.h>
9
10#include "skymap.h"
11
12
13int main(int narg,char *arg[])
14{
15 int nside = 512;
16 string ppfrn = "cmvgsm2sph";
17
18 if(narg<=1) {
19 cout<<"cmvgsm2sph liste_gsm.list [ppfroot_name]"<<endl;
20 return -1;
21 }
22
23 ifstream flist(arg[1], ofstream::in);
24 if(!flist)
25 {cout<<"ERROR: open failed for "<<arg[1]<<endl; return -2;}
26 if(narg>2) ppfrn = arg[2];
27
28 int nfilrd = 0, nfrderr = 0;;
29 while(1) {
30 string fn; double f=-1.; int is = -1;
31 flist>>is>>f>>fn;
32 if(flist.eof()) break;
33 cout<<nfilrd<<" : is="<<is<<" f="<<f<<" fn="<<fn<<endl;
34
35 SphereHEALPix<r_4> sph(nside);
36 int npix = sph.NbPixels();
37 if(nfilrd==0) cout<<"Healpix sph nside="<<nside<<" npix="<<npix<<endl;
38
39 ifstream fin(fn.c_str(), ofstream::in);
40 if(!fin) {
41 cout<<"ERROR: open failed for "<<fn<<endl;
42 nfrderr++;
43 continue;
44 }
45
46 int nread = 0;
47 while(1) {
48 double v = 0;
49 fin>>v;
50 if(fin.eof()) break;
51 if(nread<npix) sph(nread) = v;
52 nread++;
53 }
54
55 if(nread!=npix) {
56 cout<<"ERROR: mismatch nread="<<nread<<" / "<<npix<<endl;
57 nfrderr++;
58 } else {
59 char str[1024];
60 sprintf(str,"%s_%d.ppf",ppfrn.c_str(),is);
61 POutPersist pos(str);
62 sph.Info()["ISeq"] = (int_4)is;
63 sph.Info()["FMHz"] = (double)f;
64 sph.Info()["FName"] = fn;
65 pos<<PPFNameTag("sph")<<sph;
66 nfilrd++;
67 }
68 }
69 cout<<"\nread "<<nfilrd<<" files, with "<<nfrderr<<" echecs"<<endl;
70
71 return 0;
72}
73
Note: See TracBrowser for help on using the repository browser.