Raster.H
Go to the documentation of this file.
1 #ifndef RASTER_H_
2 #define RASTER_H_
3 
4 #include <vector>
5 #include <string>
6 #include <fstream>
7 #include <math.h>
8 #include <iostream>
9 #include <stdlib.h>
10 
11 
12 
13 class Raster {
14 public:
15  int nrows;
16  int ncols;
17  double xll;
18  double yll;
19  double xur;
20  double yur;
21  double cellsize;
22  double nodata;
23  std::vector< std::vector<double> > data;
24 
25  Raster();
26  Raster(int NROWS, int NCOLS,
27  double XLL, double YLL,
28  double CELLSIZE ,int NODATA=-9999,
29  double VALUE=0.0);
30 
31  Raster(const Raster &rast,double value);
32  Raster(const Raster &rast);
33  Raster & operator =(const Raster &rast);
34  // const Raster operator*(const double s);
35 
36  bool conformal(const Raster &rast);
37  bool match(const Raster &rast);
38  bool inside(double x, double y);
39 
40  double interpValue(double x, double y);
41  double getValue(double x, double y);
42  int getIndex(double x, double y, int& row, int& col);
43  int write(const char fileName[]);
44  int read(const char fileName[]);
45 
46  double getX(int col);
47  double getY(int row);
48 
49  double max();
50  double min();
51  double sum();
52 
53  Raster where(const Raster &rast,const Raster &rast1,const Raster &rast2);
54  Raster where(const Raster &rast,const double &val1,const double &val2);
55 
56  void scale(double value);
57  void whereAdd(const Raster &rast,double value);
58  void translate(const double &x, const double &y);
59  ~Raster();
60 
61 
62 };
63 
64 Raster operator /(const Raster &rast1, const Raster &rast2);
65 Raster operator *(const Raster &rast1, const Raster &rast2);
66 Raster operator +(const Raster &rast1, const Raster &rast2);
67 Raster operator -(const Raster &rast1, const Raster &rast2);
68 Raster operator *(const double value, const Raster &rast);
69 Raster operator *(const Raster &rast, const double value);
70 Raster operator +(const Raster &rast, const double value);
71 Raster operator -(const Raster &rast, const double value);
72 Raster operator /(const Raster &rast, const double value);
73 Raster operator ==(const Raster &rast,const double value);
74 Raster operator <(const Raster &rast,const double value);
75 Raster operator >(const Raster &rast,const double value);
76 Raster operator <=(const Raster &rast,const double value);
77 Raster operator >=(const Raster &rast,const double value);
78 Raster intersect(const Raster &rast1,const Raster &rast2);
79 
80 #endif /*RASTER_H_*/
Raster::conformal
bool conformal(const Raster &rast)
Definition: Raster.C:390
Raster
Definition: Raster.H:13
Raster::inside
bool inside(double x, double y)
Definition: Raster.C:165
Raster::Raster
Raster()
Definition: Raster.C:2
Raster::write
int write(const char fileName[])
Definition: Raster.C:63
Raster::getValue
double getValue(double x, double y)
Definition: Raster.C:173
operator+
Raster operator+(const Raster &rast1, const Raster &rast2)
Definition: Raster.C:497
operator>
Raster operator>(const Raster &rast, const double value)
Definition: Raster.C:624
Raster::data
std::vector< std::vector< double > > data
Definition: Raster.H:23
Raster::~Raster
~Raster()
Definition: Raster.C:59
operator>=
Raster operator>=(const Raster &rast, const double value)
Definition: Raster.C:652
Raster::ncols
int ncols
Definition: Raster.H:16
Foam::row
graphRow< VRWGraph > row
Definition: graphRow.H:135
Raster::where
Raster where(const Raster &rast, const Raster &rast1, const Raster &rast2)
operator<
Raster operator<(const Raster &rast, const double value)
Definition: Raster.C:610
Raster::translate
void translate(const double &x, const double &y)
Definition: Raster.C:428
Raster::getY
double getY(int row)
Definition: Raster.C:191
operator==
Raster operator==(const Raster &rast, const double value)
Definition: Raster.C:596
Raster::yur
double yur
Definition: Raster.H:20
Raster::read
int read(const char fileName[])
Definition: Raster.C:91
Raster::interpValue
double interpValue(double x, double y)
Definition: Raster.C:256
operator*
Raster operator*(const Raster &rast1, const Raster &rast2)
Definition: Raster.C:483
Raster::xll
double xll
Definition: Raster.H:17
Raster::whereAdd
void whereAdd(const Raster &rast, double value)
Definition: Raster.C:414
Raster::cellsize
double cellsize
Definition: Raster.H:21
Raster::operator=
Raster & operator=(const Raster &rast)
Definition: Raster.C:130
Raster::nrows
int nrows
Definition: Raster.H:15
Raster::min
double min()
Definition: Raster.C:214
Raster::getX
double getX(int col)
Definition: Raster.C:186
Raster::max
double max()
Definition: Raster.C:197
Raster::sum
double sum()
Definition: Raster.C:231
intersect
Raster intersect(const Raster &rast1, const Raster &rast2)
Definition: Raster.C:666
Raster::yll
double yll
Definition: Raster.H:18
Raster::nodata
double nodata
Definition: Raster.H:22
x
x
Definition: LISASMDCalcMethod2.H:52
Raster::scale
void scale(double value)
Definition: Raster.C:245
Raster::xur
double xur
Definition: Raster.H:19
operator-
Raster operator-(const Raster &rast1, const Raster &rast2)
Definition: Raster.C:511
operator/
Raster operator/(const Raster &rast1, const Raster &rast2)
Definition: Raster.C:468
operator<=
Raster operator<=(const Raster &rast, const double value)
Definition: Raster.C:638
Raster::getIndex
int getIndex(double x, double y, int &row, int &col)
Definition: Raster.C:149
Raster::match
bool match(const Raster &rast)
Definition: Raster.C:404
y
scalar y
Definition: LISASMDCalcMethod1.H:14