Next:
Data objects    Up: Preliminaries


S2HAT parameters and structures

  • Parameters;
  • Structures.

    NB. all parameters and structures are defined in s2hat_defs.h and s2hat_defs.f90 and need to be kept consistent.

  • Parameters

    PIXCHOICE_HEALPIX -- parameter (4-byte integer) defining Healpix pixelization (= 0);
    PIXCHOICE_GLESP -- parameter (4-byte integer) defining GLESP pixelization (= 1);
    PIXCHOICE_ECP -- parameter (4-byte integer) defining ECP gridding scheme (= 2);
    PIXCHOICE_GLCP -- parameter (4-byte integer) defining GLCP gridding scheme (= 3);
    SPIN_CONV_SIGN -- parameter (4-byte integer) defining the spin sign convention ( = (-1)H). See
    algebraic beackground section for more details. The default value = -1 corresponding to the HEALPix convention.

    Top of the page


  • Structures

    pixparameters - a structure storing parameters defining any of the pixelization/sky gridding schemes pre-defined in S2HAT. It has two fields:

      par1[int (4b)] - first parameter equal either to =nside for HEALPix, or =nringstot (i.e., total number of rings) for GLESP, ECP or GLCP;

      par2[int (4b)] - second parameter equal to a number of pixels per ring for ECP and GLCP, but irrelevant for HEALpix and GLESP.


    pixeltype - a structure storing all the pixelization characteristics needed by the transforms. (See Section Pixelization for all assumptions about the permissible pixelization schemes.)

    The fields are as follows:

      type[long int (8b)] -- pixelization type (e.g. = PIXCHOICE_HEALPIX);

      npixsall[long int (8b)] -- total number of pixels in the full sky map;

      nringsall[long int (8b)] -- a total number of iso-latitude rings of the full sky map covering the Northern hemisphere plus equatorial ring (if present);

      nphmx[long int (8b)] -- a maximum number of pixels per iso-ring;

      nph[long int (8b)] -- a pointer to a vector ([0:nringsall-1]) containing a number of pixels for each iso-ring;

      fpix[long int (8b)] -- a pointer to a vector ([0:nringsall-1]) containing for each ring a first pixel number in the global, ring-based pixel numbering scheme,

      pixelization.fpix[0] = 0;
      pixelization.fpix[1] = pixelization.nph[0];
      pixelization.fpix[2] = pixelization.nph[0] + pixelization.nph[1];
      etc., ...

      kphi[double] -- a pointer to a vector ([0:nringsall-1]) containing a phase shift info for the FFTs, it is equal to a azimuthal position (in radians) of the first pixel of each ring;

      qwght[double] -- a pointer to a vector ([0:nringsall-1] containing the quadrature weights for each isolatitudinal ring;

      /*
      pixphi[double] -- a pointer to a vector ([0:nringsall-1]) containing the pixel azimuthal separation for each iso-ring (assumed to be equidistant);

      --> DISUSED the pixel azimuthal size/separation is **ALWAYS** assumed to be:

      2 pi/pixelization.nph(ring number-1)
      */

      parea[double] -- a pointer to a vector ([0:nringsall-1]) containing the pixel areas for each iso-ring (and assumed to be constant on each iso-ring);

      cth [double] -- a pointer to a vector ([0:nringsall-1]) containing a value of a cosine of the polar angle measured from the North Pole for each iso-ring;

      sth [double] -- a pointer to a vector ([0:nringsall-1]) containing a value of a sine of the polar angle measured from the North Pole for each iso-ring;


    N.B. Note that given the pixelization structure one can always recover the position of all the pixel centers.

    For example:

    For an jth (where j=0,pixelization.nph[i-1]-1) pixel on an ith (where i=1,...,nringsall) ring (i.e., a pixel with a number pixelization.fpix[i-1]+j in the global, ring-wise numbering scheme starting from the North Pole), its coordinates are given by,

    phi( pixelization.fpix[i-1]+j) = pixelization.kphi[i-1] + pixelization.pixphi[i-1] * j,

    for j = 0, ..., pixelization.nph[i-1]-1 and i = 1, ..., nringsall-1

    and

    theta( pixelization.fpix[i-1]+j) = acos( pixelization.cth[i-1]).


    scandef -- A S2HAT structure storing all the info needed to define the sky patch to be analyzed.

    The fields are as follows:
    npixsobs [long int (8b)] - a number of observed pixels;

    nringsobs [long int (8b)] - a number of observed rings (including all partially observed ones), observed either in the North or South (i.e., a number of nonzero entries of the vector scan.fl defined below);

    nfl [long int (8b)] - a pointing to a vector ([0:nringsall-1]) storing the info about each ring of the Northern hemisphere (plus the equatorial ring if present). The stored values are either =1 or =0 if a ring is or is not observed. The rings are counted from the North Pole;

    sfl [long int (8b)] - a pointing to a vector ([0:nringsall-1]) storing the info about each ring of the Southern hemisphere. For observed rings: =1 and unobserved: =0. The rings are counted from the South Pole. (If an equatorial ring of pixels exists then scan.sfl[ nringsall-1] = scan.nfl[nringsall-1]);

    fl [long int (8b)] - a pointing to a vector ([0:nringsall-1]) vector storing the info about each ring. The stored values are: =1 - if either a ring or its symmetric counterpart (or both) is observed (in the Northern or Southern hemisphere respectively), otherwise -0. This field is a logical sum of the two previous fields.

    Note that all the fields of the structures need to be allocated and defined prior to calling any transform routines. That can be done either directly by the user or, for some standard pixelization schemes (i.e., HEALPix and GLESP), by calling provided functions. See Scan/pixelization routines section of this documentation.

    Top of the page


  • Next: Data objects    Up: Preliminaries

    radek stompor 2009-10-15