Ignore:
Timestamp:
Aug 24, 2000, 12:18:02 PM (25 years ago)
Author:
ansari
Message:

structuration a la ppersist+ convention sur hdu

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/SophyaExt/FitsIOServer/fitsntuple.cc

    r1047 r1136  
    2525  ownobj_ = true;
    2626
    27   ReadF(inputfile,hdunum);
     27  Read(inputfile,hdunum);
    2828}
    2929
     
    4646{
    4747  if (ownobj_ && dobj_ != NULL) delete dobj_;
    48   if (column_ != NULL) delete [] column_;
     48  //  if (column_ != NULL) delete [] column_;
    4949}
    5050
    51 void FITS_NTuple::Read(char inputfile[],int hdunum)
    52 {
    53   ReadF(inputfile,hdunum);
    54 }
     51//void FITS_NTuple::Read(char inputfile[],int hdunum)
     52//{
     53//  ReadF(inputfile,hdunum);
     54//}
    5555void FITS_NTuple::ReadLines(char inputfile[],int firstLine, int numberOfLines,int hdunum)
    5656{
    5757  fistLineToBeRead_ = firstLine;
    5858  numberOfLinesToBeRead_ = numberOfLines;
    59   ReadF(inputfile,hdunum);
     59  Read(inputfile,hdunum);
    6060}
    6161
    6262
    6363
    64 void FITS_NTuple::Write(char outputfile[], bool OldFile)
     64//void FITS_NTuple::Write(char outputfile[], bool OldFile)
     65//{
     66//  WriteF(outputfile, OldFile);
     67//}
     68
     69void FITS_NTuple::ReadFromFits(FitsInFile& is)
    6570{
    66   WriteF(outputfile, OldFile);
    67 }
    68 
    69 void FITS_NTuple::ReadFromFits()
    70 {
    71   //  if (!fn.IsFitsTable())
    72     if (!IsFitsTable())
     71  if (!is.IsFitsTable())
    7372    {
    7473      throw PException("ReadFromFits: the fits file seems not to be a bintable nor ASCII table");
    7574    }
    7675  int nbcols, nbentries;
    77   //  nbcols = fn.NbColsFromFits();
    78   nbcols = NbColsFromFits();
     76  nbcols = is.NbColsFromFits();
    7977  nbentries = 0;
    8078  int k;
    81   //  for (k=0; k<nbcols; k++) nbentries=max( nbentries, fn.NentriesFromFits(k) );
    82   for (k=0; k<nbcols; k++) nbentries=max( nbentries, NentriesFromFits(k) );
     79  for (k=0; k<nbcols; k++) nbentries=max( nbentries, is.NentriesFromFits(k) );
    8380 
    8481  char ** ColName = new char*[nbcols];
     
    8784    {
    8885      ColName[k] = new char[LONNOM1];
    89       //      strncpy(ColName[k], fn.ColNameFromFits(k).c_str(),LONNOM);
    90       strncpy(ColName[k], ColNameFromFits(k).c_str(),LONNOM);
     86      strncpy(ColName[k], is.ColNameFromFits(k).c_str(),LONNOM);
    9187      ColName[k][LONNOM] =  '\0';
    9288    }
    9389  for (k=0; k<nbcols;k++)
    9490    {
    95       //      char ss= fn.ColTypeFromFits(k);
    96       char ss= ColTypeFromFits(k);
     91      char ss= is.ColTypeFromFits(k);
    9792      string type;
    9893      if (ss != 'E')
     
    123118    }
    124119  delete [] ColName;
    125   //   if (column_ != NULL) delete [] column_;
    126   //  column_ = new float[nbentries];
    127120
    128   // j'initialise le NTuple a zero, pour le dimensionner
    129   // (SetVal suppose que le ntuple est deja dimensionne)
    130121  r_4* ligne = new r_4[nbcols];
    131   //  for (k=0; k<nbcols; k++) ligne[k]=0.;
    132   //  for (k=0; k<nbentries;k++) dobj_->Fill(ligne);
    133   //  delete [] ligne;
    134122
    135   //%%%%%%
    136     int firstln, lastln;
    137     if (numberOfLinesToBeRead_ > 0)
    138       {
    139         firstln = fistLineToBeRead_;
    140         lastln = firstln + numberOfLinesToBeRead_;
    141       }
    142     else
    143       {
    144         firstln = 0;
    145         lastln  = nbentries;
    146       }
    147     int numLigne;
    148     for (numLigne=firstln; numLigne < lastln; numLigne++)
    149       {
    150         //      fn.GetBinTabLine(numLigne, ligne);
    151         GetBinTabLine(numLigne, ligne);
    152         dobj_->Fill(ligne);
    153       }
    154     delete [] ligne;
     123  int firstln, lastln;
     124  if (numberOfLinesToBeRead_ > 0)
     125    {
     126      firstln = fistLineToBeRead_;
     127      lastln = firstln + numberOfLinesToBeRead_;
     128    }
     129  else
     130    {
     131      firstln = 0;
     132      lastln  = nbentries;
     133    }
     134  int numLigne;
     135  for (numLigne=firstln; numLigne < lastln; numLigne++)
     136    {
     137      is.GetBinTabLine(numLigne, ligne);
     138      dobj_->Fill(ligne);
     139    }
     140  delete [] ligne;
    155141
    156     //%%%%%%%
     142  dobj_->Info()=is.DVListFromFits();
     143}
    157144
    158 
    159     //  for (k=0; k<nbcols;k++)
    160     //    {
    161     //     fn.GetBinTabFCol(column_, nbentries, k);
    162     //     for (int nent=0; nent<nbentries; nent++) dobj_->SetVal(nent,k, column_[nent]);
    163     //   }
    164     //  dobj_->Info()=fn.DVListFromFits();
    165   dobj_->Info()=DVListFromFits();
    166 }
    167 void FITS_NTuple::WriteToFits()
     145void FITS_NTuple::WriteToFits(FitsOutFile& os)
    168146{
    169147  if(dobj_ == NULL)
     
    192170      strncpy(Noms[k],dobj_->NomIndex(k),LONNOM1);
    193171    }
    194   // la librairie fitsio ecrit colonne par colonne
     172
    195173  char* type= new char[ncols+1];
    196174  for (k=0;k<ncols+1;k++) type[k]='E';
    197175  type[ncols]='\0';
    198176  vector<int> dummy;
    199   //  fn.makeHeaderBntblOnFits(type,Noms, nentries, ncols, dvl, extname, dummy);
    200   makeHeaderBntblOnFits(type,Noms, nentries, ncols, dvl, extname, dummy);
     177
     178  os.makeHeaderBntblOnFits(type,Noms, nentries, ncols, dvl, extname, dummy);
    201179   for (k=0; k< ncols; k++)
    202180    {
     
    205183   delete [] Noms;
    206184   delete [] type;
    207    for (k=0; k<ncols;k++) putColToFits(k, nentries, getColFromObj(k));
     185   float* column =  new float[nentries];
     186   for (k=0; k<ncols;k++)
     187     {
     188       for(int j = 0; j < nentries; j++) column[j]= dobj_->GetVal(j,k);
     189       os.putColToFits(k, nentries, column);
     190     }
     191   delete [] column;
    208192
    209193}
    210194
    211 float* FITS_NTuple::getColFromObj(int colNr)
    212 {
    213   if (column_ != NULL)
    214     {
    215       delete [] column_;
    216       column_ = NULL;
    217     }
    218   column_ = new float[dobj_->NEntry()];
    219   for(int j = 0; j < dobj_->NEntry(); j++) column_[j]= dobj_->GetVal(j,colNr);
    220   return column_;
    221 }
Note: See TracChangeset for help on using the changeset viewer.