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

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

premiere version fitsfile

File size: 3.2 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;
28 int nbDimOfImage() const;
29inline int nbOfImageData() const { return nbData_; }
30 inline void dimOfImageAxes(int& naxis1, int& naxis2, int& naxis3) const
31 {
32 naxis1 = naxis1_;
33 naxis2 = naxis2_;
34 naxis3 = naxis3_;
35 }
36 int NbColsFromFits() const;
37 char ColTypeFromFits(int nocol) const;
38 int NentriesFromFits(int nocol) const;
39 string ColNameFromFits(int nocol) const;
40 int ColStringLengthFromFits(int nocol) const;
41 inline const DVList& DVListFromFits() const { return dvl_;}
42 void GetBinTabFCol(double* valeurs, int nentries, int NoCol) const;
43 void GetBinTabFCol(float* valeurs, int nentries, int NoCol) const;
44 void GetBinTabFCol(int* valeurs, int nentries, int NoCol) const;
45 void GetBinTabFCol(char** valeurs,int nentries, int NoCol) const;
46 // Write elements into the FITS data array
47 void putImageToFits( int nbData, double* map) const;
48 void putImageToFits(int nbData, float* map ) const;
49 void putImageToFits(int nbData, int* map) const;
50 void putColToFits(int nocol, int nentries, double* donnees) const;
51 void putColToFits(int nocol, int nentries, float* donnees) const;
52 void putColToFits(int nocol, int nentries, int* donnees) const;
53 void putColToFits(int nocol, int nentries, char** donnees) const;
54 // Write elements into an ASCII or binary table column
55 void makeHeaderImageOnFits(char type, int naxis1,int naxis2,int naxis3) const;
56 void makeHeaderBntblOnFits ( char* fieldType, char** Noms, int nentries, int tfields, DVList &dvl, char* extname, vector<int> taille_des_chaines) const;
57
58 void readheader();
59 void printerror(int&) const;
60 void printerror(int&,char* texte) const;
61 protected:
62 virtual void ReadFromFits(const FitsFile& ff)=0;
63 virtual void WriteToFits(const FitsFile& ff)=0;
64 // virtual void* getColFromObj(int colNr)=0;
65private:
66
67 void read_image ();
68 void GetBinTabParameters();
69 void writeSignatureOnFits() const;
70
71
72 fitsfile *fptr_; // pointer to the FITS file, defined in fitsio.h
73
74 int hdutype_; // image or bintable ?
75 int hdunum_; // index of header to read/write
76
77
78 // fits-Image parameters
79 int bitpix_;
80 int naxis_;
81 int naxis1_;
82 int naxis2_;
83 int naxis3_;
84 int nbData_;
85
86 // Bintable parameters
87 int nrows_;
88 vector<int> repeat_;
89
90 int nbcols_;
91 vector<string> noms_; // column names
92 vector<char> types_; // types of columns (D: double, E: float, I: integers
93 // A: char*)
94 vector<int> taille_des_chaines_; // length of the char* variables
95
96
97 DVList dvl_;
98};
99#endif
Note: See TracBrowser for help on using the repository browser.