visad
Class Set

java.lang.Object
  extended by visad.ThingImpl
      extended by visad.DataImpl
          extended by visad.Set
All Implemented Interfaces:
java.io.Serializable, java.lang.Cloneable, Data, SetIface, Thing
Direct Known Subclasses:
SimpleSet

public abstract class Set
extends DataImpl
implements SetIface

Set is the abstract superclass of the VisAD hierarchy of sets.

Set-s are subsets of R^n for n>0. For the most part, Set objects are immutable (but see SampledSet.getSamples(boolean)).

See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class visad.DataImpl
DataImpl.Syncher
 
Field Summary
 
Fields inherited from interface visad.Data
ABS, ACOS, ACOS_DEGREES, ADD, ASIN, ASIN_DEGREES, ATAN, ATAN_DEGREES, ATAN2, ATAN2_DEGREES, CEIL, COS, COS_DEGREES, DEGREES_TO_RADIANS, DEPENDENT, DIVIDE, EXP, FLOOR, INDEPENDENT, INV_ATAN2, INV_ATAN2_DEGREES, INV_DIVIDE, INV_POW, INV_REMAINDER, INV_SUBTRACT, LOG, MAX, MIN, MULTIPLY, NEAREST_NEIGHBOR, NEGATE, NO_ERRORS, NOP, POW, RADIANS_TO_DEGREES, REMAINDER, RINT, ROUND, SIN, SIN_DEGREES, SQRT, SUBTRACT, TAN, TAN_DEGREES, WEIGHTED_AVERAGE
 
Constructor Summary
Set(MathType type)
          construct a Set object
Set(MathType type, CoordinateSystem coord_sys)
          Constructs a Set object with a non-default CoordinateSystem.
Set(MathType type, CoordinateSystem coord_sys, Unit[] units, ErrorEstimate[] errors)
          Constructs a Set object with a non-default CoordinateSystem, non-default Unit-s, and non-default errors.
 
Method Summary
 Data __getitem__(int index)
          for JPython
 int __len__()
          A wrapper around getLength for JPython.
 void addEqualsCache(Set set)
          add set to a cache of Set-s equal to this
 void addNotEqualsCache(Set set)
          add set to a cache of Set-s not equal to this
 java.lang.Object clone()
          Clones this instance.
abstract  java.lang.Object cloneButType(MathType type)
          copy this Set, but give it a new MathType; this is safe, since constructor checks consistency of DomainCoordinateSystem and SetUnits with Type
 DataShadow computeRanges(ShadowType type, DataShadow shadow)
          recursive version of computeRanges; would like 'default' visibility here, but must be declared 'public' because it is defined in the Data interface
 DataShadow computeRanges(ShadowType type, DataShadow shadow, double[][] ranges, boolean domain)
          this default does not set ranges - it is used by FloatSet and DoubleSet
static double[][] copyDoubles(double[][] samples)
           
static float[][] copyFloats(float[][] samples)
           
 void cram_missing(boolean[] range_select)
           
static float[][] doubleToFloat(double[][] value)
           
 int[] doubleToIndex(double[][] value)
           
abstract  boolean equals(java.lang.Object set)
          test for equality
 boolean equalUnitAndCS(Set set)
          test equality of SetUnits and DomainCoordinateSystem between this and set
static double[][] floatToDouble(float[][] value)
           
 CoordinateSystem getCoordinateSystem()
          Gets the coordinate system of this domain set (DomainCoordinateSystem).
 int getDimension()
          get DomainDimension (i.e., this is a subset of R^DomainDimension)
 double[][] getDoubles()
          Returns an enumeration of the samples of the set in index order.
 double[][] getDoubles(boolean copy)
          Returns an enumeration of the samples of the set in index order.
 int getLength()
          get the number of samples
 int getManifoldDimension()
          for non-SimpleSet, ManifoldDimension = DomainDimension
 int[][] getNeighbors(int dimension)
           
 void getNeighbors(int[][] neighbors)
           
 void getNeighbors(int[][] neighbors, float[][] weights)
           
 float[][] getSamples()
          return an enumeration of sample values in index order (i.e., not in getWedge order); the return array is organized as float[domain_dimension][number_of_samples]
 float[][] getSamples(boolean copy)
          Returns an enumeration of the samples of the set in index order.
 ErrorEstimate[] getSetErrors()
          Returns the error estimates of the values in the set.
 Unit[] getSetUnits()
          Returns the units of the values in the set.
 int[] getWedge()
          return an enumeration of sample indices in a spatially coherent order; this is useful for efficiency
 double[][] indexToDouble(int[] index)
          Returns an array of sample-point values corresponding to an array of sample-point indicies.
