Isis Developer Reference
LambertAzimuthalEqualArea.h
Go to the documentation of this file.
1#ifndef LambertAzimuthalEqualArea_h
2#define LambertAzimuthalEqualArea_h
8/* SPDX-License-Identifier: CC0-1.0 */
9#include "TProjection.h"
10
11namespace Isis {
12 class Pvl;
13 class PvlGroup;
92 public:
93 LambertAzimuthalEqualArea(Pvl &label, bool allowDefaults = false);
95 bool operator== (const Projection &proj);
96
97 QString Name() const;
98 QString Version() const;
99 double TrueScaleLatitude() const;
100 // since this projection is not cylindrical the following method does not
101 // need to be be overwritten, returning false by default
102 // virtual bool IsEquatorialCylindrical();
103
104 bool SetGround(const double lat, const double lon);
105 bool SetCoordinate(const double x, const double y);
106 bool XYRange(double &minX, double &maxX, double &minY, double &maxY);
107
111
112 // Unused methods as of June 2012 - See comments in LambertAzimuthalEqualArea.cpp
115
116 private:
117 void init(double centerLatitude, double centerLongitude);
118 void initEllipsoid();
119 bool setGroundEllipsoid(double phi, double lambda);
120 bool setCoordinateEllipsoid(const double x, const double y);
121 bool xyRangeLambertAzimuthalPolar(double &minX, double &maxX,
122 double &minY, double &maxY);
123 void checkLongitude(double longitude);
124 void validateRelativeScaleFactor() const;
125
126 // projection flags
127 bool m_spherical;
129 bool m_northPolarAspect;
131 bool m_southPolarAspect;
133 bool m_equatorialAspect;
136 // Snyder variables
137 double m_a;
139 double m_e;
141 double m_lambda0;
147 double m_phi1;
149 double m_sinPhi1;
150 double m_cosPhi1;
151
152 // The following Snyder variables are only needed if we implement the
153 // ellipsoidal projection
154 double m_qp;
156 double m_q1;
159 double m_m1;
162 double m_beta1;
165 double m_sinBeta1;
166 double m_cosBeta1;
167 double m_Rq;
170 double m_D;
174 double m_h;
175 double m_k;
176 };
177};
178
179#endif
Lambert Azimuthal Equal Area Map Projection.
Definition LambertAzimuthalEqualArea.h:91
QString Version() const
This method returns the Version of the map projection.
QString Name() const
This method returns the name of the map projection.
PvlGroup MappingLatitudes()
This function returns the latitude keywords that this projection uses.
bool XYRange(double &minX, double &maxX, double &minY, double &maxY)
This method is used to determine the x/y range which completely covers the area of interest specified...
LambertAzimuthalEqualArea(Pvl &label, bool allowDefaults=false)
bool operator==(const Projection &proj)
This method determines whether two map projection objects are equal by comparing the equatorial radiu...
double relativeScaleFactorLatitude() const
PvlGroup Mapping()
This function returns the keywords that this projection uses.
double relativeScaleFactorLongitude() const
bool SetCoordinate(const double x, const double y)
This method is used to set the projection x/y.
double TrueScaleLatitude() const
This method returns the latitude of true scale.
PvlGroup MappingLongitudes()
This function returns the longitude keywords that this projection uses.
bool SetGround(const double lat, const double lon)
This method is used to set the latitude/longitude (assumed to be of the correct LatitudeType,...
Base class for Map Projections.
Definition Projection.h:155
Contains multiple PvlContainers.
Definition PvlGroup.h:41
Container for cube-like labels.
Definition Pvl.h:119
Base class for Map TProjections.
Definition TProjection.h:166
This is free and unencumbered software released into the public domain.
Definition Apollo.h:16