visad
Class LinearNDSet

java.lang.Object
  extended byvisad.ThingImpl
      extended byvisad.DataImpl
          extended byvisad.Set
              extended byvisad.SimpleSet
                  extended byvisad.SampledSet
                      extended byvisad.GriddedSet
                          extended byvisad.LinearNDSet
All Implemented Interfaces:
Cloneable, Data, GriddedSetIface, LinearSet, SampledSetIface, Serializable, SetIface, SimpleSetIface, Thing
Direct Known Subclasses:
IntegerNDSet

public class LinearNDSet
extends GriddedSet
implements LinearSet

LinearNDSet represents a finite set of samples of R^Dimension in a cross product of arithmetic progressions.

The order of the samples is the rasterization of the orders of the 1D components, with the first component increasing fastest. For more detail, see the example in Linear2DSet.java.

See Also:
Serialized Form

Nested Class Summary
 
Nested classes inherited from class visad.DataImpl
DataImpl.Syncher
 
Nested classes inherited from class visad.ThingImpl
ThingImpl.RemotePair
 
Field Summary
(package private)  Linear1DSet[] L
           
 
Fields inherited from class visad.GriddedSet
EPS, Lengths, Pos
 
Fields inherited from class visad.SampledSet
Hi, Low, Samples
 
Fields inherited from class visad.SimpleSet
ManifoldDimension
 
Fields inherited from class visad.Set
DomainCoordinateSystem, DomainDimension, hashCode, hashCodeSet, Length, SetErrors, SetUnits
 
Fields inherited from class visad.DataImpl
Type
 
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
LinearNDSet(MathType type, double[] firsts, double[] lasts, int[] lengths)
          Construct an N-dimensional set as the product of N arithmetic progressions (lengths[i] samples between firsts[i] and lasts[i]), with null errors, CoordinateSystem and Units are defaults from type
LinearNDSet(MathType type, double[] firsts, double[] lasts, int[] lengths, CoordinateSystem coord_sys, Unit[] units, ErrorEstimate[] errors)
          Construct an N-dimensional set as the product of N arithmetic progressions (lengths[i] samples between firsts[i] and lasts[i]), coordinate_system and units must be compatible with defaults for type, or may be null; errors may be null.
LinearNDSet(MathType type, double[] firsts, double[] lasts, int[] lengths, CoordinateSystem coord_sys, Unit[] units, ErrorEstimate[] errors, boolean cache)
          Construct an N-dimensional set as the product of N arithmetic progressions (lengths[i] samples between firsts[i] and lasts[i]), coordinate_system and units must be compatible with defaults for type, or may be null; errors may be null.
LinearNDSet(MathType type, Linear1DSet[] l)
          Construct an N-dimensional set as the product of N Linear1DSets, with null errors, CoordinateSystem and Units are defaults from type.
LinearNDSet(MathType type, Linear1DSet[] l, CoordinateSystem coord_sys, Unit[] units, ErrorEstimate[] errors)
          Construct an N-dimensional set as the product of N Linear1DSets; coordinate_system and units must be compatible with defaults for type, or may be null; errors may be null
LinearNDSet(MathType type, Linear1DSet[] l, CoordinateSystem coord_sys, Unit[] units, ErrorEstimate[] errors, boolean cache)
          Construct an N-dimensional set as the product of N Linear1DSets; coordinate_system and units must be compatible with defaults for type, or may be null; errors may be null
 
Method Summary
 Object cloneButType(MathType type)
          Return a clone of this object with a new MathType.
static LinearSet create(MathType type, double[] firsts, double[] lasts, int[] lengths)
          General Factory method for creating the proper linear set (Linear1DSet, Linear2DSet, etc.).
static LinearSet create(MathType type, double[] firsts, double[] lasts, int[] lengths, CoordinateSystem coord_sys, Unit[] units, ErrorEstimate[] errors)
           
 boolean equals(Object set)
          Check to see if this LinearNDSet is equal to the Object in question.
(package private) static Linear1DSet[] get_linear1d_array(MathType type, double[] firsts, double[] lasts, int[] lengths, Unit[] units)
           
(package private) static Linear1DSet[] get_linear1d_array(MathType type, double first1, double last1, int length1, double first2, double last2, int length2, double first3, double last3, int length3, Unit[] units)
           
