Loading [MathJax]/jax/output/NativeMML/config.js
Isis Developer Reference
LambertAzimuthalEqualArea.h
Go to the documentation of this file.
1 #ifndef LambertAzimuthalEqualArea_h
2 #define LambertAzimuthalEqualArea_h
3 
8 /* SPDX-License-Identifier: CC0-1.0 */
9 #include "TProjection.h"
10 
11 namespace 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
Isis::HALFPI
const double HALFPI
The mathematical constant PI/2.
Definition: Constants.h:41
Isis::TProjection::m_longitude
double m_longitude
This contains the currently set longitude value.
Definition: TProjection.h:318
Isis::TProjection::m_longitudeDomain
int m_longitudeDomain
This integer is either 180 or 360 and is read from the labels.
Definition: TProjection.h:331
Isis::TProjection::m_latitude
double m_latitude
This contains the currently set latitude value.
Definition: TProjection.h:316
Isis::PI
const double PI
The mathematical constant PI.
Definition: Constants.h:40
LambertAzimuthalEqualArea.h
Isis::LambertAzimuthalEqualArea
Lambert Azimuthal Equal Area Map Projection.
Definition: LambertAzimuthalEqualArea.h:91
Isis::TProjection::m_longitudeDirection
LongitudeDirection m_longitudeDirection
An enumerated type indicating the LongitudeDirection read from the labels.
Definition: TProjection.h:324
Isis::LambertAzimuthalEqualArea::XYRange
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...
SpecialPixel.h
Isis::TProjection::PositiveWest
@ PositiveWest
Longitude values increase in the westerly direction.
Definition: TProjection.h:225
Isis::TProjection::MinimumLongitude
virtual double MinimumLongitude() const
This returns the minimum longitude of the area of interest.
Definition: TProjection.cpp:732
Isis::IException::Unknown
@ Unknown
A type of error that cannot be classified as any of the other error types.
Definition: IException.h:118
PvlGroup.h
Isis::Projection::m_minimumY
double m_minimumY
See minimumX description.
Definition: Projection.h:327
Isis::LambertAzimuthalEqualArea::TrueScaleLatitude
double TrueScaleLatitude() const
This method returns the latitude of true scale.
Isis::TProjection::xyRangeOblique
bool xyRangeOblique(double &minX, double &maxX, double &minY, double &maxY)
This method is used to find the XY range for oblique aspect projections (non-polar projections) by "w...
Definition: TProjection.cpp:1195
Isis::Pvl
Container for cube-like labels.
Definition: Pvl.h:119
Isis::TProjection::Eccentricity
double Eccentricity() const
This returns the eccentricity of the target,.
Definition: TProjection.cpp:304
Isis::Projection::SetXY
void SetXY(double x, double y)
This protected method is a helper for derived classes.
Definition: Projection.cpp:804
Isis::TProjection::ToPlanetocentric
double ToPlanetocentric(const double lat) const
This method converts a planetographic latitude to a planetocentric latitude.
Definition: TProjection.cpp:418
Isis::LambertAzimuthalEqualArea::Name
QString Name() const
This method returns the name of the map projection.
Isis::TProjection::MaximumLatitude
virtual double MaximumLatitude() const
This returns the maximum latitude of the area of interest.
Definition: TProjection.cpp:721
Isis::TProjection::XYRangeCheck
void XYRangeCheck(const double latitude, const double longitude)
This convience function is established to assist in the development of the XYRange virtual method.
Definition: TProjection.cpp:1062
Isis::TProjection::EquatorialRadius
double EquatorialRadius() const
This returns the equatorial radius of the target.
Definition: TProjection.cpp:277
Isis::toString
QString toString(bool boolToConvert)
Global function to convert a boolean to a string.
Definition: IString.cpp:211
IString.h
Isis::Projection::m_mappingGrp
PvlGroup m_mappingGrp
Mapping group that created this projection.
Definition: Projection.h:329
Isis::PvlObject::Traverse
@ Traverse
Search child objects.
Definition: PvlObject.h:158
Isis::LambertAzimuthalEqualArea::~LambertAzimuthalEqualArea
~LambertAzimuthalEqualArea()
Isis::LambertAzimuthalEqualArea::LambertAzimuthalEqualArea
LambertAzimuthalEqualArea(Pvl &label, bool allowDefaults=false)
Isis::LambertAzimuthalEqualArea::operator==
bool operator==(const Projection &proj)
This method determines whether two map projection objects are equal by comparing the equatorial radiu...
Isis::TProjection::qCompute
double qCompute(const double sinPhi) const
A convience method to compute Snyder's q equation (3-12) for a given latitude, .
Definition: TProjection.cpp:1770
Isis::Projection::m_minimumX
double m_minimumX
The data elements m_minimumX, m_minimumY, m_maximumX, and m_maximumY are convience data elements when...
Definition: Projection.h:317
Isis::PvlGroup
Contains multiple PvlContainers.
Definition: PvlGroup.h:41
Pvl.h
Isis::LambertAzimuthalEqualArea::Version
QString Version() const
This method returns the Version of the map projection.
Isis::TProjection::PolarRadius
double PolarRadius() const
This returns the polar radius of the target.
Definition: TProjection.cpp:287
_FILEINFO_
#define _FILEINFO_
Macro for the filename and line number.
Definition: IException.h:24
Isis::Projection::m_good
bool m_good
Indicates if the contents of m_x, m_y, m_latitude, and m_longitude are valid.
Definition: Projection.h:300
Isis::LambertAzimuthalEqualArea::relativeScaleFactorLatitude
double relativeScaleFactorLatitude() const
Isis::TProjection
Base class for Map TProjections.
Definition: TProjection.h:166
Isis::LambertAzimuthalEqualArea::MappingLongitudes
PvlGroup MappingLongitudes()
This function returns the longitude keywords that this projection uses.
Isis::LambertAzimuthalEqualArea::MappingLatitudes
PvlGroup MappingLatitudes()
This function returns the latitude keywords that this projection uses.
Isis::TProjection::To180Domain
static double To180Domain(const double lon)
This method converts a longitude into the -180 to 180 domain.
Definition: TProjection.cpp:657
TProjection.h
Isis::Null
const double Null
Value for an Isis Null pixel.
Definition: SpecialPixel.h:95
Isis::TProjection::MaximumLongitude
virtual double MaximumLongitude() const
This returns the maximum longitude of the area of interest.
Definition: TProjection.cpp:743
Isis::TProjection::MappingLongitudes
virtual PvlGroup MappingLongitudes()
This function returns the longitude keywords that this projection uses.
Definition: TProjection.cpp:1739
Isis::TProjection::LocalRadius
double LocalRadius() const
This method returns the local radius in meters at the current latitude position.
Definition: TProjection.cpp:353
Isis::Projection::SetComputedXY
void SetComputedXY(double x, double y)
This protected method is a helper for derived classes.
Definition: Projection.cpp:780
IException.h
Isis::IException::Programmer
@ Programmer
This error is for when a programmer made an API call that was illegal.
Definition: IException.h:146
std
Namespace for the standard library.
PvlKeyword.h
Isis::TProjection::MappingLatitudes
virtual PvlGroup MappingLatitudes()
This function returns the latitude keywords that this projection uses.
Definition: TProjection.cpp:1723
Isis::TProjection::ToPlanetographic
double ToPlanetographic(const double lat) const
This method converts a planetocentric latitude to a planetographic latitude.
Definition: TProjection.cpp:463
Isis::LambertAzimuthalEqualArea::SetCoordinate
bool SetCoordinate(const double x, const double y)
This method is used to set the projection x/y.
Isis::TProjection::MinimumLatitude
virtual double MinimumLatitude() const
This returns the minimum latitude of the area of interest.
Definition: TProjection.cpp:710
Isis::TProjection::Mapping
virtual PvlGroup Mapping()
This function returns the keywords that this projection uses.
Definition: TProjection.cpp:1698
Isis::TProjection::To360Domain
static double To360Domain(const double lon)
This method converts a longitude into the 0 to 360 domain.
Definition: TProjection.cpp:675
Isis::LambertAzimuthalEqualArea::Mapping
PvlGroup Mapping()
This function returns the keywords that this projection uses.
Isis::LambertAzimuthalEqualArea::relativeScaleFactorLongitude
double relativeScaleFactorLongitude() const
Constants.h
Isis::TProjection::IsPlanetocentric
bool IsPlanetocentric() const
This indicates if the latitude type is planetocentric (as opposed to planetographic).
Definition: TProjection.cpp:392
Isis::Projection::m_maximumY
double m_maximumY
See minimumX description.
Definition: Projection.h:328
Isis::Projection
Base class for Map Projections.
Definition: Projection.h:155
Isis::Projection::m_maximumX
double m_maximumX
See minimumX description.
Definition: Projection.h:326
Isis::LambertAzimuthalEqualArea::SetGround
bool SetGround(const double lat, const double lon)
This method is used to set the latitude/longitude (assumed to be of the correct LatitudeType,...
Isis::TProjection::mCompute
double mCompute(const double sinphi, const double cosphi) const
A convience method to compute Snyder's m equation (14-15) for a given latitude, .
Definition: TProjection.cpp:1847
Isis
This is free and unencumbered software released into the public domain.
Definition: Apollo.h:16

U.S. Department of the Interior | U.S. Geological Survey
ISIS | Privacy & Disclaimers | Astrogeology Research Program
To contact us, please post comments and questions on the USGS Astrogeology Discussion Board
To report a bug, or suggest a feature go to: ISIS Github
File Modified: 07/13/2023 15:11:33