Changeset 1217 in Sophya for trunk/SophyaLib/SkyMap/localmap.h


Ignore:
Timestamp:
Oct 3, 2000, 10:19:18 AM (25 years ago)
Author:
ansari
Message:

doc dans les .cc

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/SophyaLib/SkyMap/localmap.h

    r1163 r1217  
    1010#include "ppersist.h"
    1111
    12 //! A local map of a region of the sky, in cartesian coordinates.
    13 /*! A local map has an origin in (theta0, phi0), mapped to pixel(x0, y0)
    14    (x0, y0 might be outside of this local map)
    15  default value of (x0, y0) is middle of the map, center of pixel(nx/2, ny/2)
    16     A local map is a 2 dimensional array, with i as column index and j
    17     as row index. The map is supposed to lie on a plan tangent to the
    18     celestial sphere in a point whose coordinates are (x0,y0) on the local
    19    map and (theta0, phi0) on the sphere. The range of the map is defined
    20     by two values of angles covered respectively by all the pixels in
    21     x direction and all the pixels in y direction (SetSize()).
    22 
    23     A "reference plane" is considered : this plane is tangent to the
    24     celestial sphere in a point with angles theta=Pi/2 and phi=0. This
    25     point is the origine of coordinates is of the reference plane. The
    26     x-axis is the tangent parallel to the equatorial line and oriented
    27     toward the increasing phi's ; the y-axis is parallel to the meridian
    28     line and oriented toward the north pole.
    29    
    30     Internally, a map is first defined within this reference plane and
    31     tranported until the point (theta0, phi0) in such a way that both
    32     axes are kept parallel to meridian and parallel lines of the sphere.
    33     The user can define its own map with axes rotated with respect to
    34     reference axes (this rotation is characterized by angle between
    35     the local parallel line and the wanted x-axis-- see method
    36     SetOrigin(...))
    37 */
    38 //
    39 //    la carte est consideree comme un tableau a deux indices i et j, i etant
    40 //    indice de colonne et j indice de ligne. La carte est supposee resider
    41 //    dans un plan tangent, dont le point de tangence est repere (x0,y0) dans
    42 //    la carte et (theta0, phi0) sur la sphere celeste. L extension de la
    43 //    carte est definie par les valeurs de deux angles couverts respectivement
    44 //    par la totalite des pixels en x de la carte et la totalite des pixels
    45 //    en y. (SetSize()).
    46 //    On considere un "plan de reference" : plan tangent a la sphere celeste
    47 //    aux angles theta=Pi/2 et phi=0. Dans ce plan L origine des coordonnees
    48 //    est le point de tangence. L axe Ox est la tangente parallele a
    49 //    lequateur, dirige vers les phi croissants, l axe Oy est parallele
    50 //    au meridien, dirige vers le pole nord.
    51 //    De maniere interne a la classe une carte est definie dans ce plan de
    52 //    reference et transportee  jusqu au point (theta0, phi0) de sorte que les //    axes restent paralleles aux meridiens et paralleles. L utilisateur peut
    53 //    definir sa carte selon un repere en rotation par rapport au repere de
    54 //    reference (par l angle entre le parallele et l axe Ox souhaite --
    55 //    methode SetOrigin(...))
    5612
    5713
     
    6117
    6218namespace SOPHYA {
     19
     20
     21/* Class LocalMap */
    6322
    6423
     
    7635
    7736inline virtual bool IsTemp(void) const { return pixels_.IsTemp();}
     37
    7838/*! Setting blockdata to temporary (see ndatablock documentation) */
    7939inline virtual void SetTemp(bool temp=false) const {pixels_.SetTemp(temp);};
     
    8949// ---------- Definition of PixelMap abstract methods -------
    9050
    91 /* return/set the number of pixels */
    92 /*!    Return number of pixels */
    9351virtual int_4 NbPixels() const;   // D.Y. int change en int_4 rationalisation Mac
    9452 
    95 /* return the value of pixel number k */
    96 /*!    Return value of pixel with index k */
    9753virtual T& PixVal(int_4 k);
    98 /*!   const version of previous method */
    9954virtual T const& PixVal(int_4 k) const;
    10055
    101 /* Return true if teta,phi in map  */
    10256virtual bool ContainsSph(double theta, double phi) const;
    103 /* return the index of pixel at (theta,phi) */
    104 /*!    Return index of the pixel with spherical coordinates (theta,phi) */
    10557virtual int_4 PixIndexSph(double theta,double phi) const;
    10658   
    107 /* return the spherical coordinates of center of pixel number k */
    108 /*!    Return (theta, phi) coordinates of pixel with index k */
    10959virtual void PixThetaPhi(int_4 k,double& theta,double& phi) const;
    11060
    111 /*! Set all pixels to value v */
    11261virtual T SetPixels(T v);
    11362
    114 /* return the Pixel Solid angle  (steradians) */
    115 /*!    Pixel Solid angle  (steradians)
    116 
    117     All the pixels have not necessarly the same size in (theta, phi)
    118     because of the projection scheme which is not yet fixed.
    119 */ 
    12063virtual double PixSolAngle(int_4 k) const;
    12164
    12265// ---------- Specific methods ------------------------------
    12366
    124 /*!    Resize storage area for pixels */
    12567void ReSize(int_4 nx, int_4 ny);
    12668
    12769inline virtual char* TypeOfMap() const {return "LOCAL";};
    12870 
    129 /* Origin (with angle between x axis and phi axis, in degrees)  x0,y0  the default: middle of map*/
    130 /*!    set the referential of the map (angles in degrees)
    131 
    132     (default x0=siz_x/2,  y0=siz_y/2)
    133 */
    13471virtual void SetOrigin(double theta=90.,double phi=0.,double angle=0.);
    135 /*!    set the referential of the map (angles in degrees) */
    13672virtual void SetOrigin(double theta,double phi,int_4 x0,int_4 y0,double angle=0.);
    13773
    138 /* Pixel size (degres) */
    139 /*!    angle range of tthe map (angles in degrees) */
    14074virtual void SetSize(double angleX,double angleY);
    14175
    142 /* Check to see if the local mapping is done */
     76/*! Check to see if the local mapping is done */
    14377inline bool LocalMap_isDone() const {return(originFlag_ && extensFlag_);};
    14478
    145 /*! Projection to a spherical map */
    14679virtual void Project(SphericalMap<T>& sphere) const;
    14780 
     
    14982      -> static method, or separate class */
    15083 
    151 /* provides a integer characterizing the pixelization refinement  (here : number of pixels) */
     84/*! provides a integer characterizing the pixelization refinement  (here : number of pixels) */
    15285inline virtual int_4 SizeIndex() const {return(nPix_);}
    15386inline int_4 Size_x() const {return nSzX_;}
     
    180113
    181114void InitNul();
    182 /*!    Return 2 indices corresponding to the pixel number k */
    183115void Getij(int_4 k,int_4& i,int_4& j) const;
    184 /*!    Transform a pair of coordinates (theta, phi) given in
    185     reference coordinates into map coordinates
    186 */
    187116void ReferenceToUser(double& theta,double& phi) const;
    188 /*!    Transform a pair of coordinates (theta, phi) given in
    189    map coordinates into reference coordinates
    190 */
    191117void UserToReference(double& theta,double& phi) const;
    192 /*!   Given coordinates in pixel units in the REFERENCE PLANE, return
    193     (theta, phi) in "absolute" referential theta=pi/2 ,phi=0.   
    194 */
    195118void PixProjToAngle(double x,double y,double& theta,double& phi) const;
    196 /*!    Given coordinates  (theta, phi) in "absolute" referential
    197     theta=pi/2 ,phi=0  return pixel indices  (i,j) in the REFERENCE PLANE.
    198 */
    199119void AngleProjToPix(double theta,double phi,double& x,double& y) const;
    200120
Note: See TracChangeset for help on using the changeset viewer.