(package private) static Linear1DSet[] get_linear1d_array(MathType type, double first1, double last1, int length1, double first2, double last2, int length2, Unit[] units)
           
 double[] getFirsts()
          Get the array of first values of each of the arithmetic progressions in this cross product.
 double[] getLasts()
          Get the array of last values of each of the arithmetic progressions in this cross product.
 Linear1DSet getLinear1DComponent(int i)
          Get the indexed component.
 float[][] getSamples(boolean copy)
          Return the array of values in R^N space corresponding to this cross product of arithmetic progressions.
 float[][] gridToValue(float[][] grid)
          transform an array of non-integer grid coordinates to an array of values in R^DomainDimension
 int hashCode()
          Returns the hash code for this instance.
 float[][] indexToValue(int[] index)
          convert an array of 1-D indices to an array of values in R^DomainDimension
 boolean isMissing()
          Check to see if this is an empty cross-product.
(package private) static Linear1DSet[] linear1d_array_units(Linear1DSet[] sets, Unit[] units)
           
 String longString(String pre)
          Extended version of the toString() method.
static void main(String[] args)
          run 'java visad.LinearNDSet' to test the LinearNDSet class
(package private) static Unit[] units_array_linear1d(Linear1DSet[] sets, Unit[] units)
           
 float[][] valueToGrid(float[][] value)
          transform an array of values in R^DomainDimension to an array of non-integer grid coordinates
 
Methods inherited from class visad.GriddedSet
create, create, create, create, getLength, getLengths, getNeighbors, getNeighbors, getWedge, makeSpatial, valueToIndex, valueToInterp
 
Methods inherited from class visad.SampledSet
clone, computeRanges, computeRanges, cram_missing, cram_samples, getHi, getLow, getNeighbors, getSamples, init_samples, init_samples, make1DGeometry, make3DGeometry, makePointGeometry, setGeometryArray, setGeometryArray
 
Methods inherited from class visad.SimpleSet
getManifoldDimension, setAnimationSampling
 
Methods inherited from class visad.Set
__getitem__, __len__, addEqualsCache, addNotEqualsCache, adjustType, copyDoubles, copyFloats, doubleToFloat, doubleToIndex, equalUnitAndCS, floatToDouble, getCoordinateSystem, getDimension, getDimension, getDoubles, getDoubles, getLength, getSetErrors, getSetUnits, indexToDouble, longString, make2DGeometry, makeIsoLines, makeIsoSurface, merge1DSets, testEqualsCache, testNotEqualsCache, unary, unitAndCSHashCode
 
Methods inherited from class visad.DataImpl
__add__, __add__, __div__, __div__, __mod__, __mod__, __mul__, __mul__, __neg__, __pow__, __pow__, __radd__, __rdiv__, __rmod__, __rmul__, __rpow__, __rsub__, __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, computeReferenceRanges, cos, cos, cosDegrees, cosDegrees, dataClone, divide, divide, exp, exp, floor, floor, getType, invertOp, local, log, log, max, max, min, min, multiply, multiply, negate, negate, notifyReferences, pow, pow, remainder, remainder, rint, rint, round, round, setParent, sin, sin, sinDegrees, sinDegrees, sqrt, sqrt, subtract, subtract, tan, tan, tanDegrees, tanDegrees, toString, unary
 
Methods inherited from class visad.ThingImpl
adaptedAddReference, adaptedRemoveReference, addReference, removeReference
 
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface visad.SampledSetIface
getHi, getLow
 
Methods inherited from interface visad.SetIface
cram_missing, doubleToIndex, equalUnitAndCS, getCoordinateSystem, getDimension, getDoubles, getDoubles, getLength, getManifoldDimension, getNeighbors, getSamples, getSetErrors, getSetUnits, indexToDouble, make1DGeometry, make2DGeometry, make3DGeometry, makeIsoLines, makeIsoSurface, makePointGeometry, merge1DSets
 
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, computeRanges, cos, cos, cosDegrees, cosDegrees, dataClone, divide, divide, exp, exp, floor, floor, getType, local, log, log, longString, 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
 

Field Detail

L

Linear1DSet[] L
Constructor Detail

LinearNDSet

public LinearNDSet(MathType type,
                   Linear1DSet[] l)
            throws VisADException
Construct an N-dimensional set as the product of N Linear1DSets, with null errors, CoordinateSystem and Units are defaults from type.

Parameters:
type - MathType for this LinearNDSet. Must be consistent with MathType-s of sets.
Throws:
VisADException - problem creating VisAD objects.

LinearNDSet

public LinearNDSet(MathType type,
                   double[] firsts,
                   double[] lasts,
                   int[] lengths)
            throws VisADException
Construct an N-dimensional set as the product of N arithmetic progressions (lengths[i] samples between firsts[i] and lasts[i]), with null errors, CoordinateSystem and Units are defaults from type

