24 #ifndef RADOLAN_COORDINATE_SYSTEM_H 25 #define RADOLAN_COORDINATE_SYSTEM_H 30 #include <radolan/types.h> 59 #define RDGeographicalPointRadUndefined rdGeographicalPointRad(NAN,NAN) 83 #define RDGeographicalPointUndefined rdGeographicalPoint(NAN,NAN) 104 return a.
x == b.
x && a.
y == b.
y;
107 #define RDCartesianPointUndefined rdCartesianPoint(NAN,NAN) 128 return a.
ix == b.
ix && a.
iy == b.
iy;
131 #define RDGridPointUndefined rdGridPoint(-1, -1) 309 int m_radolanGridCountHorizontal;
310 int m_radolanGridCountVertical;
321 RDScanType m_scanType;
324 static const double LAMBDA_0;
325 static const double PHI_0;
326 static const double R_EARTH;
327 static const double MESH_WIDTH;
328 static const double RADOLAN_GRID_COUNT;
329 static const double LAMBDA_MIN_BOTTOM;
330 static const double PHI_MIN_BOTTOM;
331 static const double LAMBDA_MAX_TOP;
332 static const double PHI_MAX_TOP;
335 double deg(
double rad);
338 double rad(
double deg);
341 void updateGridInfo();
double latitude
Geographical latitude (in radians)
RDGeographicalPoint toDeg(RDGeographicalPointRad p)
Convert radians to deg.
Data type for reading and handling radolan products.
RDGridQuadrant RDQuadrant(RDGridPoint p)
Find out what quadrant of the grid with respect to the grid's cartesian origin coordinates the given ...
RDGeographicalPointRad geographicalCoordinateRad(RDCartesianPoint p)
Calculate geographical coordinate from the given polar stereographic coordinate.
Represents a point in geographical coordinate system in grad as (latitude,longitude) ...
RDGeographicalPointRad toRad(RDGeographicalPoint p)
Convert deg to radians.
double x
Cartesian x coordinate.
Represents a point in the cartesian coordinate system (polar stereographic projection) as (x...
Represents a point in geographical coordinate system in radians as (latitude,longitude) ...
void setScanType(RDScanType type)
Changes the scan type.
Represents a point in the radolan grid by the column/row indexes as (ix,iy)
RDCoordinateSystem(RDScanType type)
Constructs a coordinate system for a specific RDScanType.
int dimLon
Number of longitudinal vertices.
double longitude
Geographical longitute (in radians)
double y
Cartesian y coordinate.
double latitude
Geographical latitude.
RDGeographicalPoint * geographicalPolygonForGridpoint(RDGridPoint p, int &num)
Calculate the geographical coordinates for the bounding box of the given grid point.
double longitude
Geographical longitude.
This class wraps a number of routines to deal with the radolan specific coordinate systems...
RDGeographicalPoint geographicalCoordinate(RDCartesianPoint p)
Calculate geographical coordinate from the given polar stereographic coordinate.
RDGridPoint gridPoint(RDCartesianPoint p, bool &isInside)
Calculate the nearest grid point for the given cartesian coordinate.
RDDataType * data
Array of rd_data[header.payloadSize].
RDCartesianPoint cartesianCoordinate(RDGeographicalPointRad coord)
Calculate the polar stereographic coordinate from the given geographical coordinate.
double polarStereographicScalingFactor(double phi0, double phi)
Scaling Factor for the polar stereographic projection.
virtual ~RDCoordinateSystem()
Destructor.