# Class PixSampler

java.lang.Object
uk.ac.starlink.ttools.task.PixSampler

public class PixSampler extends Object
Interrogates a HEALPix all-sky map to sample pixel data. The map is supplied in the form of a table (one row per pixel, using HEALPix pixel indices), as used for instance by LAMBDA.

Since:
  5 Dec 2011
Author:
  Mark Taylor

## Nested Class Summary

Nested Classes
Modifier and Type
Class
Description
`static interface`
`PixSampler.StatMode`
Defines how statistics are to be acquired from a pixel or set of pixels.

## Field Summary

Fields
Modifier and Type
Field
Description
`static final PixSampler.StatMode`
`MEAN_MODE`
StatMode for taking an average.
`static final PixSampler.StatMode`
`POINT_MODE`
StatMode for making point samples.

## Constructor Summary

Constructors
Constructor
Description
`PixSampler(uk.ac.starlink.table.StarTable pixTable, boolean nested, int order)`
Constructor.

## Method Summary

Modifier and Type
Method
Description
`static PixSampler`
`createPixSampler(uk.ac.starlink.table.StarTable pixTable)`
Constructs a PixSampler from a given table.
`uk.ac.starlink.table.ColumnInfo[]`
`getValueInfos(PixSampler.StatMode statMode)`
Returns the metadata for the columns output by the sampler.
`static Boolean`
`inferNested(uk.ac.starlink.table.StarTable pixTable)`
Tries to work out whether a given table uses the nested or ring HEALPix ordering scheme.
`static int`
`inferOrder(uk.ac.starlink.table.StarTable pixTable)`
Tries to work out the HEALPix order parameter for a pixel data table.
`Object`
`sampleValue(int icol, double alphaDeg, double deltaDeg, double radiusDeg, PixSampler.StatMode statMode)`
Samples a single value from a given sky position.
`Object[]`
`sampleValues(double alphaDeg, double deltaDeg, double radiusDeg, PixSampler.StatMode statMode)`
Samples values from all columns in given table at a given sky position.

### Methods inherited from class Object

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

## Field Details

### POINT_MODE

public static final PixSampler.StatMode POINT_MODE
StatMode for making point samples.

### MEAN_MODE

public static final PixSampler.StatMode MEAN_MODE
StatMode for taking an average.

## Constructor Details

### PixSampler

public PixSampler(uk.ac.starlink.table.StarTable pixTable, boolean nested, int order) throws IOException
Constructor.

Parameters:
  `pixTable` - random access HEALPix-format table (one row per pixel)
  `nested` - true for nested pixel order, false for ring
  `order` - HEALPix order
Throws:
  `IOException` - if the table has the wrong number of rows or is not random access

## Method Details

### sampleValue

public Object sampleValue(int icol, double alphaDeg, double deltaDeg, double radiusDeg, PixSampler.StatMode statMode) throws IOException
Samples a single value from a given sky position.

Parameters:
  `icol` - column index of value to sample
  `alphaDeg` - longitude position in degrees
  `deltaDeg` - latitude position in degrees
  `radiusDeg` - radius of disc over which statistics will be gathered (ignored for point-like statMode)
  `statMode` - mode for sampling statistics
Returns:
  sampled value at given point
Throws:
  `IOException`

### sampleValues

public Object[] sampleValues(double alphaDeg, double deltaDeg, double radiusDeg, PixSampler.StatMode statMode) throws IOException
Samples values from all columns in given table at a given sky position.

Parameters:
  `alphaDeg` - longitude position in degrees
  `deltaDeg` - latitude position in degrees
  `radiusDeg` - radius of disc over which statistics will be gathered (ignored for point-like statMode)
  `statMode` - mode for sampling statistics
Returns:
  array of sampled column values at given point
Throws:
  `IOException`

### getValueInfos

public uk.ac.starlink.table.ColumnInfo[] getValueInfos(PixSampler.StatMode statMode)
Returns the metadata for the columns output by the sampler.

Parameters:
  `statMode` - mode for sampling statistics
Returns:
  array of output metadata objects, one for each output column

### createPixSampler

public static PixSampler createPixSampler(uk.ac.starlink.table.StarTable pixTable) throws IOException
Constructs a PixSampler from a given table. The current implementation works with any table having a row count corresponding to a HEALPix pixel count, the order is inferred.

Parameters:
  `pixTable` - random access table containing HEALPix pixels
Returns:
  PixSampler object taking data from table
Throws:
  `IOException` - if table is not random access or does not appear to contain HEALPix data

### inferNested

public static Boolean inferNested(uk.ac.starlink.table.StarTable pixTable)
Tries to work out whether a given table uses the nested or ring HEALPix ordering scheme.

Parameters:
  `pixTable` - pixel data table
Returns:
  TRUE for nested, FALSE for ring, null for don't know

### inferOrder

public static int inferOrder(uk.ac.starlink.table.StarTable pixTable) throws IOException
Tries to work out the HEALPix order parameter for a pixel data table. Mainly it looks at the row count, but if the table obeys HEALPix header conventions any discrepancies between declared and apparent order result in an error.

Parameters:
  `pixTable` - pixel data table
Returns:
  HEALPix order
Throws:
  `IOException`