source: Sophya/trunk/SophyaExt/FitsIOServer/fitsfile.h@ 861

Last change on this file since 861 was 861, checked in by ansari, 25 years ago

modif lecture Header image

File size: 3.1 KB
Line 
1#ifndef FITSFILE_H
2#define FITSFILE_H
3
4#include "ndatablock.h"
5#include "dvlist.h"
6#include "FitsIO/fitsio.h"
7
8#define OPENFILE 0
9#define CREATEFILE 1
10#define LEN_KEYWORD 9
11
12class FitsFile
13{
14
15public:
16
17 FitsFile();
18 // FitsFile(char flnm[],int iomode,int hdunum= 0);
19 virtual ~FitsFile();
20
21inline bool IsFitsImage() const { return (hdutype_ == IMAGE_HDU);}
22inline bool IsFitsTable() const {return (hdutype_ == ASCII_TBL || hdutype_ == BINARY_TBL);}
23 void ReadF(char flnm[],int hdunum= 0);
24 void WriteF(char flnm[],int hdunum= 0);
25 void GetSingleColumn(double* map, int nentries) const;
26 void GetSingleColumn(float* map, int nentries) const;
27 void GetSingleColumn(int* map, int nentries) const;
28inline int nbDimOfImage() const {return naxis_;}
29inline int nbOfImageData() const { return nbData_; }
30 inline const vector<int>& dimOfImageAxes() const { return naxisn_;}
31 int NbColsFromFits() const;
32 char ColTypeFromFits(int nocol) const;
33 int NentriesFromFits(int nocol) const;
34 string ColNameFromFits(int nocol) const;
35 int ColStringLengthFromFits(int nocol) const;
36 inline const DVList& DVListFromFits() const { return dvl_;}
37 void GetBinTabFCol(double* valeurs, int nentries, int NoCol) const;
38 void GetBinTabFCol(float* valeurs, int nentries, int NoCol) const;
39 void GetBinTabFCol(int* valeurs, int nentries, int NoCol) const;
40 void GetBinTabFCol(char** valeurs,int nentries, int NoCol) const;
41 // Write elements into the FITS data array
42 void putImageToFits( int nbData, double* map) const;
43 void putImageToFits(int nbData, float* map ) const;
44 void putImageToFits(int nbData, int* map) const;
45 void putColToFits(int nocol, int nentries, double* donnees) const;
46 void putColToFits(int nocol, int nentries, float* donnees) const;
47 void putColToFits(int nocol, int nentries, int* donnees) const;
48 void putColToFits(int nocol, int nentries, char** donnees) const;
49 // Write elements into an ASCII or binary table column
50 void makeHeaderImageOnFits(char type, int nbdim, int* naxisn) const;
51 void makeHeaderBntblOnFits ( char* fieldType, char** Noms, int nentries, int tfields, DVList &dvl, char* extname, vector<int> taille_des_chaines) const;
52
53 void readheader();
54 void printerror(int&) const;
55 void printerror(int&,char* texte) const;
56 protected:
57 virtual void ReadFromFits(const FitsFile& ff)=0;
58 virtual void WriteToFits(const FitsFile& ff)=0;
59 // virtual void* getColFromObj(int colNr)=0;
60private:
61
62 void read_image ();
63 void GetBinTabParameters();
64 void writeSignatureOnFits() const;
65
66
67 fitsfile *fptr_; // pointer to the FITS file, defined in fitsio.h
68
69 int hdutype_; // image or bintable ?
70 int hdunum_; // index of header to read/write
71
72
73 // fits-Image parameters
74 int bitpix_;
75 int naxis_;
76 vector<int> naxisn_;
77 int nbData_;
78
79 // Bintable parameters
80 int nrows_;
81 vector<int> repeat_;
82
83 int nbcols_;
84 vector<string> noms_; // column names
85 vector<char> types_; // types of columns (D: double, E: float, I: integers
86 // A: char*)
87 vector<int> taille_des_chaines_; // length of the char* variables
88
89
90 DVList dvl_;
91};
92#endif
Note: See TracBrowser for help on using the repository browser.