visad
Class LinearLatLonSet

java.lang.Object
  extended byvisad.ThingImpl
      extended byvisad.DataImpl
          extended byvisad.Set
              extended byvisad.SimpleSet
                  extended byvisad.SampledSet
                      extended byvisad.GriddedSet
                          extended byvisad.Gridded2DSet
                              extended byvisad.Linear2DSet
                                  extended byvisad.LinearLatLonSet
All Implemented Interfaces:
Cloneable, Data, GriddedSetIface, LinearSet, SampledSetIface, Serializable, SetIface, SimpleSetIface, Thing

public class LinearLatLonSet
extends Linear2DSet

LinearLatLonSet represents a finite set of samples of (Latitude, Longitude) in a cross product of two arithmetic progressions.

This class exists to override valueToInterp (as defined in GriddedSet) in order to handle Longitude wrapping.

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
 
Fields inherited from class visad.Linear2DSet
X, 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
LinearLatLonSet(MathType type, double first1, double last1, int length1, double first2, double last2, int length2)
          Construct a 2-D cross product of arithmetic progressions whose east and west edges may be joined (for interpolation purposes), with null errors, CoordinateSystem and Units are defaults from type
LinearLatLonSet(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 whose east and west edges may be joined (for interpolation purposes), with specified errors, coord_sys and units.
LinearLatLonSet(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 whose east and west edges may be joined (for interpolation purposes), with specified errors, coord_sys and units.
LinearLatLonSet(MathType type, Linear1DSet[] sets)
          Construct a 2-D cross product of arithmetic progressions whose east and west edges may be joined (for interpolation purposes), with null errors, CoordinateSystem and Units are defaults from type.
LinearLatLonSet(MathType type, Linear1DSet[] sets, CoordinateSystem coord_sys, Unit[] units, ErrorEstimate[] errors)
          Construct a 2-D cross product of arithmetic progressions whose east and west edges may be joined (for interpolation purposes), with specified errors, coord_sys and units.
LinearLatLonSet(MathType type, Linear1DSet[] sets, CoordinateSystem coord_sys, Unit[] units, ErrorEstimate[] errors, boolean cache)
          Construct a 2-D cross product of arithmetic progressions whose east and west edges may be joined (for interpolation purposes), with specified errors, coord_sys and units.
 
Method Summary
(package private)  void checkWrap()
           
 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.
 float[][] gridToValue(float[][] grid)
          transform an array of non-integer grid coordinates to an array of values in (Latitude, Longitude)
 String longString(String pre)
          Extended version of the toString() method.
 float[][] valueToGrid(float[][] value)
          transform an array of values in (Latitude, Longitude) to an array of non-integer grid coordinates
 void valueToInterp(float[][] value, int[][] indices, float[][] weights)
          for each of an array of values in (Latitude, Longitude), compute an array of 1-D indices and an array of weights, to be used for interpolation; indices[i] and weights[i] are null if i-th value is outside grid (i.e., if no interpolation is possible).
 
Methods inherited from class visad.Linear2DSet
getLinear1DComponent, getSamples, getX, getY, hashCode, indexToValue, isMissing
 
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
 
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
 

Constructor Detail

LinearLatLonSet

public LinearLatLonSet(MathType type,
                       Linear1DSet[] sets)
                throws VisADException
Construct a 2-D cross product of arithmetic progressions whose east and west edges may be joined (for interpolation purposes), with null errors, CoordinateSystem and Units are defaults from type.

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

LinearLatLonSet

public LinearLatLonSet(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 whose east and west edges may be joined (for interpolation purposes), with null errors, CoordinateSystem and Units are defaults from type

Parameters:
type - MathType for this LinearLatLonSet.
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 - illegal sets or other VisAD error.

LinearLatLonSet

public LinearLatLonSet(MathType type,
                       Linear1DSet[] sets,
                       CoordinateSystem coord_sys,
                       Unit[] units,
                       ErrorEstimate[] errors)
                throws VisADException
Construct a 2-D cross product of arithmetic progressions whose east and west edges may be joined (for interpolation purposes), with specified errors, coord_sys and units.

Parameters:
type - MathType for this LinearLatLonSet. Must be consistent with MathType-s of sets.
sets - Linear1DSets that make up this LinearLatLonSet.
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.

LinearLatLonSet

public LinearLatLonSet(MathType type,
                       Linear1DSet[] sets,
                       CoordinateSystem coord_sys,
                       Unit[] units,
                       ErrorEstimate[] errors,
                       boolean cache)
                throws VisADException
Construct a 2-D cross product of arithmetic progressions whose east and west edges may be joined (for interpolation purposes), with specified errors, coord_sys and units.

Parameters:
type - MathType for this LinearLatLonSet. Must be consistent with MathType-s of sets.
sets - Linear1DSets that make up this LinearLatLonSet.
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.

LinearLatLonSet

public LinearLatLonSet(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 whose east and west edges may be joined (for interpolation purposes), with specified errors, coord_sys and units.

Parameters:
type - MathType for this LinearLatLonSet.
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 - illegal sets or other VisAD error.

LinearLatLonSet

public LinearLatLonSet(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 whose east and west edges may be joined (for interpolation purposes), with specified errors, coord_sys and units.

Parameters:
type - MathType for this LinearLatLonSet.
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 - illegal sets or other VisAD error.
Method Detail

checkWrap

void checkWrap()
         throws VisADException
Throws:
VisADException

gridToValue

public float[][] gridToValue(float[][] grid)
                      throws VisADException
transform an array of non-integer grid coordinates to an array of values in (Latitude, Longitude)

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

valueToGrid

public float[][] valueToGrid(float[][] value)
                      throws VisADException
transform an array of values in (Latitude, Longitude) to an array of non-integer grid coordinates

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

valueToInterp

public void valueToInterp(float[][] value,
                          int[][] indices,
                          float[][] weights)
                   throws VisADException
for each of an array of values in (Latitude, Longitude), compute an array of 1-D indices and an array of weights, to be used for interpolation; indices[i] and weights[i] are null if i-th value is outside grid (i.e., if no interpolation is possible). this code is the result of substituting 2 for ManifoldDimension in GriddedSet.valueToInterp, and adding logic to handle LongitudeWrap

Specified by:
valueToInterp in interface SimpleSetIface
Overrides:
valueToInterp in class GriddedSet
Throws:
VisADException

equals

public boolean equals(Object set)
Description copied from class: Linear2DSet
Check to see if this Linear2DSet is equal to the Object in question.

Specified by:
equals in interface SetIface
Overrides:
equals in class Linear2DSet
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.

cloneButType

public Object cloneButType(MathType type)
                    throws VisADException
Description copied from class: Linear2DSet
Return a clone of this object with a new MathType.

Specified by:
cloneButType in interface SetIface
Overrides:
cloneButType in class Linear2DSet
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
Description copied from class: Linear2DSet
Extended version of the toString() method.

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