uk.ac.starlink.topcat.plot
Class SphericalPolarPointStore

java.lang.Object
  extended by uk.ac.starlink.topcat.plot.SphericalPolarPointStore
All Implemented Interfaces:
Points, PointStore

public class SphericalPolarPointStore
extends Object
implements PointStore

PointStore implementation for storing spherical polar data. In fact currently the data points are stored in Cartesian coordinates (X,Y,Z), since spherical decoding is taken care of by the PointSelection object (probably saving time on replots) but the errors are stored as radial and tangential deltas (since storing the error points would take a lot of extra space).

The error points returned by getErrors(int) consist of a 1- (radial only), 2- (tangential only) or 3- (tangential followed by radial) pair array of 3-d coordinate arrays. Each pair is a lower bound followed by an upper bound along the relevant dimension.

Since:
3 Apr 2007
Author:
Mark Taylor

Constructor Summary
SphericalPolarPointStore(uk.ac.starlink.ttools.plot.ErrorMode radialMode, boolean hasTanerr, boolean radialLog, int npoint)
          Constructor.
 
Method Summary
 void calcErrors(double[] centre, double[] tanErrs, double[] radErrs, double[][] errors)
          Calculates the returned error points given the raw error values.
 int getCount()
          Returns the number of points in this dataset.
 double[][] getErrors(int ipoint)
          Reads the errors for one of the stored points.
 String getLabel(int ipoint)
          Returns a string associated with a given point.
 int getNdim()
          Returns the length of the coordinate array for each point.
 int getNerror()
          Returns the number of error points returned for each point.
 double[] getPoint(int ipoint)
          Reads the coordinates of one of the stored points.
 boolean hasLabels()
          Indicates whether a string label is associated with some points.
 void setMinimumTanError(double minTanError)
          Sets the smallest value for tan error which should generate non-blank tangent error bar points.
 void storePoint(Object[] coordRow, Object[] errorRow, String label)
          Stores the next point in sequence to this object.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

SphericalPolarPointStore

public SphericalPolarPointStore(uk.ac.starlink.ttools.plot.ErrorMode radialMode,
                                boolean hasTanerr,
                                boolean radialLog,
                                int npoint)
Constructor.

Parameters:
radialMode - type of radial error information to store
hasTanerr - whether to store tangential error information
radialLog - whether radial coordinates are logarithmic
npoint - number of points to store
Method Detail

storePoint

public void storePoint(Object[] coordRow,
                       Object[] errorRow,
                       String label)
Description copied from interface: PointStore
Stores the next point in sequence to this object. The lengths of the arrays supplied here are not necessarily the same as those returned by the Points.getNdim() and Points.getNerror() methods, since there may be some translation between the arrays.

The PointSelection submits rows here as retrieved directly from the AxesSelector AxesSelector.getData() and AxesSelector.getErrorData() tables.

Specified by:
storePoint in interface PointStore
Parameters:
coordRow - array of objects representing coordinate values
errorRow - array of objects representing error values
label - string labelling the point

getCount

public int getCount()
Description copied from interface: Points
Returns the number of points in this dataset.

Specified by:
getCount in interface Points
Returns:
numer of points

getNdim

public int getNdim()
Description copied from interface: Points
Returns the length of the coordinate array for each point.

Specified by:
getNdim in interface Points
Returns:
number of coordinate values at each point

getPoint

public double[] getPoint(int ipoint)
Description copied from interface: Points
Reads the coordinates of one of the stored points. The returned array may be modified by subsequent calls to this method. The caller is also permitted to modify it.

Specified by:
getPoint in interface Points
Parameters:
ipoint - point index
Returns:
coords an ndim-element array containing point coordinates

getNerror

public int getNerror()
Description copied from interface: Points
Returns the number of error points returned for each point.

Specified by:
getNerror in interface Points
Returns:
number of error values at each point

getErrors

public double[][] getErrors(int ipoint)
Description copied from interface: Points
Reads the errors for one of the stored points. The returned value is an array of nerror double[] arrays, each of which has ndim elements and represents the coordinates of the end of an error bar. If any of these coordinate arrays is null, it represents an error bar of zero size, that is one whose end sits right on the data point. The ordering of these points is up to the user of this object, but typically they will be in pairs, e.g. (xlo,xhi, ylo,hi, ...). The content of the returned double[][] array and of its elements may be modified by subsequent calls to this method. The caller is also permitted to modify these.

Specified by:
getErrors in interface Points
Parameters:
ipoint - point index
Returns:
double[nerr][ndim] array with error extremum coordinates

hasLabels

public boolean hasLabels()
Description copied from interface: Points
Indicates whether a string label is associated with some points.

Specified by:
hasLabels in interface Points
Returns:
true if Points.getLabel(int) may return a non-null value for any point

getLabel

public String getLabel(int ipoint)
Description copied from interface: Points
Returns a string associated with a given point. May only return a non-null value if Points.hasLabels() returns true.

Specified by:
getLabel in interface Points
Parameters:
ipoint - point index
Returns:
label associated with points

setMinimumTanError

public void setMinimumTanError(double minTanError)
Sets the smallest value for tan error which should generate non-blank tangent error bar points. The idea is that if the graphical destination of the points represented by this object is known to have a pixel size/resolution smaller than a given angular distance over its whole range, we can save a lot of work by assuming that certain errors are effectively non-existent.

Parameters:
minTanError - minimum non-negligable tangent error in radians

calcErrors

public void calcErrors(double[] centre,
                       double[] tanErrs,
                       double[] radErrs,
                       double[][] errors)
Calculates the returned error points given the raw error values.

Parameters:
centre - central point coordinates
tanErrs - array of raw tangent error values as stored
radErrs - array of raw radial error values as stored
errors - array of error points


Copyright © 2003-2014 CCLRC: Council for the Central Laboratory of the Research Councils. All Rights Reserved.