abstract  float[][] indexToValue(int[] index)
          convert an array of indices to an array of sample values; the return array is organized as float[domain_dimension][indices.length]
 java.lang.String longString()
          generates a longer string than generated by toString
 java.lang.String longString(java.lang.String pre)
          generates a longer string than generated by toString, indented by pre (a string of blanks)
static void main(java.lang.String[] args)
           
 VisADGeometryArray make1DGeometry(byte[][] color_values)
           
 VisADGeometryArray make2DGeometry(byte[][] color_values, boolean indexed)
           
 VisADGeometryArray[] make3DGeometry(byte[][] color_values)
           
 VisADGeometryArray[] makeIsoLines(float[] intervals, float lowlimit, float highlimit, float base, float[] fieldValues, byte[][] color_values, boolean[] swap, boolean dash, boolean fill, ScalarMap[] smap)
          return basic lines in array[0], fill-ins in array[1] and labels in array[2]
 VisADGeometryArray makeIsoSurface(float isolevel, float[] fieldValues, byte[][] color_values, boolean indexed)
           
 VisADGeometryArray makePointGeometry(byte[][] color_values)
           
 Set makeSpatial(SetType type, float[][] samples)
           
 Set merge1DSets(Set set)
          merge 1D sets; used for default animation set
 boolean testEqualsCache(Set set)
          test set against a cache of Set-s equal to this
 boolean testNotEqualsCache(Set set)
          test set against a cache of Set-s not equal to this
 int unitAndCSHashCode()
          Returns the hash code of the units and coordinate-system.
abstract  int[] valueToIndex(float[][] value)
          convert an array of values to an array of indices of the nearest samples; the values array is organized as float[domain_dimension][number_of_values]
 
Methods inherited from class visad.DataImpl
__add__, __add__, __div__, __div__, __mod__, __mod__, __mul__, __mul__, __neg__, __pow__, __pow__, __sub__, __sub__, abs, abs, acos, acos, acosDegrees, acosDegrees, add, add, adjustSamplingError, asin, asin, asinDegrees, asinDegrees, atan, atan, atan2, atan2, atan2Degrees, atan2Degrees, atanDegrees, atanDegrees, binary, binary, ceil, ceil, changeMathType, computeRanges, computeRanges, cos, cos, cosDegrees, cosDegrees, dataClone, divide, divide, exp, exp, floor, floor, getType, local, log, log, max, max, min, min, multiply, multiply, negate, negate, notifyReferences, pow, pow, remainder, remainder, rint, rint, round, round, sin, sin, sinDegrees, sinDegrees, sqrt, sqrt, subtract, subtract, tan, tan, tanDegrees, tanDegrees, toString, unary, unary
 
Methods inherited from class visad.ThingImpl
addReference, removeReference
 
Methods inherited from class java.lang.Object
finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface visad.Data
abs, abs, acos, acos, acosDegrees, acosDegrees, add, add, adjustSamplingError, asin, asin, asinDegrees, asinDegrees, atan, atan, atan2, atan2, atan2Degrees, atan2Degrees, atanDegrees, atanDegrees, binary, binary, ceil, ceil, changeMathType, computeRanges, computeRanges, cos, cos, cosDegrees, cosDegrees, dataClone, divide, divide, exp, exp, floor, floor, getType, isMissing, local, log, log, max, max, min, min, multiply, multiply, negate, negate, pow, pow, remainder, remainder, rint, rint, round, round, sin, sin, sinDegrees, sinDegrees, sqrt, sqrt, subtract, subtract, tan, tan, tanDegrees, tanDegrees, unary, unary
 
