code/CoordTransform.hxx
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
#ifndef ATMODATA_FILE_COORDTRANSFORM_HXX
00026
00027
#include <cmath>
00028
00029
namespace AtmoData
00030 {
00031
00034
template<
class T>
00035 class LaeaToLonlat
00036 {
00037
protected:
00039 const T
Earth_radius_;
00041 const T
pi_;
00043 const T
limit_;
00044
00046 T
lat_origin_;
00048 T
lon_origin_;
00049
00050
public:
00051
LaeaToLonlat(T lon_origin, T lat_origin)
throw();
00052
void operator() (
const T x,
const T y,
00053 T& lon, T& lat);
00054 };
00055
00056
00059
template<
class T>
00060 class MM5LccIndToLonlat
00061 {
00062
protected:
00064 const int jmx_;
00066 const int imx_;
00068 const double jx_;
00070 const double ix_;
00072 const double phic_;
00074 const double lambdac_;
00076 const double phi1_;
00078 const double phi2_;
00080 const double ds_;
00082 const int ratio_;
00084 const double Earth_radius_;
00086 const double pi_;
00087
00088
public:
00089
MM5LccIndToLonlat(
int jmx,
int imx,
double jx,
double ix,
00090
double phic,
double lambdac,
00091
double phi1,
double phi2,
double ds,
00092
int ratio)
throw();
00093
void operator() (
const T j,
const T i,
00094 T& lon, T& lat);
00095 };
00096
00097
00100
template<
class T>
00101 class LonlatToMM5LccInd
00102 {
00103
protected:
00105 const int jmx_;
00107 const int imx_;
00109 const double jx_;
00111 const double ix_;
00113 const double phic_;
00115 const double lambdac_;
00117 const double phi1_;
00119 const double phi2_;
00121 const double ds0_;
00123 const int ratio_;
00125 const double Earth_radius_;
00127 const double pi_;
00128
00129
public:
00130
LonlatToMM5LccInd(
int jmx,
int imx,
double jx,
double ix,
00131
double phic,
double lambdac,
00132
double phi1,
double phi2,
double ds0,
00133
int ratio)
throw();
00134
void operator() (
const T lon,
const T lat,
00135 T& j, T& i);
00136 };
00137
00138
00141
template<
class T>
00142 class MM5MercIndToLonlat
00143 {
00144
protected:
00146 const int jmx_;
00148 const int imx_;
00150 const double jx_;
00152 const double ix_;
00154 const double phic_;
00156 const double lambdac_;
00158 const double phi1_;
00160 const double ds_;
00162 const int ratio_;
00164 const double Earth_radius_;
00166 const double pi_;
00167
00168
public:
00169
MM5MercIndToLonlat(
int jmx,
int imx,
double jx,
double ix,
00170
double phic,
double lambdac,
00171
double phi1,
double ds,
int ratio)
throw();
00172
void operator() (
const T j,
const T i,
00173 T& lon, T& lat);
00174 };
00175
00176
00179
template<
class T>
00180 class LonlatToMM5MercInd
00181 {
00182
protected:
00184 const int jmx_;
00186 const int imx_;
00188 const double jx_;
00190 const double ix_;
00192 const double phic_;
00194 const double lambdac_;
00196 const double phi1_;
00198 const double ds0_;
00200 const int ratio_;
00202 const double Earth_radius_;
00204 const double pi_;
00205
00206
public:
00207
LonlatToMM5MercInd(
int jmx,
int imx,
double jx,
double ix,
00208
double phic,
double lambdac,
00209
double phi1,
double ds0,
int ratio)
throw();
00210
void operator() (
const T lon,
const T lat,
00211 T& j, T& i);
00212 };
00213
00214
00217
template<
class T>
00218 class MM5StereIndToLonlat
00219 {
00220
protected:
00222 const int jmx_;
00224 const int imx_;
00226 const double jx_;
00228 const double ix_;
00230 const double phic_;
00232 const double lambdac_;
00234 const double phi1_;
00236 const double ds_;
00238 const int ratio_;
00240 const double Earth_radius_;
00242 const double pi_;
00243
00244
public:
00245
MM5StereIndToLonlat(
int jmx,
int imx,
double jx,
double ix,
00246
double phic,
double lambdac,
00247
double phi1,
double ds,
int ratio)
throw();
00248
void operator() (
const T j,
const T i,
00249 T& lon, T& lat);
00250 };
00251
00252
00255
template<
class T>
00256 class LonlatToMM5StereInd
00257 {
00258
protected:
00260 const int jmx_;
00262 const int imx_;
00264 const double jx_;
00266 const double ix_;
00268 const double phic_;
00270 const double lambdac_;
00272 const double phi1_;
00274 const double ds0_;
00276 const int ratio_;
00278 const double Earth_radius_;
00280 const double pi_;
00281
00282
public:
00283
LonlatToMM5StereInd(
int jmx,
int imx,
double jx,
double ix,
00284
double phic,
double lambdac,
00285
double phi1,
double ds0,
int ratio)
throw();
00286
void operator() (
const T lon,
const T lat,
00287 T& j, T& i);
00288 };
00289
00290
00291 }
00292
00293
#define ATMODATA_FILE_COORDTRANSFORM_HXX
00294
#endif
Generated on Fri Nov 5 14:42:11 2004 for AtmoData by
1.3.8