GOESDB.h
Go to the documentation of this file.
1 #ifndef _atm_GOESDB_h_
2 #define _atm_GOESDB_h_
3 
4 #include <map>
5 #include <algorithm> // max_element()
6 
7 #include <atm/AGOESSQLManager.h>
8 #include <utl/UTMPoint.h>
9 
10 
11 namespace utl {
12  class Point;
13 }
14 
15 namespace atm {
16 
29  class GOESDB {
30 
31  public:
32  typedef std::map<unsigned int, double> ProbabilityMap;
33 
35  bool HasData(const unsigned int pixelId) const;
36 
38  double GetCloudProbability(const unsigned int pixelId) const;
39 
41 
43  double GetCloudProbability(const utl::Point& p) const;
44  double GetCloudProbability(const utl::UTMPoint& p) const;
45 
47 
51 
53  double GetMaximumCloudProbability(const utl::Point& pos1, const utl::Point& pos2) const;
54 
55  const utl::UTMPoint& GetPixelCenter(const unsigned int pixelId) const;
56  double GetPixelWidthEasting() const;
57  double GetPixelWidthNorthing() const;
58  unsigned int GetNumberOfPixels() const;
59 
60  private:
61  GOESDB() { }
62  ~GOESDB() { }
63 
64  GOESDB(const GOESDB&);
66 
67  int GetPixelId(const double easting, const double northing) const;
68  double GetCloudProbability(const double easting, const double northing) const;
69  int GetCloudProbabilityIndex(const unsigned int pixelId) const;
70  double IndexToProbability(const unsigned int cpIndex) const;
71 
72  int GetNorthPixel(const double northing) const;
73  int GetEastPixel(const double easting, const int northPixel) const;
74 
75  mutable std::map<unsigned int, int> fPixelMap;
76  mutable std::vector<utl::UTMPoint> fPixelCenters;
77 
78  friend class Atmosphere;
79 
80  };
81 
82 }
83 
84 
85 #endif
Top of the interface to Atmosphere information.
Point object.
Definition: Point.h:32
double GetPixelWidthEasting() const
Definition: GOESDB.cc:32
double IndexToProbability(const unsigned int cpIndex) const
Definition: GOESDB.cc:126
Detector description interface for GOES cloud data.
Definition: GOESDB.h:29
Class to hold and convert a point in geodetic coordinates.
Definition: UTMPoint.h:40
std::vector< utl::UTMPoint > fPixelCenters
Definition: GOESDB.h:76
const utl::UTMPoint & GetPixelCenter(const unsigned int pixelId) const
Definition: GOESDB.cc:85
double GetCloudProbability(const unsigned int pixelId) const
Get cloud probability from the pixel id.
Definition: GOESDB.cc:118
GOESDB & operator=(GOESDB &)
int GetCloudProbabilityIndex(const unsigned int pixelId) const
Definition: GOESDB.cc:134
double GetMaximumCloudProbability(const utl::Point &pos1, const utl::Point &pos2) const
Get max. cloud probability along line of sight between pos1 and pos2.
Definition: GOESDB.cc:272
std::map< unsigned int, double > ProbabilityMap
Definition: GOESDB.h:32
unsigned int GetNumberOfPixels() const
Definition: GOESDB.cc:48
int GetEastPixel(const double easting, const int northPixel) const
Definition: GOESDB.cc:75
GOESDB()
Definition: GOESDB.h:61
ProbabilityMap GetAllCloudProbabilities() const
Optimised lookup of all cloud probabilities (mapped to pixel IDs)
Definition: GOESDB.cc:175
std::map< unsigned int, int > fPixelMap
Definition: GOESDB.h:75
int GetPixelId(const double easting, const double northing) const
Definition: GOESDB.cc:56
~GOESDB()
Definition: GOESDB.h:62
int GetNorthPixel(const double northing) const
Definition: GOESDB.cc:66
bool HasData(const unsigned int pixelId) const
Check if cloud probability data exists for a given pixel at the current time.
Definition: GOESDB.cc:148
double GetPixelWidthNorthing() const
Definition: GOESDB.cc:40

, generated on Tue Sep 26 2023.