WXP C++ Library Version 6.74.6
Loading...
Searching...
No Matches
Grid.h
1#ifndef _WINC_GRID
2#define _WINC_GRID
3
4#include <WXP/Date.h>
5#include <WXP/DateVal.h>
6#include <WXP/Domain.h>
7#include <WXP/DomainVal.h>
8#include <WXP/EarthPoint.h>
9#include <WXP/ForeTime.h>
10#include <WXP/GridPoint.h>
11#include <WXP/GridSpec.h>
12#include <WXP/Level.h>
13#include <WXP/Point.h>
14#include <WXP/Range.h>
15#include <WXP/VarSpec.h>
16#include <WXP/Variable.h>
17
18namespace WXP {
19 class Grid {
20 int type; /* Grid type used in grid */
21 int version; /* Version of grid */
22 int source; /* Source of grid */
23 char datim[50]; /* Date and time information */
24 char info[90]; /* Label for grid information */
25 Date date; /* Initial date of file */
26 int nx, ny; /* Size of grid */
27 int grid_type; /* Grid type number */
28 Domain domain; /* The grid location */
29 int model; /* Model number */
30 char gen_name[20]; /* Model used to generate grid */
31 VarSpec var;
32 float *data; /* A pointer to the grid */
33 float *xloc; /* A pointer to X location of grid */
34 float *yloc; /* A pointer to Y location of grid */
35
36 int initClass();
37
38 public:
39 Grid();
40 Grid( int rnx, int rny );
41 Grid( const Grid &grid );
42 ~Grid();
43 int init();
44 int copy( const Grid &grid );
45 int copyInfo( const Grid &grid );
46 int copyData( const Grid &grid );
47 Grid operator=(const Grid &grid);
48 int setType( int val );
49 int getType();
50 int setSource( int val );
51 int getSource();
52 int setVersion( int val );
53 int getVersion();
54 int setDatim( const char *str );
55 int setDatim( String &str );
56 const char *getDatim();
57 int setInfo( const char *str );
58 const char *getInfo();
59 int setDate( Date &d );
60 int setDate( DateVal &dv );
61 inline Date getDate(){ return date; };
62 inline Date getDate( Date &rdate ){ rdate = date; return 1; };
63 Date getInitDate();
65 int setSize( int x, int y );
66 int getSize( int &x, int &y );
67 int getNx();
68 int getNy();
69 float getDx();
70 float getDy();
71 inline int setGridType( int type ){ grid_type = type; return 1; };
72 inline int getGridType(){ return grid_type; };
73 int setDomain( DomainVal &dv );
74 int setDomain( Domain &dom );
77 int getDomain( Domain &dom );
78 int getProj();
79 int tran( EarthPoint ept, Point &pt );
80 int tran( Point pt, EarthPoint &ept );
81 int tran( GridPoint gpt, Point &pt );
82 int tran( Point pt, GridPoint &gpt );
83 int tran( EarthPoint ept, GridPoint &gpt );
84 int tran( GridPoint gpt, EarthPoint &ept );
85 int tran( Domain &dom, Point pt1, Point &pt2 );
86 int tran( Point pt1, Domain &dom, Point &pt2 );
87 float adjustDir( float dir, Point &pt );
88 float unadjustDir( float dir, Point &pt );
89 inline int setModel( int val ){ model = val; return 1; };
90 inline int getModel(){ return model; };
91 int setGenName( const char *str );
92 inline const char *getGenName(){ return gen_name; };
93 inline int setVar( VarSpec v ){ var = v; return 1; };
94 inline int getVar( VarSpec &v ){ v = var; return 1; };
95 inline VarSpec getVarSpec(){ return var; };
96 int setLevel( const char *str );
97 int setLevel( Level &l );
98 int getLevel( Level &l );
100 int getLevelType();
101 int setForeTime( const char *str );
102 int setForeTime( ForeTime &t );
103 int getForeTime( ForeTime &t );
105 float getForeHours();
106 int getForeSeconds();
107 int setVar( const char *str );
108 int setVar( Variable &v );
109 const char *getUnits();
110 int setUnits( const char *units );
113 int getSpec(GridSpec &spec);
114 int allocData();
115 int allocLocate();
116 int setValue( int x, int y, float val );
117 inline int setValue1( int x, int y, float val ){ data[y*nx+x] = val; return 1; };
118 float getValue( int x, int y );
119 inline float getValue1( int x, int y ){ return data[y*nx+x]; };
120 float getValue( GridPoint gpt );
121 float getValue( EarthPoint ept );
122 float getValue( Point pt );
123 bool isLocate();
124 bool isData();
125 bool isValue();
126 int setLocate( int x, int y, Point &pt );
127 int getLocate( int x, int y, Point &pt );
128 Point getLocate( int x, int y );
129 int getValid();
130 float getAverage();
131 int getRange( float &min, float &max );
132 int getRange( Range &range );
133 int scale( float scale );
134 int offset( float offset );
135 int print();
136 int printInfo();
137 int printStats();
138 int printData();
139
140 static int copyInfo( Grid &grid1, const Grid &grid2 );
141 static int copyData( Grid &grid1, const Grid &grid2 );
142 static int copy( Grid &grid1, const Grid &grid2 );
143 };
144}
145#endif
This class stores date and time information.
Definition: Date.h:8
This class stores and manipulates domain data.
Definition: Domain.h:19
This class defines forecast time parameters.
Definition: ForeTime.h:9
This class defines vertical level parameters.
Definition: GridSpec.h:7
This class defines a grid.
Definition: Grid.h:19
float unadjustDir(float dir, Point &pt)
Definition: Grid.cc:531
int tran(EarthPoint ept, Point &pt)
Definition: Grid.cc:446
Grid operator=(const Grid &grid)
Definition: Grid.cc:90
GridSpec getSpec()
Definition: Grid.cc:423
int getNx()
Definition: Grid.cc:318
int getType()
Definition: Grid.cc:184
Level getLevel()
Definition: Grid.cc:577
int getVersion()
Definition: Grid.cc:218
Domain getDomain()
Definition: Grid.cc:352
int setValue(int x, int y, float val)
Definition: Grid.cc:716
float getDy()
Definition: Grid.cc:393
int getSize(int &x, int &y)
Definition: Grid.cc:308
~Grid()
Definition: Grid.cc:165
Variable getVar()
Definition: Grid.cc:675
DateVal getDateVal()
Definition: Grid.cc:287
float getDx()
Definition: Grid.cc:385
int getValid()
Definition: Grid.cc:883
Grid()
Definition: Grid.cc:59
float getValue(int x, int y)
Definition: Grid.cc:734
int setSize(int x, int y)
Definition: Grid.cc:296
int setDatim(const char *str)
Definition: Grid.cc:226
float adjustDir(float dir, Point &pt)
Definition: Grid.cc:521
int allocData()
Definition: Grid.cc:682
int getNy()
Definition: Grid.cc:326
int getLevelType()
Definition: Grid.cc:585
float getForeHours()
Definition: Grid.cc:630
float getAverage()
Definition: Grid.cc:906
int print()
Definition: Grid.cc:1010
int setType(int val)
Definition: Grid.cc:175
int setDate(Date &d)
Definition: Grid.cc:269
int offset(float offset)
Definition: Grid.cc:992
int scale(float scale)
Definition: Grid.cc:973
int setForeTime(const char *str)
Definition: Grid.cc:593
int setDomain(DomainVal &dv)
Definition: Grid.cc:334
ForeTime getForeTime()
Definition: Grid.cc:622
int setGenName(const char *str)
Definition: Grid.cc:539
int setVersion(int val)
Definition: Grid.cc:209
int setLocate(int x, int y, Point &pt)
Definition: Grid.cc:839
int getRange(float &min, float &max)
Definition: Grid.cc:934
int setSource(int val)
Definition: Grid.cc:192
int init()
Definition: Grid.cc:26
int setInfo(const char *str)
Definition: Grid.cc:252
const char * getDatim()
Definition: Grid.cc:244
DomainVal getDomainVal()
Definition: Grid.cc:360
int allocLocate()
Definition: Grid.cc:699
int setLevel(const char *str)
Definition: Grid.cc:548
int getForeSeconds()
Definition: Grid.cc:638
int printInfo()
Definition: Grid.cc:1029
int getSource()
Definition: Grid.cc:201
const char * getInfo()
Definition: Grid.cc:261
int getProj()
Definition: Grid.cc:377
This class defines vertical level parameters.
Definition: Level.h:8
This is a variable length string class.
Definition: String.h:5
This class specifies variable information.
Definition: VarSpec.h:13
This class specifies variable information.
Definition: Variable.h:7
All WXP classes fall under the WXP namespace.
Definition: Angle.h:4
This struct defines basic date values.
Definition: DateVal.h:5
This struct defines basic domain parameters.
Definition: DomainVal.h:5
This struct defines earth point values (lat, lon, elev)
Definition: EarthPoint.h:5
This struct defines basic gridpoint values.
Definition: GridPoint.h:5
This struct sets a 3D point (x, y, z)
Definition: Point.h:5
This struct defines a simple range of values.
Definition: Range.h:5