Methods inherited from interface visad.Thing
addReference, removeReference
 

Constructor Detail

Set

public Set(MathType type)
    throws VisADException
construct a Set object

Throws:
VisADException

Set

public Set(MathType type,
           CoordinateSystem coord_sys)
    throws VisADException
Constructs a Set object with a non-default CoordinateSystem.

Parameters:
type - The type of the Set.
coord_sys - The CoordinateSystem associated with this Set.
Throws:
VisADException

Set

public Set(MathType type,
           CoordinateSystem coord_sys,
           Unit[] units,
           ErrorEstimate[] errors)
    throws VisADException
Constructs a Set object with a non-default CoordinateSystem, non-default Unit-s, and non-default errors. This is the most general constructor.

Parameters:
type - The MathType of the set. May be a RealType, a RealTupleType, or a SetType.
coord_sys - Optional coordinate system for the domain of the set. May be null, in which case the default coordinate system of the domain is used.
units - Optional units for the values. May be null, in which case the default units of the domain are used. If the ith element is non-null and the RealType of the corresponding domain component is an interval, then the unit that is actually used is units[i].getAbsoluteUnit().
errors - Error estimates. May be null. errors[i] is the error estimate for the i-th component and may be null.
Throws:
VisADException
Method Detail

getSetUnits

public Unit[] getSetUnits()
Returns the units of the values in the set. The units may differ from the default units of the underlying MathType but will be convertible with them.

Specified by:
getSetUnits in interface SetIface
Returns:
The units of the values in the set. Will not be null. RETURN_VALUE[i] is the unit of the i-th component and may be null.

getSetErrors

public ErrorEstimate[] getSetErrors()
Returns the error estimates of the values in the set.

Specified by:
getSetErrors in interface SetIface
Returns:
Error estimates for the set. Will not be null. RETURN_VALUE[i] is the error estimate for the i-th component and may be null.

getCoordinateSystem

public CoordinateSystem getCoordinateSystem()
Gets the coordinate system of this domain set (DomainCoordinateSystem).

Specified by:
getCoordinateSystem in interface SetIface
Returns:
The coordinate system of this domain set. This will be the coordinate system passed to the constructor if non-null; otherwise, the (default) coordinate system of the underlying RealTupleType (which may be null).

getDimension

public int getDimension()
get DomainDimension (i.e., this is a subset of R^DomainDimension)

Specified by:
getDimension in interface SetIface
Returns:
The rank of the samples in the set.

getManifoldDimension

public int getManifoldDimension()
for non-SimpleSet, ManifoldDimension = DomainDimension

Specified by:
getManifoldDimension in interface SetIface
Returns:
The rank of the manifold of the set.

getLength

public int getLength()
              throws VisADException
get the number of samples

Specified by:
getLength in interface SetIface
Returns:
The number of samples in the set.
Throws:
VisADException

__len__

public int __len__()
            throws VisADException
A wrapper around getLength for JPython.

Returns:
The number of elements in the Set
Throws:
VisADException

getWedge

public int[] getWedge()
return an enumeration of sample indices in a spatially coherent order; this is useful for efficiency

Specified by:
getWedge in interface SetIface
Returns:
Indices of the samples of the set in a zig- zagging pattern with good coherence.

getSamples

public float[][] getSamples()
                     throws VisADException
return an enumeration of sample values in index order (i.e., not in getWedge order); the return array is organized as float[domain_dimension][number_of_samples]

Specified by:
getSamples in interface SetIface
Returns:
An enumeration of the samples of the set. Element [i][j] is the i-th coordinate of the j-th sample.
Throws:
VisADException - VisAD failure.
See Also:
SetIface.getSamples(boolean copy)

getSamples

public float[][] getSamples(boolean copy)
                     throws VisADException
Description copied from interface: SetIface
Returns an enumeration of the samples of the set in index order.

Specified by:
getSamples in interface SetIface
Parameters:
copy - Whether or not to make a copy of the samples of the set.
Returns:
An enumeration of the samples of the set. Element [i][j] is the i-th coordinate of the j-th sample.
Throws:
VisADException - VisAD failure.

