Package uk.ac.starlink.table.join

## Class HealpixSkyPixellator

- java.lang.Object
- - uk.ac.starlink.table.join.HealpixSkyPixellator

- All Implemented Interfaces:
    `SkyPixellator`
  Direct Known Subclasses:
    `CdsHealpixSkyPixellator`

      public abstract class HealpixSkyPixellator
      extends java.lang.Object
      implements SkyPixellator

  Implements sky pixellisation using the HEALPix scheme. This works better than the HTM-based one for two reasons:
  1. It tends to be much faster to calculate a list of small pixels in a region, since the calculations are not hierarchical
  2. The pixels are square which means they generally have fewer neighbours than triangular HTM ones of a similar size
  Author:
    Mark Taylor (Starlink)

- - ### Constructor Summary

    Constructors
    Modifier | Constructor | Description
    --- | --- | ---
    `protected` | `HealpixSkyPixellator​(int maxK)` | Constructor.

  - ### Method Summary

    All Methods Instance Methods Abstract Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `abstract int` | `calculateDefaultK​(double scale)` | Determines a default value to use for the HEALPix k parameter based on a given scale.
    `protected abstract void` | `configureK​(int k)` | Updates internal state for the current value of the k parameter.
    `int` | `getHealpixK()` | Returns the HEALPix k value, which determines sky pixel size, equivalent to log2(nside).
    `int` | `getMaxK()` | Returns the maximum permissible K value.
    `double` | `getScale()` | Returns the most recently set angular scale.
    `uk.ac.starlink.table.DescribedValue` | `getTuningParameter()` | Returns a parameter whose value may be adjusted to alter the pixellisation scale.
    `void` | `setHealpixK​(int healpixK)` | Sets the HEALPix k value, which determines sky pixel size, equivalent to log2(nside).
    `void` | `setScale​(double scale)` | Sets the characteristic angular scale for this pixellator.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

    - ### Methods inherited from interface uk.ac.starlink.table.join.SkyPixellator

      `getPixels`

- - ### Constructor Detail

    - #### HealpixSkyPixellator

          protected HealpixSkyPixellator​(int maxK)

      Constructor.
      Parameters:
        `maxK` - the maximum K value permitted by this implementation

  - ### Method Detail

    - #### getMaxK

          public int getMaxK()

      Returns the maximum permissible K value.
      Returns:
        maximum Healpix K parameter supported by this implementation

    - #### setScale

          public void setScale​(double scale)

      Description copied from interface: `SkyPixellator`
      Sets the characteristic angular scale for this pixellator. Pixels should be approximately the size given, so that a larger scale corresponds to larger pixel sizes. The details of pixel size are determined by the details of the pixellation scheme however.
      Specified by:
        `setScale` in interface `SkyPixellator`
      Parameters:
        `scale` - pixel length scale in radians

    - #### getScale

          public double getScale()

      Description copied from interface: `SkyPixellator`
      Returns the most recently set angular scale.
      Specified by:
        `getScale` in interface `SkyPixellator`
      Returns:
        pixel length scale in radians

    - #### getTuningParameter

          public uk.ac.starlink.table.DescribedValue getTuningParameter()

      Description copied from interface: `SkyPixellator`
      Returns a parameter whose value may be adjusted to alter the pixellisation scale. This is not necessarily the same as the scale attribute (its value need not be an angle).
      Specified by:
        `getTuningParameter` in interface `SkyPixellator`
      Returns:
        tuning parameter

    - #### setHealpixK

          public void setHealpixK​(int healpixK)

      Sets the HEALPix k value, which determines sky pixel size, equivalent to log2(nside). May be in the range 0 (60deg) to `getMaxK()`. If set to -1, a suitable value will be used based on the scale.
      Parameters:
        `healpixK` - new k value

    - #### getHealpixK

          public int getHealpixK()

      Returns the HEALPix k value, which determines sky pixel size, equivalent to log2(nside). The returned may be the result of a default determination based on scale if no explicit K value has been set hitherto, and a non-zero scale is available.
      Returns:
        k value used by this engine

    - #### configureK

          protected abstract void configureK​(int k)

      Updates internal state for the current value of the k parameter.
      Parameters:
        `k` - HEALPix order

    - #### calculateDefaultK

          public abstract int calculateDefaultK​(double scale)

      Determines a default value to use for the HEALPix k parameter based on a given scale.
      Parameters:
        `scale` - distance scale, in radians