Package org.esa.snap.core.datamodel
Class ProductData.UInt
java.lang.Object
org.esa.snap.core.datamodel.ProductData
org.esa.snap.core.datamodel.ProductData.Int
org.esa.snap.core.datamodel.ProductData.UInt
- All Implemented Interfaces:
Cloneable
- Direct Known Subclasses:
ProductData.UTC
- Enclosing class:
ProductData
The
UInt class is a ProductData specialisation for unsigned 32-bit integer fields.
Internally, data is stored in an array of the type int[].
In order to preserve the accuracy for the unsigned int value range the
getElemUIntAt method should be used to retrieve the data stored in this value instead of accessing
the data array directly.
Another method is to mask each of the array elements in order to get the unsigned type in the following way:
int[] data = (int[]) value.getRaster();
for (int i = 0; i %lt; data.length; i++) {
long value = data[i] & 0xffffffffL;
...
}
-
Nested Class Summary
Nested classes/interfaces inherited from class org.esa.snap.core.datamodel.ProductData
ProductData.ASCII, ProductData.Byte, ProductData.Double, ProductData.Float, ProductData.Int, ProductData.Long, ProductData.Short, ProductData.UByte, ProductData.UInt, ProductData.UShort, ProductData.UTC -
Field Summary
Fields inherited from class org.esa.snap.core.datamodel.ProductData.Int
_arrayFields inherited from class org.esa.snap.core.datamodel.ProductData
TYPE_ASCII, TYPE_FLOAT32, TYPE_FLOAT64, TYPE_INT16, TYPE_INT32, TYPE_INT64, TYPE_INT8, TYPE_UINT16, TYPE_UINT32, TYPE_UINT64, TYPE_UINT8, TYPE_UNDEFINED, TYPE_UTC, TYPESTRING_ASCII, TYPESTRING_FLOAT32, TYPESTRING_FLOAT64, TYPESTRING_INT16, TYPESTRING_INT32, TYPESTRING_INT64, TYPESTRING_INT8, TYPESTRING_UINT16, TYPESTRING_UINT32, TYPESTRING_UINT64, TYPESTRING_UINT8, TYPESTRING_UTC -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected ProductDataRetuns a "deep" copy of this product data.doublegetElemDoubleAt(int index) Please refer toProductData.getElemDoubleAt(int).floatgetElemFloatAt(int index) Please refer toProductData.getElemFloatAt(int).intgetElemIntAt(int index) Please refer toProductData.getElemIntAt(int).getElemStringAt(int index) Please refer toProductData.getElemStringAt(int).longgetElemUIntAt(int index) Please refer toProductData.getElemUIntAt(int).voidSets the data of this value.Methods inherited from class org.esa.snap.core.datamodel.ProductData.Int
dispose, getArray, getElemLongAt, getElems, getNumElems, readFrom, setElemDoubleAt, setElemFloatAt, setElemIntAt, setElemLongAt, setElemUIntAt, writeToMethods inherited from class org.esa.snap.core.datamodel.ProductData
createInstance, createInstance, createInstance, createInstance, createInstance, createInstance, createInstance, createInstance, createInstance, createInstance, createUnsignedInstance, createUnsignedInstance, createUnsignedInstance, equalElems, equals, getElemBoolean, getElemBooleanAt, getElemDouble, getElemFloat, getElemInt, getElemLong, getElemSize, getElemSize, getElemString, getElemUInt, getType, getType, getTypeString, getTypeString, hashCode, isFloatingPointType, isInt, isIntType, isScalar, isSigned, isUIntType, isUnsigned, readFrom, readFrom, readFrom, setElemBoolean, setElemBooleanAt, setElemDouble, setElemFloat, setElemInt, setElemLong, setElemString, setElemStringAt, setElemUInt, toString, writeTo, writeTo, writeTo
-
Constructor Details
-
UInt
public UInt(int numElems) Constructs a new unsignedintvalue.- Parameters:
numElems- the number of elements, must not be less than one
-
UInt
public UInt(int[] array) Constructs a new unsignedintvalue.- Parameters:
array- the elements
-
UInt
protected UInt(long[] elems) Constructs a new unsignedintvalue.- Parameters:
elems- the elements
-
-
Method Details
-
createDeepClone
Retuns a "deep" copy of this product data.- Overrides:
createDeepClonein classProductData.Int- Returns:
- a copy of this product data
-
getElemIntAt
public int getElemIntAt(int index) Please refer toProductData.getElemIntAt(int).IMPORTANT NOTE: This method returns the data element unchanged as it is sinternally stored (a 32-bit signed integer) and thus can also return negative values. Use
getElemUIntAtwhich returns unsignedlongvalues only.- Overrides:
getElemIntAtin classProductData.Int- Parameters:
index- the value index, must be>=0and<getNumDataElems()
-
getElemUIntAt
public long getElemUIntAt(int index) Please refer toProductData.getElemUIntAt(int).- Overrides:
getElemUIntAtin classProductData.Int- Parameters:
index- the value index, must be>=0and<getNumDataElems()
-
getElemFloatAt
public float getElemFloatAt(int index) Please refer toProductData.getElemFloatAt(int).- Overrides:
getElemFloatAtin classProductData.Int- Parameters:
index- the value index, must be>=0and<getNumDataElems()
-
getElemDoubleAt
public double getElemDoubleAt(int index) Please refer toProductData.getElemDoubleAt(int).- Overrides:
getElemDoubleAtin classProductData.Int- Parameters:
index- the value index, must be>=0and<getNumDataElems()
-
getElemStringAt
Please refer toProductData.getElemStringAt(int).- Overrides:
getElemStringAtin classProductData.Int- Parameters:
index- the value index, must be>=0and<getNumDataElems()
-
setElems
Sets the data of this value. The data must be an array of the typeint[]orString[]and have a length that is equal to the value returned by thegetNumDataElemsmethod.- Overrides:
setElemsin classProductData.Int- Parameters:
data- the data array- Throws:
IllegalArgumentException- if data isnullor it is not an array of the required type or does not have the required array length.
-