Ignore:
Timestamp:
Jun 15, 2000, 12:22:23 PM (25 years ago)
Author:
ansari
Message:

modifs pour introduction lecteur de fits par lignes

File:
1 edited

Legend:

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

    r972 r1047  
    1515{
    1616  dobj_ = new NTuple;
    17   column_ = NULL;
    18   ownobj=true;
     17  InitNull();
     18  ownobj_ = true;
    1919}
    2020
     
    2222{
    2323  dobj_ = new NTuple;
    24   column_ = NULL;
    25   ownobj=true;
     24  InitNull();
     25  ownobj_ = true;
    2626
    2727  ReadF(inputfile,hdunum);
     
    3232{
    3333  dobj_ = new NTuple(obj);
    34   column_ = NULL;
    35   ownobj=true;
     34  InitNull();
     35  ownobj_ = true;
     36}
     37FITS_NTuple::FITS_NTuple(NTuple* obj)
     38{
     39  dobj_ = obj;
     40  InitNull();
     41  ownobj_ = false;
    3642}
    3743
     
    3945FITS_NTuple::~FITS_NTuple()
    4046{
    41   if (ownobj && dobj_ != NULL) delete dobj_;
     47  if (ownobj_ && dobj_ != NULL) delete dobj_;
    4248  if (column_ != NULL) delete [] column_;
    4349}
    4450
     51void FITS_NTuple::Read(char inputfile[],int hdunum)
     52{
     53  ReadF(inputfile,hdunum);
     54}
     55void FITS_NTuple::ReadLines(char inputfile[],int firstLine, int numberOfLines,int hdunum)
     56{
     57  fistLineToBeRead_ = firstLine;
     58  numberOfLinesToBeRead_ = numberOfLines;
     59  ReadF(inputfile,hdunum);
     60}
     61
     62
     63
    4564void FITS_NTuple::Write(char outputfile[], bool OldFile)
    4665{
     
    4867}
    4968
    50 void FITS_NTuple::ReadFromFits(FitsFile& fn)
    51 {
    52   if (!fn.IsFitsTable())
     69void FITS_NTuple::ReadFromFits()
     70{
     71  //  if (!fn.IsFitsTable())
     72    if (!IsFitsTable())
    5373    {
    5474      throw PException("ReadFromFits: the fits file seems not to be a bintable nor ASCII table");
    5575    }
    5676  int nbcols, nbentries;
    57   nbcols = fn.NbColsFromFits();
     77  //  nbcols = fn.NbColsFromFits();
     78  nbcols = NbColsFromFits();
    5879  nbentries = 0;
    5980  int k;
    60   for (k=0; k<nbcols; k++) nbentries=max( nbentries, fn.NentriesFromFits(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) );
    6183 
    6284  char ** ColName = new char*[nbcols];
     
    6587    {
    6688      ColName[k] = new char[LONNOM1];
    67       strncpy(ColName[k], fn.ColNameFromFits(k).c_str(),LONNOM);
     89      //      strncpy(ColName[k], fn.ColNameFromFits(k).c_str(),LONNOM);
     90      strncpy(ColName[k], ColNameFromFits(k).c_str(),LONNOM);
    6891      ColName[k][LONNOM] =  '\0';
    6992    }
    7093  for (k=0; k<nbcols;k++)
    7194    {
    72       char ss= fn.ColTypeFromFits(k);
     95      //      char ss= fn.ColTypeFromFits(k);
     96      char ss= ColTypeFromFits(k);
    7397      string type;
    7498      if (ss != 'E')
     
    87111    {
    88112      dobj_= new NTuple(nbcols,ColName);
    89       ownobj= true;     
     113      ownobj_ = true;     
    90114    }
    91115  else
     
    99123    }
    100124  delete [] ColName;
    101     if (column_ != NULL) delete [] column_;
    102     column_ = new float[nbentries];
     125  //   if (column_ != NULL) delete [] column_;
     126  //  column_ = new float[nbentries];
    103127
    104128  // j'initialise le NTuple a zero, pour le dimensionner
    105129  // (SetVal suppose que le ntuple est deja dimensionne)
    106130  r_4* ligne = new r_4[nbcols];
    107     for (k=0; k<nbcols; k++) ligne[k]=0.;
    108     for (k=0; k<nbentries;k++) dobj_->Fill(ligne);
     131  //  for (k=0; k<nbcols; k++) ligne[k]=0.;
     132  //  for (k=0; k<nbentries;k++) dobj_->Fill(ligne);
     133  //  delete [] ligne;
     134
     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      }
    109154    delete [] ligne;
    110   for (k=0; k<nbcols;k++)
    111     {
    112       fn.GetBinTabFCol(column_, nbentries, k);
    113       for (int nent=0; nent<nbentries; nent++) dobj_->SetVal(nent,k, column_[nent]);
    114     }
    115   dobj_->Info()=fn.DVListFromFits();
    116 }
    117 void FITS_NTuple::WriteToFits(FitsFile& fn)
     155
     156    //%%%%%%%
     157
     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}
     167void FITS_NTuple::WriteToFits()
    118168{
    119169  if(dobj_ == NULL)
     
    147197  type[ncols]='\0';
    148198  vector<int> dummy;
    149   fn.makeHeaderBntblOnFits(type,Noms, nentries, ncols, dvl, extname, dummy);
     199  //  fn.makeHeaderBntblOnFits(type,Noms, nentries, ncols, dvl, extname, dummy);
     200  makeHeaderBntblOnFits(type,Noms, nentries, ncols, dvl, extname, dummy);
    150201   for (k=0; k< ncols; k++)
    151202    {
Note: See TracChangeset for help on using the changeset viewer.