casa  $Rev:20696$
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
Public Types | Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes
casa::Projection Class Reference

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

#include <Projection.h>

List of all members.

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

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.
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?
static uInt nMinParameters (Projection::Type proj)
static Bool isZenithal (Projection::Type proj)
 Is this projection a 'zenithal' projection.

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

       Projection proj(Projection::CAR);
       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 95 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 99 of file Projection.h.


Constructor & Destructor Documentation

Construct a projection which needs no parameters.

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

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

Construct a projection from FITS CTYPE keywords.

casa::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.

Copy constructor (copy semantics).

Destructor.


Member Function Documentation

Is this projection a 'zenithal' projection.

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

"SIN").

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

Comparison to fractional tolerance.

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& casa::Projection::operator= ( const Projection other)

Assignment (copy semantics)

const Vector< Double > & casa::Projection::parameters ( ) const [inline]

Definition at line 219 of file Projection.h.

References parameters_p.

What is the Type of this projection?

Definition at line 218 of file Projection.h.

References which_p.

static Projection::Type casa::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 casa::Projection::type ( String ctypeLong,
String ctypeLat 
) const [private]
void casa::Projection::validate ( const Bool  verbose = False) [private]

Member Data Documentation

Definition at line 211 of file Projection.h.

Referenced by parameters().

Definition at line 210 of file Projection.h.

Referenced by type().


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