Package uk.ac.starlink.ttools.plot2.geom
Class HealpixDataGeom
- java.lang.Object
-
- uk.ac.starlink.ttools.plot2.geom.HealpixDataGeom
-
- All Implemented Interfaces:
DataGeom
public abstract class HealpixDataGeom extends java.lang.Object implements DataGeom
DataGeom implementation for HEALPix indices. This can convert from a single integer to a sky position, the center of the corresponding HEALPix cell. It has to be parameterised by the HEALPix level, and optionally data/view sky system information.In general you should use the provided factory methods to instantiate this abstract class. If you want to implement a concrete subclass, make sure you implement the methods requred
Equality.- Since:
- 21 Dec 2018
- Author:
- Mark Taylor
-
-
Field Summary
Fields Modifier and Type Field Description static HealpixDataGeomDUMMY_INSTANCEPlaceholder instance.static LongCoordHEALPIX_COORDCoordinate for HEALPix pixel index.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static HealpixDataGeomcreateGeom(int level, boolean isNest, SkySys userSys, SkySys viewSys)Creates a data geom with input user data in one sky system and output data coordinates in another sky system.booleanequals(java.lang.Object o)intgetDataDimCount()Returns 3.Coord[]getPosCoords()Returns the definitions for the user-supplied coordinates that indicate plot positions.java.lang.StringgetVariantName()Returns a label for this DataGeom.inthashCode()booleanhasPosition()Indicates whether the values read by thereadDataPosmethod correspond to a point position in the data space.booleanreadDataPos(Tuple tuple, int icol, double[] dpos)Determines the positional coordinates in data space for a supplied tuple.
-
-
-
Field Detail
-
HEALPIX_COORD
public static final LongCoord HEALPIX_COORD
Coordinate for HEALPix pixel index.
-
DUMMY_INSTANCE
public static final HealpixDataGeom DUMMY_INSTANCE
Placeholder instance. This can be used where an instance of this class is required for documentation purposes, but it is not capable of actual transformations.
-
-
Method Detail
-
getDataDimCount
public int getDataDimCount()
Returns 3.- Specified by:
getDataDimCountin interfaceDataGeom- Returns:
- number of elements in data space coordinate array
-
hasPosition
public boolean hasPosition()
Description copied from interface:DataGeomIndicates whether the values read by thereadDataPosmethod correspond to a point position in the data space. If true, a successful read will result in a position array with a definite value for each coordinate. If false, some of the coordinates may be NaN. A false return value would be appropriate for instance if each tuple row for the plot layer represented by this geom corresponds to a line rather than a point in the data space.- Specified by:
hasPositionin interfaceDataGeom- Returns:
- true iff this geom represents point positions
-
getVariantName
public java.lang.String getVariantName()
Description copied from interface:DataGeomReturns a label for this DataGeom. It may be used to distinguish from other geoms used in the same plot type, so for instance call it "Cartesian" or "Polar" rather than "Plane" if it's X,Y.- Specified by:
getVariantNamein interfaceDataGeom- Returns:
- user-directed input coordinate type name
-
getPosCoords
public Coord[] getPosCoords()
Description copied from interface:DataGeomReturns the definitions for the user-supplied coordinates that indicate plot positions.- Specified by:
getPosCoordsin interfaceDataGeom- Returns:
- coordinate quantity array for this geometry
-
readDataPos
public boolean readDataPos(Tuple tuple, int icol, double[] dpos)
Description copied from interface:DataGeomDetermines the positional coordinates in data space for a supplied tuple.A parameter supplies the index of the field in the tuple at which the positional coordinate(s) can be found. Each position is represented by
DataGeom.getPosCoords()columns of the tuple. By convention positions are at the start of the tuple, so if there is one position in the tuple it will be at icol=0, and there are multiple positions the N'th one will be at icol=N*getPosCoords().An array of (at least)
DataGeom.getDataDimCount()elements is supplied, and on success the data space coordinate values are written into it.- Specified by:
readDataPosin interfaceDataGeom- Parameters:
tuple- coordinate tupleicol- column index intupleat which the positional information startsdpos- array into which data space coordinates are written- Returns:
- true iff conversion was successful
-
equals
public boolean equals(java.lang.Object o)
- Overrides:
equalsin classjava.lang.Object
-
hashCode
public int hashCode()
- Overrides:
hashCodein classjava.lang.Object
-
createGeom
public static HealpixDataGeom createGeom(int level, boolean isNest, SkySys userSys, SkySys viewSys)
Creates a data geom with input user data in one sky system and output data coordinates in another sky system. If both of the supplied sky systems are supplied, the corresponding rotation will be applied; if one or zero are supplied, these parameters are ignored.- Parameters:
level- healpix level (log2(nside))userSys- sky system in which user data is supplied, may be nullviewSys- sky system in which the plot is viewed, may be null- Returns:
- new data geom
-
-