GnomonicProjection

class sofia_redux.scan.coordinate_systems.projection.gnomonic_projection.GnomonicProjection[source]

Bases: ZenithalProjection

Initialize a gnomonic projection.

A gnomonic projection displays all great circles as straight lines by converting surface points on a sphere to a tangent plane where a ray from the center of the sphere passes through the point on the sphere and then onto the plane. Distortion is extreme away from the tangent point.

The forward projection is given by:

x = cot(theta)sin(phi)
y = -cot(theta)cos(phi)

with cot(theta) evaluating to zero at theta=90 degrees, and the inverse transform (deprojection) is given by:

phi = arctan(x, -y)
theta = arctan(1, sqrt(x^2 + y^2))

Methods Summary

get_fits_id()

Return the FITS ID for the projection.

get_full_name()

Return the full name of the projection.

r(theta)

Return the distance of a point from the pole on the projection.

theta_of_r(value)

Return the latitude (theta) given a distance from the celestial pole.

Methods Documentation

classmethod get_fits_id()[source]

Return the FITS ID for the projection.

Returns:
str
classmethod get_full_name()[source]

Return the full name of the projection.

Returns:
str
classmethod r(theta)[source]

Return the distance of a point from the pole on the projection.

Calculates the distance of a point from the celestial pole. Since the projection defined by create circles on a sphere, this only depends on the latitude (theta), and is given as:

r = cot(theta) ; |theta| > 0
r = 0 ; theta = 90 degrees
Parameters:
thetafloat or numpy.ndarray or units.Quantity
Returns:
valueunits.Quantity
classmethod theta_of_r(value)[source]

Return the latitude (theta) given a distance from the celestial pole.

Calculates the latitude of a point from the celestial pole. Since the projection defined by create circles on a sphere, this only depends on the distance of the point from the celestial pole, and is given as:

theta = arctan(1, r)

Parameters:
valuefloat or numpy.ndarray or units.Quantity
Returns:
thetaunits.Quantity