uk.ac.starlink.ttools.task
Class PixSampler

java.lang.Object
  extended by 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
static interface PixSampler.StatMode
          Defines how statistics are to be acquired from a pixel or set of pixels.
 
Field Summary
static PixSampler.StatMode MEAN_MODE
          StatMode for taking an average.
static PixSampler.StatMode POINT_MODE
          StatMode for making point samples.
 
Constructor Summary
PixSampler(StarTable pixTable, long nside, boolean nested)
          Constructor.
 
Method Summary
static PixSampler createPixSampler(StarTable pixTable)
          Constructs a PixSampler from a given table.
 ColumnInfo[] getValueInfos(PixSampler.StatMode statMode)
          Returns the metadata for the columns output by the sampler.
static Boolean inferNested(StarTable pixTable)
          Tries to work out whether a given table uses the nested or ring HEALPix ordering scheme.
static int inferNside(StarTable pixTable)
          Tries to work out the HEALPix nside 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 java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

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 Detail

PixSampler

public PixSampler(StarTable pixTable,
                  long nside,
                  boolean nested)
           throws IOException
Constructor.

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

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 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(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 nside is inferred. Parameters are interrogated in accordance with the conventions used by, for instance the FITS files used at NASA's LAMBDA archive, but other HEALPix tables that work in a more or less similar way will probably work.

I don't know of any proper reference for encoding of HEALPix maps in FITS files, but the documentation for the HPIC package (http://cmb.phys.cwru.edu/hpic/) has a useful list of heuristics (manual section 2.10.1). One of these acknowledges the fact that some HEALPix FITS files have columns which are 1024-element arrays (TFORMn = '1024E'). This routine does not currently support this rather perverse convention. If somebody requests it, maybe I'll consider implementing it.

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(StarTable pixTable)
Tries to work out whether a given table uses the nested or ring HEALPix ordering scheme. Parameters are interrogated in accordance with the conventions used by, for instance the FITS files used at NASA's LAMBDA archive.

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

inferNside

public static int inferNside(StarTable pixTable)
                      throws IOException
Tries to work out the HEALPix nside 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 nside result in an error.

Parameters:
pixTable - pixel data table
Returns:
HEALPix nside
Throws:
IOException


Copyright © 2015 Central Laboratory of the Research Councils. All Rights Reserved.