getDoubles

public double[][] getDoubles()
                      throws VisADException
Description copied from interface: SetIface
Returns an enumeration of the samples of the set in index order. This is the same as getDoubles(true).

Specified by:
getDoubles in interface SetIface
Returns:
An enumeration of the samples of the set. Element [i][j] is the i-th coordinate of the j-th sample.
Throws:
VisADException - VisAD failure.
See Also:
SetIface.getDoubles(boolean copy)

getDoubles

public double[][] getDoubles(boolean copy)
                      throws VisADException
Description copied from interface: SetIface
Returns an enumeration of the samples of the set in index order.

Specified by:
getDoubles in interface SetIface
Parameters:
copy - Whether or not to make a copy of the samples of the set.
Returns:
An enumeration of the samples of the set. Element [i][j] is the i-th coordinate of the j-th sample.
Throws:
VisADException - VisAD failure.

cram_missing

public void cram_missing(boolean[] range_select)
Specified by:
cram_missing in interface SetIface

indexToValue

public abstract float[][] indexToValue(int[] index)
                                throws VisADException
convert an array of indices to an array of sample values; the return array is organized as float[domain_dimension][indices.length]

Specified by:
indexToValue in interface SetIface
Parameters:
index - The array of 1-D indices.
Returns:
The values of the set corresponding to the input indices. Element [i][j] is the i-th coordinate of the sample at index index[j].
Throws:
VisADException - VisAD failure.

valueToIndex

public abstract int[] valueToIndex(float[][] value)
                            throws VisADException
convert an array of values to an array of indices of the nearest samples; the values array is organized as float[domain_dimension][number_of_values]

Specified by:
valueToIndex in interface SetIface
Parameters:
value - An array of points. value[i][j] is the i-th coordinate of the j-th point.
Returns:
Indices of the nearest samples in the set. If the j-th point lies within the set, then element [i] is the index of the closest sample; otherwise, element [i] is -1.
Throws:
VisADException - VisAD failure.

computeRanges

public DataShadow computeRanges(ShadowType type,
                                DataShadow shadow)
                         throws VisADException
Description copied from interface: Data
recursive version of computeRanges; would like 'default' visibility here, but must be declared 'public' because it is defined in the Data interface

Specified by:
computeRanges in interface Data
Throws:
VisADException

computeRanges

public DataShadow computeRanges(ShadowType type,
                                DataShadow shadow,
                                double[][] ranges,
                                boolean domain)
                         throws VisADException
this default does not set ranges - it is used by FloatSet and DoubleSet

Throws:
VisADException

merge1DSets

public Set merge1DSets(Set set)
                throws VisADException
merge 1D sets; used for default animation set

Specified by:
merge1DSets in interface SetIface
Throws:
VisADException

makeSpatial

public Set makeSpatial(SetType type,
                       float[][] samples)
                throws VisADException
Specified by:
makeSpatial in interface SetIface
Throws:
VisADException

make1DGeometry

public VisADGeometryArray make1DGeometry(byte[][] color_values)
                                  throws VisADException
Specified by:
make1DGeometry in interface SetIface
Throws:
VisADException

make2DGeometry

public VisADGeometryArray make2DGeometry(byte[][] color_values,
                                         boolean indexed)
                                  throws VisADException
Specified by:
make2DGeometry in interface SetIface
Throws:
VisADException

make3DGeometry

public VisADGeometryArray[] make3DGeometry(byte[][] color_values)
                                    throws VisADException
Specified by:
make3DGeometry in interface SetIface
Throws:
VisADException

makePointGeometry

public VisADGeometryArray makePointGeometry(byte[][] color_values)
                                     throws VisADException
Specified by:
makePointGeometry in interface SetIface
Throws:
VisADException

makeIsoLines

public VisADGeometryArray[] makeIsoLines(float[] intervals,
                                         float lowlimit,
                                         float highlimit,
                                         float base,
                                         float[] fieldValues,
                                         byte[][] color_values,
                                         boolean[] swap,
                                         boolean dash,
                                         boolean fill,
                                         ScalarMap[] smap)
                                  throws VisADException
