Class SphericalPolarPointStore

java.lang.Object
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

    Constructors
    Constructor
    Description
    SphericalPolarPointStore(uk.ac.starlink.ttools.plot.ErrorMode radialMode, boolean hasTanerr, boolean radialLog, int npoint)
    Constructor.
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    calcErrors(double[] centre, double[] tanErrs, double[] radErrs, double[][] errors)
    Calculates the returned error points given the raw error values.
    int
    Returns the number of points in this dataset.
    double[][]
    getErrors(int ipoint)
    Reads the errors for one of the stored points.
    getLabel(int ipoint)
    Returns a string associated with a given point.
    int
    Returns the length of the coordinate array for each point.
    int
    Returns the number of error points returned for each point.
    double[]
    getPoint(int ipoint)
    Reads the coordinates of one of the stored points.
    boolean
    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 Details

    • 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 Details

    • 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