File failed to load: https://isis.astrogeology.usgs.gov/6.0.0/Object/assets/jax/output/NativeMML/config.js
 |
Isis 3 Programmer Reference
|
7 #include "LunarAzimuthalEqualArea.h"
12 #include "Constants.h"
13 #include "IException.h"
14 #include "TProjection.h"
30 LunarAzimuthalEqualArea::LunarAzimuthalEqualArea(
41 QString message =
"Invalid label group [Mapping]";
59 if (!Projection::operator==(proj))
76 return "LunarAzimuthalEqualArea";
105 double lonRadians = lon *
Isis::PI / 180.0;
111 double latRadians = lat;
117 if (lonRadians == 0.0 && latRadians == 0.0) {
125 double E = acos(cos(latRadians) * cos(lonRadians));
126 double test = (sin(lonRadians) * cos(latRadians)) / sin(
E);
128 if (test > 1.0) test = 1.0;
129 else if (test < -1.0) test = -1.0;
131 double D =
HALFPI - asin(test);
132 if (latRadians < 0.0)
137 double RP = radius * sin(
E / PFAC);
167 double RP = sqrt((x * x) + (y * y));
170 if (y == 0.0 && x == 0.0) {
178 double D = atan2(y, x);
179 double test = RP / radius;
180 if (abs(test) > 1.0) {
184 double EPSILON = 0.0000000001;
186 double E = PFAC * asin(RP / radius);
188 lat =
HALFPI - (acos(sin(D) * sin(
E)));
190 if (abs(
HALFPI - abs(lat)) <= EPSILON) {
194 test = sin(
E) * cos(D) / sin(
HALFPI - lat);
195 if (test > 1.0) test = 1.0;
196 else if (test < -1.0) test = -1.0;
202 if (lon <= 0.0) lon = -
PI - lon;
243 double &minY,
double &maxY) {
300 bool allowDefaults) {
QString Name() const
Returns the name of the map projection, "LunarAzimuthalEqualArea".
double m_maximumLatitude
Contains the maximum latitude for the entire ground range.
bool SetGround(const double lat, const double lon)
This method is used to set the latitude/longitude (assumed to be of the correct LatitudeType,...
const double HALFPI
The mathematical constant PI/2.
double m_longitude
This contains the currently set longitude value.
PvlGroupIterator findGroup(const QString &name, PvlGroupIterator beg, PvlGroupIterator end)
Find a group with the specified name, within these indexes.
double m_minimumLongitude
Contains the minimum longitude for the entire ground range.
double m_latitude
This contains the currently set latitude value.
const double PI
The mathematical constant PI.
LongitudeDirection m_longitudeDirection
An enumerated type indicating the LongitudeDirection read from the labels.
double m_minimumLatitude
Contains the minimum latitude for the entire ground range.
@ PositiveWest
Longitude values increase in the westerly direction.
@ Unknown
A type of error that cannot be classified as any of the other error types.
double m_minimumY
See minimumX description.
Container for cube-like labels.
void SetXY(double x, double y)
This protected method is a helper for derived classes.
double ToPlanetocentric(const double lat) const
This method converts a planetographic latitude to a planetocentric latitude.
PvlGroup Mapping()
This function returns the keywords that this projection uses.
void XYRangeCheck(const double latitude, const double longitude)
This convience function is established to assist in the development of the XYRange virtual method.
Modified Lambert Azimuthal Equal-Area Map Projection.
~LunarAzimuthalEqualArea()
Destroys the LunarAzimuthalEqualArea object.
PvlGroup m_mappingGrp
Mapping group that created this projection.
@ Traverse
Search child objects.
double m_minimumX
The data elements m_minimumX, m_minimumY, m_maximumX, and m_maximumY are convience data elements when...
Contains multiple PvlContainers.
bool operator==(const TProjection &proj)
Compares two Projection objects to see if they are equal.
bool m_good
Indicates if the contents of m_x, m_y, m_latitude, and m_longitude are valid.
Base class for Map TProjections.
QString Version() const
Returns the version of the map projection.
bool SetCoordinate(const double x, const double y)
This method is used to set the projection x/y.
double m_maxLibration
Value of the MaximumLibration keyword from the Mapping group of the labels.
void SetComputedXY(double x, double y)
This protected method is a helper for derived classes.
Namespace for the standard library.
double m_maximumLongitude
Contains the maximum longitude for the entire ground range.
double ToPlanetographic(const double lat) const
This method converts a planetocentric latitude to a planetographic latitude.
const double E
Sets some basic constants for use in ISIS programming.
virtual PvlGroup Mapping()
This function returns the keywords that this projection uses.
double m_equatorialRadius
Polar radius of the target.
bool IsPlanetocentric() const
This indicates if the latitude type is planetocentric (as opposed to planetographic).
double m_maximumY
See minimumX description.
double m_maximumX
See minimumX description.
This is free and unencumbered software released into the public domain.
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...