casacore
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Types | Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes | List of all members
casacore::Projection Class Reference

Geometric parameters needed for a sky projection to a plane. More...

#include <Projection.h>

Public Types

enum  Type {
  AZP,
  SZP,
  TAN,
  SIN,
  STG,
  ARC,
  ZPN,
  ZEA,
  AIR,
  CYP,
  CAR,
  MER,
  CEA,
  COP,
  COD,
  COE,
  COO,
  BON,
  PCO,
  SFL,
  PAR,
  AIT,
  MOL,
  CSC,
  QSC,
  TSC,
  HPX,
  N_PROJ
}
 Hold all the known types of celestial projections. More...
 

Public Member Functions

 Projection (Projection::Type which=CAR)
 Construct a projection which needs no parameters. More...
 
 Projection (const String &ctypeLin, const String &ctypeLat, const Vector< Double > &parameters)
 Construct a projection from FITS CTYPE keywords. More...
 
 Projection (Projection::Type which, const Vector< Double > &parameters)
 Construct a projection which needs parameters. More...
 
 Projection (const Projection &other)
 Copy constructor (copy semantics). More...
 
Projectionoperator= (const Projection &other)
 Assignment (copy semantics) More...
 
 ~Projection ()
 Destructor. More...
 
Projection::Type type () const
 What is the Type of this projection? More...
 
String name () const
 What is the type of this projection as a String (e.g. More...
 
const Vector< Double > & parameters () const
 
Bool near (const Projection &other, Double tol=1.0e-6) const
 Comparison to fractional tolerance. More...
 

Static Public Member Functions

static String name (Projection::Type proj)
 
static Projection::Type type (const String &name)
 Turn a projection type name into a Type. More...
 
static uInt nParameters (Projection::Type proj)
 How many parameters does this projection have at most? What is the minimum number of parameters that have to be supplied? What are the parameter values? More...
 
static uInt nMinParameters (Projection::Type proj)
 
static Bool isZenithal (Projection::Type proj)
 Is this projection a 'zenithal' projection. More...
 

Private Member Functions

void validate (const Bool verbose=False)
 
Projection::Type type (String &ctypeLong, String &ctypeLat) const
 

Private Attributes

Projection::Type which_p
 
Vector< Doubleparameters_p
 

Detailed Description

Geometric parameters needed for a sky projection to a plane.

Intended use:

Public interface

Review Status

Reviewed By:
Peter Barnes
Date Reviewed:
1999/12/24
Test programs:
tProjection

Prerequisite

Synopsis

This class is used to hold:

  1. The type of the projection (e.g. SIN); and
  2. The parameters of the projection, if any. These parameters are described by Calabretta and Greisen (called PROJP) in the 1996 draft. In the recent versions, this paper has split into three, and the projection parameters have been reworked into the PV matrix. However, these have not yet been implemented in WCSLIB so we stick with the old ones for now.

Example

cerr << proj.parameters() << endl;

This projection requires no parameters so the printed parameter vector would be of zero length.

Thrown Exceptions

To Do

Definition at line 96 of file Projection.h.

Member Enumeration Documentation

Hold all the known types of celestial projections.

Enumerator
AZP 

Zenithal/Azimuthal perspective.

SZP 

Slant zenithal perspective, new.

TAN 

Gnomonic.

SIN 

Orthographics/synthesis.

STG 

Stereographic.

ARC 

zenith/azimuthal equidistant.

ZPN 

zenithal/azimuthal polynomial.

ZEA 

zenithal/azimuthal equal area.

AIR 

Airy.

CYP 

Cylindrical perspective.

CAR 

Plate carree.

MER 

Mercator.

CEA 

Cylindrical equal area.

COP 

Conic perspective.

COD 

Conic equidistant.

COE 

Conic equal area.

COO 

Conic orthomorphic.

BON 

Bonne.

PCO 

Polyconic.

SFL 

Sanson-Flamsteed (global sinusoidal).

The old GLS projection is now SFL. The 'GLS' string will be converted to 'SFL'

PAR 

Parabolic.

AIT 

Hammer-Aitoff.

MOL 

Mollweide.

CSC 

COBE quadrilateralized spherical cube.

QSC 

Quadrilateralized spherical cube.

TSC 

Tangential spherical cube.

HPX 

HEALPix grid.

N_PROJ 

N_PROJ gives the number of supported projections - it shouldn't be used as a projection.

Definition at line 100 of file Projection.h.

Constructor & Destructor Documentation

casacore::Projection::Projection ( Projection::Type  which = CAR)

Construct a projection which needs no parameters.

SIN is unique in that it can be created with 0 or 2 parameters.

casacore::Projection::Projection ( const String ctypeLin,
const String ctypeLat,
const Vector< Double > &  parameters 
)

Construct a projection from FITS CTYPE keywords.

casacore::Projection::Projection ( Projection::Type  which,
const Vector< Double > &  parameters 
)

Construct a projection which needs parameters.

The parameter vector must be the length of the required number of parameters.

casacore::Projection::Projection ( const Projection other)

Copy constructor (copy semantics).

casacore::Projection::~Projection ( )

Destructor.

Member Function Documentation

static Bool casacore::Projection::isZenithal ( Projection::Type  proj)
static

Is this projection a 'zenithal' projection.

String casacore::Projection::name ( ) const

What is the type of this projection as a String (e.g.

"SIN").

static String casacore::Projection::name ( Projection::Type  proj)
static
Bool casacore::Projection::near ( const Projection other,
Double  tol = 1.0e-6 
) const

Comparison to fractional tolerance.

static uInt casacore::Projection::nMinParameters ( Projection::Type  proj)
static
static uInt casacore::Projection::nParameters ( Projection::Type  proj)
static

How many parameters does this projection have at most? What is the minimum number of parameters that have to be supplied? What are the parameter values?

Projection& casacore::Projection::operator= ( const Projection other)

Assignment (copy semantics)

const Vector< Double > & casacore::Projection::parameters ( ) const
inline

Definition at line 220 of file Projection.h.

References parameters_p.

Projection::Type casacore::Projection::type ( ) const
inline

What is the Type of this projection?

Definition at line 219 of file Projection.h.

References which_p.

static Projection::Type casacore::Projection::type ( const String name)
static

Turn a projection type name into a Type.

Returns N_PROJ if the projection is not known.

Projection::Type casacore::Projection::type ( String ctypeLong,
String ctypeLat 
) const
private
void casacore::Projection::validate ( const Bool  verbose = False)
private

Member Data Documentation

Vector<Double> casacore::Projection::parameters_p
private

Definition at line 212 of file Projection.h.

Referenced by parameters().

Projection::Type casacore::Projection::which_p
private

Definition at line 211 of file Projection.h.

Referenced by type().


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