Changeset 1047 in Sophya for trunk/SophyaExt/FitsIOServer/fitsntuple.cc
- Timestamp:
- Jun 15, 2000, 12:22:23 PM (25 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/SophyaExt/FitsIOServer/fitsntuple.cc
r972 r1047 15 15 { 16 16 dobj_ = new NTuple; 17 column_ = NULL;18 ownobj =true;17 InitNull(); 18 ownobj_ = true; 19 19 } 20 20 … … 22 22 { 23 23 dobj_ = new NTuple; 24 column_ = NULL;25 ownobj =true;24 InitNull(); 25 ownobj_ = true; 26 26 27 27 ReadF(inputfile,hdunum); … … 32 32 { 33 33 dobj_ = new NTuple(obj); 34 column_ = NULL; 35 ownobj=true; 34 InitNull(); 35 ownobj_ = true; 36 } 37 FITS_NTuple::FITS_NTuple(NTuple* obj) 38 { 39 dobj_ = obj; 40 InitNull(); 41 ownobj_ = false; 36 42 } 37 43 … … 39 45 FITS_NTuple::~FITS_NTuple() 40 46 { 41 if (ownobj && dobj_ != NULL) delete dobj_;47 if (ownobj_ && dobj_ != NULL) delete dobj_; 42 48 if (column_ != NULL) delete [] column_; 43 49 } 44 50 51 void FITS_NTuple::Read(char inputfile[],int hdunum) 52 { 53 ReadF(inputfile,hdunum); 54 } 55 void 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 45 64 void FITS_NTuple::Write(char outputfile[], bool OldFile) 46 65 { … … 48 67 } 49 68 50 void FITS_NTuple::ReadFromFits(FitsFile& fn) 51 { 52 if (!fn.IsFitsTable()) 69 void FITS_NTuple::ReadFromFits() 70 { 71 // if (!fn.IsFitsTable()) 72 if (!IsFitsTable()) 53 73 { 54 74 throw PException("ReadFromFits: the fits file seems not to be a bintable nor ASCII table"); 55 75 } 56 76 int nbcols, nbentries; 57 nbcols = fn.NbColsFromFits(); 77 // nbcols = fn.NbColsFromFits(); 78 nbcols = NbColsFromFits(); 58 79 nbentries = 0; 59 80 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) ); 61 83 62 84 char ** ColName = new char*[nbcols]; … … 65 87 { 66 88 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); 68 91 ColName[k][LONNOM] = '\0'; 69 92 } 70 93 for (k=0; k<nbcols;k++) 71 94 { 72 char ss= fn.ColTypeFromFits(k); 95 // char ss= fn.ColTypeFromFits(k); 96 char ss= ColTypeFromFits(k); 73 97 string type; 74 98 if (ss != 'E') … … 87 111 { 88 112 dobj_= new NTuple(nbcols,ColName); 89 ownobj = true;113 ownobj_ = true; 90 114 } 91 115 else … … 99 123 } 100 124 delete [] ColName; 101 if (column_ != NULL) delete [] column_;102 column_ = new float[nbentries];125 // if (column_ != NULL) delete [] column_; 126 // column_ = new float[nbentries]; 103 127 104 128 // j'initialise le NTuple a zero, pour le dimensionner 105 129 // (SetVal suppose que le ntuple est deja dimensionne) 106 130 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 } 109 154 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 } 167 void FITS_NTuple::WriteToFits() 118 168 { 119 169 if(dobj_ == NULL) … … 147 197 type[ncols]='\0'; 148 198 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); 150 201 for (k=0; k< ncols; k++) 151 202 {
Note:
See TracChangeset
for help on using the changeset viewer.