Parameters:
type - MathType for this LinearNDSet.
firsts - array of first values for each of the arithmetic progressions
lasts - array of last values for each of the arithmetic progressions
lengths - array of number of samples for each of the arithmetic progressions
Throws:
VisADException - problem creating VisAD objects.

LinearNDSet

public LinearNDSet(MathType type,
                   double[] firsts,
                   double[] lasts,
                   int[] lengths,
                   CoordinateSystem coord_sys,
                   Unit[] units,
                   ErrorEstimate[] errors)
            throws VisADException
Construct an N-dimensional set as the product of N arithmetic progressions (lengths[i] samples between firsts[i] and lasts[i]), coordinate_system and units must be compatible with defaults for type, or may be null; errors may be null.

Parameters:
type - MathType for this LinearNDSet.
firsts - array of first values for each of the arithmetic progressions
lasts - array of last values for each of the arithmetic progressions
lengths - array of number of samples for each of the arithmetic progressions
coord_sys - CoordinateSystem for this set. May be null, but if not, must be consistent with type.
units - Unit-s for the values in sets. May be null, but must be convertible with default of type if not null.
errors - ErrorEstimate-s for values in sets, may be null
Throws:
VisADException - problem creating VisAD objects.

LinearNDSet

public LinearNDSet(MathType type,
                   double[] firsts,
                   double[] lasts,
                   int[] lengths,
                   CoordinateSystem coord_sys,
                   Unit[] units,
                   ErrorEstimate[] errors,
                   boolean cache)
            throws VisADException
Construct an N-dimensional set as the product of N arithmetic progressions (lengths[i] samples between firsts[i] and lasts[i]), coordinate_system and units must be compatible with defaults for type, or may be null; errors may be null.

Parameters:
type - MathType for this LinearNDSet.
firsts - array of first values for each of the arithmetic progressions
lasts - array of last values for each of the arithmetic progressions
lengths - array of number of samples for each of the arithmetic progressions
coord_sys - CoordinateSystem for this set. May be null, but if not, must be consistent with type.
units - Unit-s for the values in sets. May be null, but must be convertible with default of type if not null.
errors - ErrorEstimate-s for values in sets, may be null
cache - if true, enumerate and cache the samples. This will result in a larger memory footprint, but will reduce the time to return samples from calls to SampledSet.getSamples().
Throws:
VisADException - problem creating VisAD objects.

LinearNDSet

public LinearNDSet(MathType type,
                   Linear1DSet[] l,
                   CoordinateSystem coord_sys,
                   Unit[] units,
                   ErrorEstimate[] errors)
            throws VisADException
Construct an N-dimensional set as the product of N Linear1DSets; coordinate_system and units must be compatible with defaults for type, or may be null; errors may be null

Parameters:
type - MathType for this LinearNDSet. Must be consistent with MathType-s of sets.
coord_sys - CoordinateSystem for this set. May be null, but if not, must be consistent with type.
units - Unit-s for the values in sets. May be null, but must be convertible with default of type if not null.
errors - ErrorEstimate-s for values in sets, may be null
Throws:
VisADException - problem creating VisAD objects.

LinearNDSet

public LinearNDSet(MathType type,
                   Linear1DSet[] l,
                   CoordinateSystem coord_sys,
                   Unit[] units,
                   ErrorEstimate[] errors,
                   boolean cache)
            throws VisADException
Construct an N-dimensional set as the product of N Linear1DSets; coordinate_system and units must be compatible with defaults for type, or may be null; errors may be null

Parameters:
type - MathType for this LinearNDSet. Must be consistent with MathType-s of sets.
coord_sys - CoordinateSystem for this set. May be null, but if not, must be consistent with type.
units - Unit-s for the values in sets. May be null, but must be convertible with default of type if not null.
errors - ErrorEstimate-s for values in sets, may be null
cache - if true, enumerate and cache the samples. This will result in a larger memory footprint, but will reduce the time to return samples from calls to SampledSet.getSamples().
Throws:
VisADException - problem creating VisAD objects.
Method Detail

create

public static LinearSet create(MathType type,
                               double[] firsts,
                               double[] lasts,
                               int[] lengths)
                        throws VisADException
General Factory method for creating the proper linear set (Linear1DSet, Linear2DSet, etc.).

Throws:
VisADException

create

public static LinearSet create(MathType type,
                               double[] firsts,
                               double[] lasts,
                               int[] lengths,
                               CoordinateSystem coord_sys,
                               Unit[] units,
                               ErrorEstimate[] errors)
                        throws VisADException
Throws:
VisADException

linear1d_array_units

static Linear1DSet[] linear1d_array_units(Linear1DSet[] sets,
                                          Unit[] units)
                                   throws VisADException
Throws:
VisADException

units_array_linear1d

static Unit[] units_array_linear1d(Linear1DSet[] sets,
                                   Unit[] units)
                            throws VisADException
Throws:
VisADException

get_linear1d_array

static Linear1DSet[] get_linear1d_array(MathType type,
                                        double[] firsts,
                                        double[] lasts,
                                        int[] lengths,
                                        Unit[] units)
                                 throws VisADException
Throws:
VisADException

get_linear1d_array

static Linear1DSet[] get_linear1d_array(MathType type,
                                        double first1,
                                        double last1,
                                        int length1,
                                        double first2,
                                        double last2,
                                        int length2,
                                        Unit[] units)
                                 throws VisADException
Throws:
VisADException

get_linear1d_array

static Linear1DSet[] get_linear1d_array(MathType type,
                                        double first1,
                                        double last1,
                                        int length1,
                                        double first2,
                                        double last2,
                                        int length2,
                                        double first3,
                                        double last3,
                                        int length3,
                                        Unit[] units)
                                 throws VisADException
Throws:
VisADException

indexToValue

public float[][] indexToValue(int[] index)
                       throws VisADException
convert an array of 1-D indices to an array of values in R^DomainDimension

Specified by:
indexToValue in interface SetIface
Overrides:
indexToValue in class GriddedSet
Throws:
VisADException

gridToValue

public float[][] gridToValue(float[][] grid)
                      throws VisADException
transform an array of non-integer grid coordinates to an array of values in R^DomainDimension

Specified by:
gridToValue in interface GriddedSetIface
Overrides:
gridToValue in class GriddedSet
Throws:
VisADException

valueToGrid

public float[][] valueToGrid(float[][] value)
                      throws VisADException
transform an array of values in R^DomainDimension to an array of non-integer grid coordinates

Specified by:
valueToGrid in interface GriddedSetIface
Overrides:
valueToGrid in class GriddedSet
Throws:
VisADException

isMissing

public boolean isMissing()
Check to see if this is an empty cross-product.

Specified by:
isMissing in interface Data
Overrides:
isMissing in class SampledSet
Returns:
always false.

getFirsts

public double[] getFirsts()
                   throws VisADException
Get the array of first values of each of the arithmetic progressions in this cross product.

Returns:
array of first values.
Throws:
VisADException

getLasts

public double[] getLasts()
                  throws VisADException
Get the array of last values of each of the arithmetic progressions in this cross product.

Returns:
array of last values.
Throws:
VisADException

getSamples

public float[][] getSamples(boolean copy)
                     throws VisADException
Return the array of values in R^N space corresponding to this cross product of arithmetic progressions.

Specified by:
getSamples in interface SetIface
Overrides:
getSamples in class SampledSet
Parameters:
copy - if true, return a copy of the samples.
Returns:
array of values in R^N space.
Throws:
VisADException - problem creating samples.

equals

public boolean equals(Object set)
Check to see if this LinearNDSet is equal to the Object in question.

Specified by:
equals in interface SetIface
Overrides:
equals in class GriddedSet
Parameters:
set - Object in question
Returns:
true if set is a LinearNDSet and each of the Linear1DSet-s that make up this cross product are equal.

hashCode

public int hashCode()
Returns the hash code for this instance.

Overrides:
hashCode in class GriddedSet
Returns:
The hash code for this instance.

getLinear1DComponent

public Linear1DSet getLinear1DComponent(int i)
Get the indexed component.

Specified by:
getLinear1DComponent in interface LinearSet
Parameters:
i - Index of component
Returns:
The requested component
Throws:
ArrayIndexOutOfBoundsException - If an invalid index is specified.

cloneButType

public Object cloneButType(MathType type)
                    throws VisADException
Return a clone of this object with a new MathType.

Specified by:
cloneButType in interface SetIface
Overrides:
cloneButType in class GriddedSet
Parameters:
type - new MathType.
Returns:
new LinearNDSet with type.
Throws:
VisADException - if type is not compatible with MathType of component Linear1DSets.

longString

public String longString(String pre)
                  throws VisADException
Extended version of the toString() method.

Specified by:
longString in interface Data
Overrides:
longString in class GriddedSet
Parameters:
pre - prefix for string.
Returns:
wordy string describing this LinearNDSet.
Throws:
VisADException

main

public static void main(String[] args)
                 throws VisADException
run 'java visad.LinearNDSet' to test the LinearNDSet class

Throws:
VisADException