LSST Applications  21.0.0-172-gfb10e10a+18fedfabac,22.0.0+297cba6710,22.0.0+80564b0ff1,22.0.0+8d77f4f51a,22.0.0+a28f4c53b1,22.0.0+dcf3732eb2,22.0.1-1-g7d6de66+2a20fdde0d,22.0.1-1-g8e32f31+297cba6710,22.0.1-1-geca5380+7fa3b7d9b6,22.0.1-12-g44dc1dc+2a20fdde0d,22.0.1-15-g6a90155+515f58c32b,22.0.1-16-g9282f48+790f5f2caa,22.0.1-2-g92698f7+dcf3732eb2,22.0.1-2-ga9b0f51+7fa3b7d9b6,22.0.1-2-gd1925c9+bf4f0e694f,22.0.1-24-g1ad7a390+a9625a72a8,22.0.1-25-g5bf6245+3ad8ecd50b,22.0.1-25-gb120d7b+8b5510f75f,22.0.1-27-g97737f7+2a20fdde0d,22.0.1-32-gf62ce7b1+aa4237961e,22.0.1-4-g0b3f228+2a20fdde0d,22.0.1-4-g243d05b+871c1b8305,22.0.1-4-g3a563be+32dcf1063f,22.0.1-4-g44f2e3d+9e4ab0f4fa,22.0.1-42-gca6935d93+ba5e5ca3eb,22.0.1-5-g15c806e+85460ae5f3,22.0.1-5-g58711c4+611d128589,22.0.1-5-g75bb458+99c117b92f,22.0.1-6-g1c63a23+7fa3b7d9b6,22.0.1-6-g50866e6+84ff5a128b,22.0.1-6-g8d3140d+720564cf76,22.0.1-6-gd805d02+cc5644f571,22.0.1-8-ge5750ce+85460ae5f3,master-g6e05de7fdc+babf819c66,master-g99da0e417a+8d77f4f51a,w.2021.48
LSST Data Management Base Package
Public Member Functions | Static Public Member Functions | List of all members
lsst::sphgeom::LonLat Class Reference

LonLat represents a spherical coordinate (longitude/latitude angle) pair. More...

#include <LonLat.h>

Public Member Functions

 LonLat ()
 This constructor creates the point with longitude and latitude angle equal to zero. More...
 
 LonLat (NormalizedAngle lon, Angle lat)
 This constructor creates the point with the given longitude and latitude angles. More...
 
 LonLat (Vector3d const &v)
 This constructor creates the point on the unit sphere corresponding to the direction of v. More...
 
bool operator== (LonLat const &p) const
 
bool operator!= (LonLat const &p) const
 
NormalizedAngle getLon () const
 
Angle getLat () const
 

Static Public Member Functions

static LonLat fromDegrees (double lon, double lat)
 
static LonLat fromRadians (double lon, double lat)
 
static Angle latitudeOf (Vector3d const &v)
 latitudeOf returns the latitude of the point on the unit sphere corresponding to the direction of v. More...
 
static NormalizedAngle longitudeOf (Vector3d const &v)
 longitudeOf returns the longitude of the point on the unit sphere corresponding to the direction of v. More...
 

Detailed Description

LonLat represents a spherical coordinate (longitude/latitude angle) pair.

This class supports conversion from a Vector3d. All methods that accept a Vector3d parameter shall convert from vector to longitude/latitude coordinates according to the following conventions:

Definition at line 48 of file LonLat.h.

Constructor & Destructor Documentation

◆ LonLat() [1/3]

lsst::sphgeom::LonLat::LonLat ( )
inline

This constructor creates the point with longitude and latitude angle equal to zero.

Definition at line 70 of file LonLat.h.

70 {}

◆ LonLat() [2/3]

lsst::sphgeom::LonLat::LonLat ( NormalizedAngle  lon,
Angle  lat 
)

This constructor creates the point with the given longitude and latitude angles.

Definition at line 62 of file LonLat.cc.

