openModeller  Version 1.5.0
Raster.hh
Go to the documentation of this file.
1 
30 #ifndef _RASTERHH_
31 #define _RASTERHH_
32 
33 #include <openmodeller/om_defs.hh>
35 
36 #include <string>
37 
38 class MapFormat;
39 class Map;
40 
41 /****************************************************************/
42 /**************************** Raster ****************************/
44 class dllexp Raster
45 {
46 public:
47 
48  virtual ~Raster();
49 
54  virtual void createRaster( const std::string& source, int categ = 0 ) = 0;
55 
56  #ifdef MPI_FOUND
57 
63  virtual void createRaster( const std::string& output_file_source, const std::string& file, const MapFormat& format ) = 0;
64  #else
65 
69  virtual void createRaster( const std::string& source, const MapFormat& format )= 0;
70 #endif
71 
72  //virtual static Raster* CreateRasterCallback() { return 0; };
73 
75  Header& header() { return f_hdr; }
76 
78  int isCategorical() const { return f_hdr.categ; }
79 
81  Coord xMin() const { return f_hdr.xmin; }
82 
84  Coord yMin() const { return f_hdr.ymin; }
85 
87  Coord xMax() const { return f_hdr.xmax; }
88 
90  Coord yMax() const { return f_hdr.ymax; }
91 
93  int dimX() const { return f_hdr.xdim; }
94 
96  int dimY() const { return f_hdr.ydim; }
97 
99  Coord celX() const { return f_hdr.xcel; }
100 
102  Coord celY() const { return f_hdr.ycel; }
103 
105  Scalar noVal() const { return f_hdr.noval; }
106 
108  int numBand() const { return f_hdr.nband; }
109 
116  virtual int get( Coord px, Coord py, Scalar *val ) = 0;
117 
125  virtual int put( Coord px, Coord py, Scalar val ) = 0;
126 
133  virtual int put( Coord px, Coord py ) = 0;
134 
140  virtual int getMinMax( Scalar *min, Scalar *max ) = 0;
141 
143  bool hasMinMax() { return f_hdr.minmax > 0 ? true : false ; }
144 
149  void setMinMax( Scalar min, Scalar max );
150 
154  virtual void finish() {};
155 
159  virtual int deleteRaster()= 0;
160 
165  virtual bool hasCustomGeotransform() { return false; }
166 
180  virtual int getExtentInStandardCs( Coord *xmin, Coord *ymin, Coord *xmax, Coord *ymax ) { return 0; }
181 
182 protected:
183 
184  Scalar f_scalefactor; // used in projection put.
185 
186  std::string f_file;
187  #ifdef MPI_FOUND
188  std::string f_output_file;
189  #endif
190 
191  // Raster header
193 
194  Raster() {}; // Abstract class.
195 
196  // Disable copying.
197  //Raster( const Raster& );
198  //Raster& operator=( const Raster& );
199 };
200 
201 #endif
202 
virtual bool hasCustomGeotransform()
Definition: Raster.hh:165
virtual void finish()
Definition: Raster.hh:154
Coord yMax() const
Definition: Raster.hh:90
double Scalar
Type of map values.
Definition: om_defs.hh:39
bool hasMinMax()
Definition: Raster.hh:143
A common interface to rasters.
Definition: Raster.hh:44
Definition: Header.hh:45
Scalar f_scalefactor
Definition: Raster.hh:184
int numBand() const
Definition: Raster.hh:108
Raster()
Definition: Raster.hh:194
int isCategorical() const
Definition: Raster.hh:78
Coord yMin() const
Definition: Raster.hh:84
Coord xMax() const
Definition: Raster.hh:87
Coord celX() const
Definition: Raster.hh:99
Header f_hdr
Definition: Raster.hh:192
Scalar noVal() const
Definition: Raster.hh:105
Definition: Map.hh:49
int dimX() const
Definition: Raster.hh:93
Coord celY() const
Definition: Raster.hh:102
double Coord
Type of map coordinates.
Definition: om_defs.hh:38
Header & header()
Definition: Raster.hh:75
int dimY() const
Definition: Raster.hh:96
virtual int getExtentInStandardCs(Coord *xmin, Coord *ymin, Coord *xmax, Coord *ymax)
Definition: Raster.hh:180
Coord xMin() const
Definition: Raster.hh:81
int min(int v1, int v2)
Definition: rules_base.cpp:56
std::string f_file
Definition: Raster.hh:186