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

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

integration dans le namespace SOPHYA

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