Source code for sofia_redux.scan.coordinate_systems.projection.cylindrical_projection
# Licensed under a 3-clause BSD style license - see LICENSE.rst
from abc import abstractmethod
from sofia_redux.scan.coordinate_systems.projection.spherical_projection \
import SphericalProjection
__all__ = ['CylindricalProjection']
[docs]
class CylindricalProjection(SphericalProjection): # pragma: no cover
"""
An abstract cylindrical projection class.
A cylindrical projection normally defines one in which meridians are mapped
to equally spaced vertical lines and parallels are mapped to horizontal
lines.
"""
[docs]
@abstractmethod
def get_phi_theta(self, offset, phi_theta=None): # pragma: no cover
"""
Return the phi_theta coordinates.
Parameters
----------
offset : Coordinate2D
phi_theta : SphericalCoordinates, optional
An optional output coordinate system in which to place the results.
Returns
-------
coordinates : SphericalCoordinates
"""
pass
[docs]
@abstractmethod
def get_offsets(self, theta, phi, offsets=None): # pragma: no cover
"""
Get the offsets given theta and phi.
Parameters
----------
theta : units.Quantity
The theta angle.
phi : units.Quantity
The phi angle.
offsets : Coordinate2D, optional
An optional coordinate system in which to place the results.
Returns
-------
offsets : Coordinate2D
"""
pass