WCSLIB
6.2

Projection parameters. More...
#include <prj.h>
Data Fields  
int  flag 
char  code [4] 
double  r0 
double  pv [PVN] 
double  phi0 
double  theta0 
int  bounds 
char  name [40] 
int  category 
int  pvrange 
int  simplezen 
int  equiareal 
int  conformal 
int  global 
int  divergent 
double  x0 
double  y0 
struct wcserr *  err 
void *  padding 
double  w [10] 
int  m 
int  n 
int(*  prjx2s )(PRJX2S_ARGS) 
int(*  prjs2x )(PRJS2X_ARGS) 
The prjprm struct contains all information needed to project or deproject native spherical coordinates. It consists of certain members that must be set by the user (given) and others that are set by the WCSLIB routines (returned). Some of the latter are supplied for informational purposes while others are for internal use only.
int prjprm::flag 
(Given and returned) This flag must be set to zero whenever any of the following prjprm struct members are set or changed:
This signals the initialization routine (prjset() or ???set()) to recompute the returned members of the prjprm struct. flag will then be reset to indicate that this has been done.
Note that flag need not be reset when prjprm::bounds is changed.
char prjprm::code 
(Given) Threeletter projection code defined by the FITS standard.
double prjprm::r0 
(Given) The radius of the generating sphere for the projection, a linear scaling parameter. If this is zero, it will be reset to its default value of (the value for FITS WCS).
double prjprm::pv 
(Given) Projection parameters. These correspond to the PVi_ma
keywords in FITS, so pv[0] is PVi_0a
, pv[1] is PVi_1a
, etc., where i
denotes the latitudelike axis. Many projections use pv[1] (PVi_1a
), some also use pv[2] (PVi_2a
) and SZP
uses pv[3] (PVi_3a
). ZPN
is currently the only projection that uses any of the others.
Usage of the pv[] array as it applies to each projection is described in the prologue to each trio of projection routines in prj.c.
double prjprm::phi0 
(Given) The native longitude, [deg], and ...
double prjprm::theta0 
(Given) ... the native latitude, [deg], of the reference point, i.e. the point = (0,0). If undefined (set to a magic value by prjini()) the initialization routine will set this to a projectionspecific default.
int prjprm::bounds 
(Given) Controls bounds checking. If bounds&1 then enable strict bounds checking for the sphericaltoCartesian (s2x) transformation for the AZP
, SZP
, TAN
, SIN
, ZPN
, and COP
projections. If bounds&2 then enable strict bounds checking for the Cartesiantospherical transformation (x2s) for the HPX
and XPH projections. If bounds&4 then the Cartesian tospherical transformations (x2s) will invoke prjbchk() to perform bounds checking on the computed native coordinates, with a tolerance set to suit each projection. bounds is set to 7 by prjini() by default which enables all checks. Zero it to disable all checking.
It is not necessary to reset the prjprm struct (via prjset() or ???set()) when prjprm::bounds is changed.
The remaining members of the prjprm struct are maintained by the setup routines and must not be modified elsewhere:
char prjprm::name 
(Returned) Long name of the projection.
Provided for information only, not used by the projection routines.
int prjprm::category 
(Returned) Projection category matching the value of the relevant global variable:
The category name may be identified via the prj_categories character array, e.g.
Provided for information only, not used by the projection routines.
int prjprm::pvrange 
(Returned) Range of projection parameter indices: 100 times the first allowed index plus the number of parameters, e.g. TAN
is 0 (no parameters), SZP
is 103 (1 to 3), and ZPN
is 30 (0 to 29).
Provided for information only, not used by the projection routines.
int prjprm::simplezen 
(Returned) True if the projection is a radiallysymmetric zenithal projection.
Provided for information only, not used by the projection routines.
int prjprm::equiareal 
(Returned) True if the projection is equal area.
Provided for information only, not used by the projection routines.
int prjprm::conformal 
(Returned) True if the projection is conformal.
Provided for information only, not used by the projection routines.
int prjprm::global 
(Returned) True if the projection can represent the whole sphere in a finite, nonoverlapped mapping.
Provided for information only, not used by the projection routines.
int prjprm::divergent 
(Returned) True if the projection diverges in latitude.
Provided for information only, not used by the projection routines.
double prjprm::x0 
(Returned) The offset in ,and ...
double prjprm::y0 
(Returned) ... the offset in used to force = (0,0) at ( , ).
struct wcserr * prjprm::err 
(Returned) If enabled, when an error status is returned, this struct contains detailed information about the error, see wcserr_enable().
void * prjprm::padding 
(An unused variable inserted for alignment purposes only.)
double prjprm::w 
(Returned) Intermediate floatingpoint values derived from the projection parameters, cached here to save recomputation.
Usage of the w[] array as it applies to each projection is described in the prologue to each trio of projection routines in prj.c.
int prjprm::m 
int prjprm::n 
(Returned) Intermediate integer value (used only for the ZPN
and HPX
projections).
prjprm::prjx2s 
(Returned) Pointer to the spherical projection ...
prjprm::prjs2x 
(Returned) ... and deprojection routines.