62  : _lon(lon), _lat(lat) {
63  if (std::fabs(_lat.asRadians()) > 0.5 * PI) {
64  throw std::invalid_argument("invalid latitude angle");
65  }
66  _enforceInvariants();
67 }
double asRadians() const
asRadians returns the value of this angle in units of radians.
Definition: Angle.h:85
T fabs(T... args)
constexpr double PI
Definition: constants.h:36

◆ LonLat() [3/3]

lsst::sphgeom::LonLat::LonLat ( Vector3d const &  v)

This constructor creates the point on the unit sphere corresponding to the direction of v.

Definition at line 69 of file LonLat.cc.

69  : _lon(longitudeOf(v)), _lat(latitudeOf(v)) {
70  _enforceInvariants();
71 }
static Angle latitudeOf(Vector3d const &v)
latitudeOf returns the latitude of the point on the unit sphere corresponding to the direction of v.
Definition: LonLat.cc:37
static NormalizedAngle longitudeOf(Vector3d const &v)
longitudeOf returns the longitude of the point on the unit sphere corresponding to the direction of v...
Definition: LonLat.cc:49

Member Function Documentation

◆ fromDegrees()

static LonLat lsst::sphgeom::LonLat::fromDegrees ( double  lon,
double  lat 
)
inlinestatic

Definition at line 50 of file LonLat.h.

50  {
52  Angle::fromDegrees(lat));
53  }
static Angle fromDegrees(double a)
Definition: Angle.h:49
LonLat()
This constructor creates the point with longitude and latitude angle equal to zero.
Definition: LonLat.h:70
static NormalizedAngle fromDegrees(double a)

◆ fromRadians()

static LonLat lsst::sphgeom::LonLat::fromRadians ( double  lon,
double  lat 
)
inlinestatic

Definition at line 55 of file LonLat.h.

55  {
57  Angle::fromRadians(lat));
58  }
static Angle fromRadians(double a)
Definition: Angle.h:51
static NormalizedAngle fromRadians(double a)

◆ getLat()

Angle lsst::sphgeom::LonLat::getLat ( ) const
inline

Definition at line 90 of file LonLat.h.

90 { return _lat; }

◆ getLon()

NormalizedAngle lsst::sphgeom::LonLat::getLon ( ) const
inline

Definition at line 88 of file LonLat.h.

88 { return _lon; }

◆ latitudeOf()

Angle lsst::sphgeom::LonLat::latitudeOf ( Vector3d const &  v)
static

latitudeOf returns the latitude of the point on the unit sphere corresponding to the direction of v.

Definition at line 37 of file LonLat.cc.

37  {
38  double d2 = v(0) * v(0) + v(1) * v(1);
39  double lat = 0.0;
40  if (v(2) != 0.0) {
41  lat = std::atan2(v(2), sqrt(d2));
42  if (std::fabs(lat) > 0.5 * PI) {
43  lat = ::copysign(0.5 * PI, lat);
44  }
45  }
46  return Angle(lat);
47 }
T atan2(T... args)
lsst::geom::Angle Angle
Definition: misc.h:33
T sqrt(T... args)

◆ longitudeOf()

NormalizedAngle lsst::sphgeom::LonLat::longitudeOf ( Vector3d const &  v)
static

longitudeOf returns the longitude of the point on the unit sphere corresponding to the direction of v.

Definition at line 49 of file LonLat.cc.

49  {
50  double d2 = v(0) * v(0) + v(1) * v(1);
51  double lon = 0.0;
52  if (d2 != 0.0) {
53  lon = std::atan2(v(1), v(0));
54  if (lon < 0.0) {
55  lon += 2*PI;
56  }
57  }
58  return NormalizedAngle(lon);
59 }

◆ operator!=()

bool lsst::sphgeom::LonLat::operator!= ( LonLat const &  p) const
inline

Definition at line 84 of file LonLat.h.

84  {
85  return _lon != p._lon || _lat != p._lat;
86  }

◆ operator==()

bool lsst::sphgeom::LonLat::operator== ( LonLat const &  p) const
inline

Definition at line 80 of file LonLat.h.

80  {
81  return _lon == p._lon && _lat == p._lat;
82  }

The documentation for this class was generated from the following files: