## visad
Class Linear2DSet

    java.lang.Object
      visad.ThingImpl
          visad.DataImpl
              visad.Set
                  visad.SimpleSet
                      visad.SampledSet
                          visad.GriddedSet
                              visad.Gridded2DSet
                                  visad.Linear2DSet

All Implemented Interfaces:
  Cloneable, Data, GriddedSetIface, LinearSet, SampledSetIface, Serializable, SetIface, SimpleSetIface, Thing

Direct Known Subclasses:
  Integer2DSet, LinearLatLonSet

public class Linear2DSet
extends Gridded2DSet
implements LinearSet

Linear2DSet represents a finite set of samples of R^2 in a cross product of two arithmetic progressions.

The order of the samples is the rasterization of the orders of the 1D components, with the first component increasing fastest. For example, here is the order of 30 product samples when the first component is has 6 samples and the second component has 5 samples (note index is 0-based):

                 second (Y) component

       first      0   6  12  18  24
                  1   7  13  19  25
        (X)       2   8  14  20  26
                  3   9  15  21  27
      component   4  10  16  22  28
                  5  11  17  23  29

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` `X`
`(package private) Linear1DSet` `Y`

Fields inherited from class visad.Gridded2DSet
`HiX, HiY, LengthX, LengthY, LowX, LowY`

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
`Linear2DSet(double first1, double last1, int length1, double first2, double last2, int length2)` Construct a 2-D cross product of arithmetic progressions with null errors and generic type.
`Linear2DSet(Linear1DSet[] sets)` Construct a 2-D cross product of `sets` with a generic MathType.
`Linear2DSet(MathType type, double first1, double last1, int length1, double first2, double last2, int length2)` Construct a 2-D cross product of arithmetic progressions with null errors and the specified `type`.
`Linear2DSet(MathType type, double first1, double last1, int length1, double first2, double last2, int length2, CoordinateSystem coord_sys, Unit[] units, ErrorEstimate[] errors)` Construct a 2-D cross product of arithmetic progressions with the specified `type`, `coord_sys`, `units` and `errors`.
`Linear2DSet(MathType type, double first1, double last1, int length1, double first2, double last2, int length2, CoordinateSystem coord_sys, Unit[] units, ErrorEstimate[] errors, boolean cache)` Construct a 2-D cross product of arithmetic progressions with the specified `type`, `coord_sys`, `units` and `errors`.
`Linear2DSet(MathType type, Linear1DSet[] sets)` Construct a 2-D cross product of `sets` with the specified `type`.
`Linear2DSet(MathType type, Linear1DSet[] sets, CoordinateSystem coord_sys, Unit[] units, ErrorEstimate[] errors)` Construct a 2-D cross product of `sets`, with the specified `type`, `coord_sys`, `units` and `errors`.
`Linear2DSet(MathType type, Linear1DSet[] sets, CoordinateSystem coord_sys, Unit[] units, ErrorEstimate[] errors, boolean cache)` Construct a 2-D cross product of `sets`, with the specified `type`, `coord_sys`, `units` and `errors`.

Method Summary
`Object` `cloneButType(MathType type)` Return a clone of this object with a new MathType.
`boolean` `equals(Object set)` Check to see if this Linear2DSet is equal to the Object in question.
`Linear1DSet` `getLinear1DComponent(int i)` Get the indexed component (X is at 0, Y is at 1)
`float[][]` `getSamples(boolean copy)` Return the array of values in R^2 space corresponding to this cross product of arithmetic progressions.
`Linear1DSet` `getX()` Return the first arithmetic progression for this cross product (X of XY).
`Linear1DSet` `getY()` Return the second arithmetic progression for this cross product (Y of XY).
`float[][]` `gridToValue(float[][] grid)` transform an array of non-integer grid coordinates to an array of values in R^2
`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^2 space.
`boolean` `isMissing()` Check to see if this is an empty cross-product.
`String` `longString(String pre)` Extended version of the toString() method.
`float[][]` `valueToGrid(float[][] value)` transform an array of values in R^2 to an array of non-integer grid coordinates

Methods inherited from class visad.Gridded2DSet
`main, make_lengths, valueToIndex`

Methods inherited from class visad.GriddedSet
`create, create, create, create, getLength, getLengths, getNeighbors, getNeighbors, getWedge, makeSpatial, 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

### X

    Linear1DSet X

### Y

    Linear1DSet Y

Constructor Detail

### Linear2DSet

    public Linear2DSet(Linear1DSet[] sets)
                throws VisADException

  Construct a 2-D cross product of `sets` with a generic MathType.

Parameters:
  `sets` - Linear1DSets that make up this Linear2DSet.
Throws:
  `VisADException` - illegal sets or other VisAD error.

### Linear2DSet

    public Linear2DSet(MathType type,
                       Linear1DSet[] sets)
                throws VisADException

  Construct a 2-D cross product of `sets` with the specified `type`.

Parameters:
  `type` - MathType for this Linear2DSet. Must be consistent with MathType-s of sets.
  `sets` - Linear1DSets that make up this Linear2DSet.
Throws:
  `VisADException` - illegal sets or other VisAD error.

### Linear2DSet

    public Linear2DSet(double first1,
                       double last1,
                       int length1,
                       double first2,
                       double last2,
                       int length2)
                throws VisADException

  Construct a 2-D cross product of arithmetic progressions with null errors and generic type.

Parameters:
  `first1` - first value in first arithmetic progression
  `last1` - last value in first arithmetic progression
  `length1` - number of values in first arithmetic progression
  `first2` - first value in second arithmetic progression
  `last2` - last value in second arithmetic progression
  `length2` - number of values in second arithmetic progression
Throws:
  `VisADException` - problem creating VisAD objects.

### Linear2DSet

    public Linear2DSet(MathType type,
                       double first1,
                       double last1,
                       int length1,
                       double first2,
                       double last2,
                       int length2)
                throws VisADException

  Construct a 2-D cross product of arithmetic progressions with null errors and the specified `type`.

Parameters:
  `type` - MathType for this Linear2DSet.
  `first1` - first value in first arithmetic progression
  `last1` - last value in first arithmetic progression
  `length1` - number of values in first arithmetic progression
  `first2` - first value in second arithmetic progression
  `last2` - last value in second arithmetic progression
  `length2` - number of values in second arithmetic progression
Throws:
  `VisADException` - problem creating VisAD objects.

### Linear2DSet

    public Linear2DSet(MathType type,
                       double first1,
                       double last1,
                       int length1,
                       double first2,
                       double last2,
                       int length2,
                       CoordinateSystem coord_sys,
                       Unit[] units,
                       ErrorEstimate[] errors)
                throws VisADException

  Construct a 2-D cross product of arithmetic progressions with the specified `type`, `coord_sys`, `units` and `errors`.

Parameters:
  `type` - MathType for this Linear2DSet.
  `first1` - first value in first arithmetic progression
  `last1` - last value in first arithmetic progression
  `length1` - number of values in first arithmetic progression
  `first2` - first value in second arithmetic progression
  `last2` - last value in second arithmetic progression
  `length2` - number of values in second arithmetic progression
  `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 values in `sets`.
  `errors` - ErrorEstimate-s for values in `sets`, may be null
