Changeset 3773 in Sophya for trunk/Cosmo/SimLSS/cmvrvloscor.cc


Ignore:
Timestamp:
May 9, 2010, 12:47:58 AM (15 years ago)
Author:
cmv
Message:

speed-up FITS file read, cmv 09/05/2010

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Cosmo/SimLSS/cmvrvloscor.cc

    r3771 r3773  
    1111#include "timing.h"
    1212#include "dvlist.h"
    13 #include "ntuple.h"
     13#include "histos.h"
    1414#include "fabtcolread.h"
    1515
     
    2727{
    2828 int nthread = 1;
    29  SophyaInit();
    30  InitTim();
     29 int_8 nhfill = 100000;
    3130
    3231 if(narg<=2) {usage(); return -1;}
     
    3534 try {
    3635 //----TRY-CATCH-TRY-CATCH-TRY-CATCH-TRY-CATCH-TRY-CATCH-TRY-CATCH
     36
     37 SophyaInit();
     38 InitTim();
    3739
    3840 cout<<"> read rho: "<<arg[1]<<endl;
     
    5254 cout<<"Zref="<<Zref<<" Href="<<Href<<endl;
    5355
     56 double dmin = min(Dx,min(Dy,Dz));
     57 double nmax = max(Nx,max(Ny,Nz));
     58 cout<<"dmin="<<dmin<<" nmax="<<nmax<<endl;
     59 Histo hmpc(-dmin*nmax,dmin*nmax,4.*nmax);
     60 nhfill = (int_8)Nx*(int_8)Ny*(int_8)Nz/nhfill; if(nhfill<=0) nhfill = 1;
     61
    5462 POutPersist pos("cmvrvloscor.ppf");
    5563
     
    5866 TArray<GEN3D_TYPE>& rgen = fluct3d.GetRealArray();
    5967 rgen = 0.;
    60  TVector<r_8> R(Nz), Rdis(Nz);
     68 TVector<GEN3D_TYPE> R(Nz), V(Nz);
     69 TVector<r_8> Rdis(Nz);
    6170
    6271 cout<<"> filling redshift distorted cube"<<endl;
     72 int_8 nread = 0;
    6373 for(int i=0;i<Nx;i++) {
    6474   if(i%(Nx/10)==0) cout<<"i="<<i<<endl;
    6575 for(int j=0;j<Ny;j++) {
    66    for(int l=0;l<Nz;l++) R(l) = f3dr.Read(l,j,i);
     76   //for(int l=0;l<Nz;l++) R(l) = f3dr.Read(l,j,i);
     77   //for(int l=0;l<Nz;l++) V(l) = f3dv.Read(l,j,i);
     78   f3dr.Read(j,i,R);
     79   f3dv.Read(j,i,V);
    6780   Rdis = 0.;
    6881   for(int l=0;l<Nz;l++) {
    69      double d = (1.+Zref) / Href * f3dv.Read(l,j,i);
     82     double d = (1.+Zref) / Href * V(l);
     83     if(nread%nhfill==0) hmpc.Add(d);
    7084     double lpd = (double)l + d/Dz; // valeur du deplacee
    7185     // on repartit proportionnelement au recouvrement sur 2 pixels
     
    8094 }
    8195 PrtTim(">>>> End filling redshift distorted cube");
     96 pos.PutObject(hmpc,"hmpc");
    8297
    8398 fluct3d.ReComputeFourier();
     
    131146openppf cmvrvloscor.ppf
    132147
     148disp hmpc
     149
    133150n/plot hpkrec.val%x x>0 ! "nsta cpts logx"
    134151
     
    144161
    145162# proj selon kT (black), selon kZ (red)
    146 n/plot hpkrec2.val%sqrt(x*x+y*y) ! ! "nsta cpts"
     163n/plot hpkrec2.val%sqrt(x*x+y*y) ! ! "nsta crossmarker3 logx"
    147164 */
Note: See TracChangeset for help on using the changeset viewer.