return basic lines in array[0], fill-ins in array[1] and labels in array[2]

Specified by:
makeIsoLines in interface SetIface
Throws:
VisADException

makeIsoSurface

public VisADGeometryArray makeIsoSurface(float isolevel,
                                         float[] fieldValues,
                                         byte[][] color_values,
                                         boolean indexed)
                                  throws VisADException
Specified by:
makeIsoSurface in interface SetIface
Throws:
VisADException

indexToDouble

public double[][] indexToDouble(int[] index)
                         throws VisADException
Returns an array of sample-point values corresponding to an array of sample-point indicies.

Specified by:
indexToDouble in interface SetIface
Parameters:
index - The indicies of the sample points.
Returns:
A corresponding array of sample-point values. RETURN_VALUE[i][j] is the jth component of sample-point i.
Throws:
VisADException - if a VisAD failure occurs.

doubleToIndex

public int[] doubleToIndex(double[][] value)
                    throws VisADException
Specified by:
doubleToIndex in interface SetIface
Throws:
VisADException

floatToDouble

public static double[][] floatToDouble(float[][] value)

doubleToFloat

public static float[][] doubleToFloat(double[][] value)

copyFloats

public static float[][] copyFloats(float[][] samples)

copyDoubles

public static double[][] copyDoubles(double[][] samples)

getNeighbors

public void getNeighbors(int[][] neighbors)
                  throws VisADException
Specified by:
getNeighbors in interface SetIface
Throws:
VisADException

getNeighbors

public void getNeighbors(int[][] neighbors,
                         float[][] weights)
                  throws VisADException
Specified by:
getNeighbors in interface SetIface
Throws:
VisADException

getNeighbors

public int[][] getNeighbors(int dimension)
                     throws VisADException
Specified by:
getNeighbors in interface SetIface
Throws:
VisADException

testNotEqualsCache

public boolean testNotEqualsCache(Set set)
test set against a cache of Set-s not equal to this


addNotEqualsCache

public void addNotEqualsCache(Set set)
add set to a cache of Set-s not equal to this


testEqualsCache

public boolean testEqualsCache(Set set)
test set against a cache of Set-s equal to this


addEqualsCache

public void addEqualsCache(Set set)
add set to a cache of Set-s equal to this


equalUnitAndCS

public boolean equalUnitAndCS(Set set)
test equality of SetUnits and DomainCoordinateSystem between this and set

Specified by:
equalUnitAndCS in interface SetIface

unitAndCSHashCode

public int unitAndCSHashCode()
Returns the hash code of the units and coordinate-system. This is the hash code analogue of equalUnitAndCS(Set).

Returns:
The hash code of the units and coordinate system.

__getitem__

public Data __getitem__(int index)
                 throws VisADException,
                        java.rmi.RemoteException
for JPython

Throws:
VisADException
java.rmi.RemoteException

equals

public abstract boolean equals(java.lang.Object set)
test for equality

Specified by:
equals in interface SetIface
Overrides:
equals in class java.lang.Object

clone

public java.lang.Object clone()
Clones this instance.

Overrides:
clone in class DataImpl
Returns:
A clone of this instance.

cloneButType

public abstract java.lang.Object cloneButType(MathType type)
                                       throws VisADException
copy this Set, but give it a new MathType; this is safe, since constructor checks consistency of DomainCoordinateSystem and SetUnits with Type

Specified by:
cloneButType in interface SetIface
Parameters:
type - The MathType for the clone.
Returns:
A clone of this set with the new MathType.
Throws:
VisADException - VisAD failure.

longString

public java.lang.String longString()
                            throws VisADException
Description copied from class: DataImpl
generates a longer string than generated by toString

Specified by:
longString in interface Data
Overrides:
longString in class DataImpl
Throws:
VisADException

longString

public java.lang.String longString(java.lang.String pre)
                            throws VisADException
Description copied from class: DataImpl
generates a longer string than generated by toString, indented by pre (a string of blanks)

Specified by:
longString in interface Data
Overrides:
longString in class DataImpl
Throws:
VisADException

main

public static void main(java.lang.String[] args)
                 throws VisADException
Throws:
VisADException