Throws:
  `VisADException` - problem creating VisAD objects.

### Linear2DSet

    public Linear2DSet(MathType type,
                       double first1,
                       double last1,
                       int length1,
                       double first2,
                       double last2,
                       int length2,
                       CoordinateSystem coord_sys,
                       Unit[] units,
                       ErrorEstimate[] errors,
                       boolean cache)
                throws VisADException

  Construct a 2-D cross product of arithmetic progressions with the specified `type`, `coord_sys`, `units` and `errors`.

Parameters:
  `type` - MathType for this Linear2DSet.
  `first1` - first value in first arithmetic progression
  `last1` - last value in first arithmetic progression
  `length1` - number of values in first arithmetic progression
  `first2` - first value in second arithmetic progression
  `last2` - last value in second arithmetic progression
  `length2` - number of values in second arithmetic progression
  `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 values in `sets`
  `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.

### Linear2DSet

    public Linear2DSet(MathType type,
                       Linear1DSet[] sets,
                       CoordinateSystem coord_sys,
                       Unit[] units,
                       ErrorEstimate[] errors)
                throws VisADException

  Construct a 2-D cross product of `sets`, with the specified `type`, `coord_sys`, `units` and `errors`.

Parameters:
  `type` - MathType for this Linear2DSet. Must be consistent with MathType-s of `sets`.
  `sets` - Linear1DSets that make up this Linear2DSet.
  `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 values in `sets`
  `errors` - ErrorEstimate-s for values in `sets`, may be null
Throws:
  `VisADException` - illegal sets or other VisAD error.

### Linear2DSet

    public Linear2DSet(MathType type,
                       Linear1DSet[] sets,
                       CoordinateSystem coord_sys,
                       Unit[] units,
                       ErrorEstimate[] errors,
                       boolean cache)
                throws VisADException

  Construct a 2-D cross product of `sets`, with the specified `type`, `coord_sys`, `units` and `errors`.

Parameters:
  `type` - MathType for this Linear2DSet. Must be consistent with MathType-s of `sets`.
  `sets` - Linear1DSets that make up this Linear2DSet.
  `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 values in `sets`.
  `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` - illegal sets or other VisAD error.

Method Detail

### indexToValue

    public float[][] indexToValue(int[] index)
                           throws VisADException

  Convert an array of 1-D indices to an array of values in R^2 space.

  Specified by:
    `indexToValue` in interface `SetIface`
  Overrides:
    `indexToValue` in class `Gridded2DSet`
  Parameters:
    `index` - array of indices of values in R^2 space.
  Returns:
    values in R^2 space corresponding to indices.
  Throws:
    `VisADException` - problem converting indices to values.

### gridToValue

    public float[][] gridToValue(float[][] grid)
                          throws VisADException

  transform an array of non-integer grid coordinates to an array of values in R^2

  Specified by:
    `gridToValue` in interface `GriddedSetIface`
  Overrides:
    `gridToValue` in class `Gridded2DSet`
  Throws:
    `VisADException`

### valueToGrid

    public float[][] valueToGrid(float[][] value)
                          throws VisADException

  transform an array of values in R^2 to an array of non-integer grid coordinates

  Specified by:
    `valueToGrid` in interface `GriddedSetIface`
  Overrides:
    `valueToGrid` in class `Gridded2DSet`
  Throws:
    `VisADException`

### getX

    public Linear1DSet getX()

  Return the first arithmetic progression for this cross product (X of XY).

  Returns:
    first arithmetic progression as a Linear1DSet.

### getY

    public Linear1DSet getY()

  Return the second arithmetic progression for this cross product (Y of XY).

  Returns:
    second arithmetic progression as a Linear1DSet.

### 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.

### getSamples

    public float[][] getSamples(boolean copy)
                         throws VisADException

  Return the array of values in R^2 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^2 space.
  Throws:
    `VisADException` - problem creating samples.

### equals

    public boolean equals(Object set)

  Check to see if this Linear2DSet 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 Linear2DSet 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 (X is at 0, Y is at 1)

  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 `Gridded2DSet`
  Parameters:
    `type` - new MathType.
  Returns:
    new Linear2DSet 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 Linear2DSet.
  Throws:
    `VisADException`