Class Irregular2DSet
- java.lang.Object
-
- visad.ThingImpl
-
- visad.DataImpl
-
- visad.Set
-
- visad.SimpleSet
-
- visad.SampledSet
-
- visad.IrregularSet
-
- visad.Irregular2DSet
-
- All Implemented Interfaces:
- java.io.Serializable, java.lang.Cloneable, Data, SampledSetIface, SetIface, SimpleSetIface, Thing
public class Irregular2DSet extends IrregularSet
IrregularSetfor a finite number of samples of R.NOTE: There is no
Irregular2DSetwith a manifold dimension equal to one. UseGridded2DSetwith a manifold dimension equal to one instead.When you call an
Irregular2DSetconstructor without aDelaunayargument, the constructor uses theDelaunay.factory(float[][], boolean)method to implictly compute a Delaunay triangulation. 3000 points is the current break-point from Watson's algorithm to Clarkson's algorithm. So, currently, at 3001 points you start using Clarkson's algorithm, which rounds coordinates to integers. If your values are small enough that integer rounding will merge some of them to the same value (and hence create colinear or colocated points), there will be trouble. One approach is to scale your coordinates up so integer rounding does not merge values. Another is to ensure that you use Watson's algorithm by usingnew DelaunayWatson(samples)as theDelaunayargument of theIrregular2DSetconstructor.- See Also:
- Serialized Form
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class visad.DataImpl
DataImpl.Syncher
-
-
Field Summary
-
Fields inherited from class visad.IrregularSet
Delan
-
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
Constructors Constructor and Description Irregular2DSet(MathType type, float[][] samples)a 2-D irregular set with null errors, CoordinateSystem and Units are defaults from type; topology is computed by the constructorIrregular2DSet(MathType type, float[][] samples, CoordinateSystem coord_sys, Unit[] units, ErrorEstimate[] errors, Delaunay delan)a 2-D irregular set; samples array is organized float[2][number_of_samples]; no geometric constraint on samples; if delan is non-null it defines the topology of samples (which must have manifold dimension 2), else the constructor computes a topology with manifold dimension 2; note that Gridded2DSet can be used for an irregular set with domain dimension 2 and manifold dimension 1; coordinate_system and units must be compatible with defaults for type, or may be null; errors may be nullIrregular2DSet(MathType type, float[][] samples, CoordinateSystem coord_sys, Unit[] units, ErrorEstimate[] errors, Delaunay delan, boolean copy)Irregular2DSet(MathType type, float[][] samples, int[] new2old, int[] old2new)shortcut constructor for constructing Irregular2DSet using sort from existing Irregular1DSetIrregular2DSet(MathType type, float[][] samples, int[] new2old, int[] old2new, CoordinateSystem coord_sys, Unit[] units, ErrorEstimate[] errors)complete constructor for constructing Irregular2DSet using sort from existing Irregular1DSetIrregular2DSet(MathType type, float[][] samples, int[] new2old, int[] old2new, CoordinateSystem coord_sys, Unit[] units, ErrorEstimate[] errors, boolean copy)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method and Description java.lang.ObjectcloneButType(MathType type)copy this Set, but give it a new MathType; this is safe, since constructor checks consistency of DomainCoordinateSystem and SetUnits with Typefloat[][]indexToValue(int[] index)convert an array of 1-D indices to an array of values in R^DomainDimensionstatic voidmain(java.lang.String[] argv)SetmakeSpatial(SetType type, float[][] samples)int[]valueToIndex(float[][] value)convert an array of values in R^DomainDimension to an array of 1-D indicesvoidvalueToInterp(float[][] value, int[][] indices, float[][] weights)for each of an array of values in R^DomainDimension, 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 no interpolation is possibleint[]valueToTri(float[][] value)valueToTri returns an array of containing triangles given an array of points in R^DomainDimension-
Methods inherited from class visad.IrregularSet
clone, equals, getNeighbors, longString
-
Methods inherited from class visad.SampledSet
computeRanges, computeRanges, cram_missing, finalize, getHi, getLow, getNeighbors, getSamples, getSamples, isMissing, make1DGeometry, make3DGeometry, makePointGeometry, setCacheSizeThreshold, setGeometryArray, setGeometryArray
-
Methods inherited from class visad.SimpleSet
getManifoldDimension
-
Methods inherited from class visad.Set
__getitem__, __len__, addEqualsCache, addNotEqualsCache, copyDoubles, copyFloats, doubleToFloat, doubleToIndex, equalUnitAndCS, floatToDouble, getCoordinateSystem, getDimension, getDoubles, getDoubles, getLength, getNeighbors, getSetErrors, getSetUnits, getWedge, 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, 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
-
Methods inherited from class visad.ThingImpl
addReference, removeReference
-
Methods inherited from class java.lang.Object
getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface visad.SetIface
doubleToIndex, equalUnitAndCS, getCoordinateSystem, getDimension, getDoubles, getDoubles, getLength, getManifoldDimension, getNeighbors, getSetErrors, getSetUnits, getWedge, indexToDouble, make2DGeometry, makeIsoLines, makeIsoSurface, 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, 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
-
Irregular2DSet
public Irregular2DSet(MathType type, float[][] samples) throws VisADException
a 2-D irregular set with null errors, CoordinateSystem and Units are defaults from type; topology is computed by the constructor- Throws:
VisADException
-
Irregular2DSet
public Irregular2DSet(MathType type, float[][] samples, CoordinateSystem coord_sys, Unit[] units, ErrorEstimate[] errors, Delaunay delan) throws VisADException
a 2-D irregular set; samples array is organized float[2][number_of_samples]; no geometric constraint on samples; if delan is non-null it defines the topology of samples (which must have manifold dimension 2), else the constructor computes a topology with manifold dimension 2; note that Gridded2DSet can be used for an irregular set with domain dimension 2 and manifold dimension 1; coordinate_system and units must be compatible with defaults for type, or may be null; errors may be null- Throws:
VisADException
-
Irregular2DSet
public Irregular2DSet(MathType type, float[][] samples, CoordinateSystem coord_sys, Unit[] units, ErrorEstimate[] errors, Delaunay delan, boolean copy) throws VisADException
- Throws:
VisADException
-
Irregular2DSet
public Irregular2DSet(MathType type, float[][] samples, int[] new2old, int[] old2new) throws VisADException
shortcut constructor for constructing Irregular2DSet using sort from existing Irregular1DSet- Throws:
VisADException
-
Irregular2DSet
public Irregular2DSet(MathType type, float[][] samples, int[] new2old, int[] old2new, CoordinateSystem coord_sys, Unit[] units, ErrorEstimate[] errors) throws VisADException
complete constructor for constructing Irregular2DSet using sort from existing Irregular1DSet- Throws:
VisADException
-
Irregular2DSet
public Irregular2DSet(MathType type, float[][] samples, int[] new2old, int[] old2new, CoordinateSystem coord_sys, Unit[] units, ErrorEstimate[] errors, boolean copy) throws VisADException
- Throws:
VisADException
-
-
Method Detail
-
makeSpatial
public Set makeSpatial(SetType type, float[][] samples) throws VisADException
- Specified by:
makeSpatialin interfaceSetIface- Overrides:
makeSpatialin classSet- Throws:
VisADException
-
indexToValue
public float[][] indexToValue(int[] index) throws VisADExceptionconvert an array of 1-D indices to an array of values in R^DomainDimension- Specified by:
indexToValuein interfaceSetIface- Overrides:
indexToValuein classIrregularSet- Parameters:
index- array of integer indices- Returns:
- float[domain_dimension][indices.length] array of Set values
- Throws:
VisADException- a VisAD error occurred
-
valueToTri
public int[] valueToTri(float[][] value) throws VisADExceptionvalueToTri returns an array of containing triangles given an array of points in R^DomainDimension- Throws:
VisADException
-
valueToIndex
public int[] valueToIndex(float[][] value) throws VisADExceptionconvert an array of values in R^DomainDimension to an array of 1-D indices- Specified by:
valueToIndexin interfaceSetIface- Overrides:
valueToIndexin classIrregularSet- Parameters:
value- float[domain_dimension][number_of_values] array of Set values- Returns:
- array of integer indices
- Throws:
VisADException- a VisAD error occurred
-
valueToInterp
public void valueToInterp(float[][] value, int[][] indices, float[][] weights) throws VisADExceptionfor each of an array of values in R^DomainDimension, 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 no interpolation is possible- Specified by:
valueToInterpin interfaceSimpleSetIface- Overrides:
valueToInterpin classIrregularSet- Parameters:
value- An array of points.value[i][j]is the i-th coordinate of the j-th points.indices- Indices of the neighboring samples in the set. If the j-th points lies within the set, then returned element [i][j] is the index of the i-th neighboring sample in the set; otherwise, returned array [j] isnull.weights- Weights for interpolating the neighboring samples in the set. If the j-th points lies within the set, then returned element [i][j] is the weight of the i-th neighboring sample in the set; otherwise, returned array [j] isnull.- Throws:
VisADException- VisAD failure.
-
cloneButType
public java.lang.Object cloneButType(MathType type) throws VisADException
Description copied from class:Setcopy this Set, but give it a new MathType; this is safe, since constructor checks consistency of DomainCoordinateSystem and SetUnits with Type- Specified by:
cloneButTypein interfaceSetIface- Overrides:
cloneButTypein classIrregularSet- Parameters:
type- The MathType for the clone.- Returns:
- A clone of this set with the new MathType.
- Throws:
VisADException- VisAD failure.
-
main
public static void main(java.lang.String[] argv) throws VisADException- Throws:
VisADException
-
-
DMelt 3.0 © DataMelt by jWork.ORG