public class VariableDS extends Variable implements VariableEnhanced, EnhanceScaleMissingUnsigned
NetcdfDataset| Modifier and Type | Class and Description |
|---|---|
static class |
VariableDS.Builder<T extends VariableDS.Builder<T>> |
defaultCoordsSizeToCache, defaultSizeToCache, permitCaching| Modifier and Type | Method and Description |
|---|---|
Array |
applyScaleOffset(Array data)
Apply scale and offset to each element of
in and return the result as a new Array, but only if
EnhanceScaleMissingUnsigned.hasScaleOffset(). |
double |
applyScaleOffset(Number value)
Apply scale and offset to the specified value if
EnhanceScaleMissingUnsigned.hasScaleOffset(). |
static VariableDS.Builder<?> |
builder()
Get Builder for this class that allows subclassing.
|
Array |
convert(Array in,
boolean convertUnsigned,
boolean applyScaleOffset,
boolean convertMissing)
Perform the specified conversions on each element of
in and return the result as a new Array. |
Array |
convertMissing(Array in)
|
Number |
convertMissing(Number value)
|
Array |
convertUnsigned(Array in)
Performs an
unsigned conversion of each element of in and returns the
result as a new Array. |
Number |
convertUnsigned(Number value)
Convert
value to the next largest integral data type by an unsigned conversion. |
com.google.common.collect.ImmutableList<CoordinateSystem> |
getCoordinateSystems()
Get the list of Coordinate Systems for this Variable.
|
String |
getDatasetLocation()
The location of the dataset this belongs to.
|
String |
getDescription()
Get the description of the Variable.
|
Set<NetcdfDataset.Enhance> |
getEnhanceMode()
Returns the enhancements applied to this variable.
|
double |
getFillValue()
return value of _FillValue attribute
|
Array |
getMissingDataArray(int[] shape)
Return Array with missing data
|
double[] |
getMissingValues()
return values of missing_value attributes
|
NetcdfFile |
getNetcdfFile()
Get the NetcdfFile that this variable is contained in.
|
double |
getOffset()
The number to be added to the data after it is read.
|
DataType |
getOriginalDataType()
When this wraps another Variable, get the original Variable's DataType.
|
String |
getOriginalName()
When this wraps another Variable, get the original Variable's name.
|
Variable |
getOriginalVariable()
A VariableDS usually wraps another Variable.
|
DataType |
getScaledOffsetType()
Return the data type for values that have undergone scale/offset conversion.
|
double |
getScaleFactor()
The data are to be multiplied by this value after the data are read.
|
DataType.Signedness |
getSignedness()
Returns the signedness of the decorated variable.
|
String |
getUnitsString()
Get the Unit String for the Variable.
|
DataType |
getUnsignedConversionType()
Return the data type for values that have undergone unsigned conversion.
|
double |
getValidMax()
return the maximum value in the valid range
|
double |
getValidMin()
return the minimum value in the valid range
|
boolean |
hasFillValue()
true if Variable has _FillValue attribute
|
boolean |
hasMissing()
true if Variable has missing data values
|
boolean |
hasMissingValue()
true if Variable has missing_value attribute
|
boolean |
hasScaleOffset()
true if Variable data will be converted using scale and offset
|
boolean |
hasValidData()
true if Variable has valid_range, valid_min or valid_max attributes
|
boolean |
isFillValue(double val)
return true if val equals the _FillValue
|
boolean |
isInvalidData(double val)
return true if val is outside the valid range
|
boolean |
isMissing(double val)
Returns
true if the argument is a missing value. |
boolean |
isMissingValue(double val)
return true if val equals a missing_value (low-level)
|
String |
lookupEnumString(int val)
Lookup the enum string for this value.
|
long |
readToStream(Section section,
OutputStream out)
Read variable data to a stream.
|
Array |
reallyRead(Variable client,
CancelTask cancelTask)
public by accident, do not call directly.
|
Array |
reallyRead(Variable client,
Section section,
CancelTask cancelTask)
public by accident, do not call directly.
|
void |
showScaleMissingProxy(Formatter f)
public for debugging
|
VariableDS.Builder<?> |
toBuilder()
Turn into a mutable Builder.
|
String |
toStringDebug()
String representation of Variable and its attributes.
|
attributes, compareTo, createNewCache, equals, findAttribute, findAttributeString, findDimensionIndex, getDataType, getDimension, getDimensions, getDimensionsString, getElementSize, getEnumTypedef, getFileTypeId, getFullName, getNameAndDimensions, getNameAndDimensions, getNameAndDimensions, getParentGroup, getParentStructure, getRanges, getRank, getShape, getShape, getShapeAsSection, getSize, getSizeToCache, getSPobject, hasCachedData, hashCode, isCaching, isCoordinateVariable, isMemberOfStructure, isMetadata, isScalar, isUnlimited, isVariableLength, read, read, read, read, read, readScalarByte, readScalarDouble, readScalarFloat, readScalarInt, readScalarLong, readScalarShort, readScalarString, reduce, section, section, slice, toStringgetFullName, getShortNameaddCoordinateSystem, removeCoordinateSystemgetShortNamefilter, findAttributeDouble, findAttributeIgnoreCase, findAttributeInteger, getName, hasAttribute, hasAttributeIgnoreCase, isEmpty, iteratorforEach, spliteratorpublic Array applyScaleOffset(Array data)
EnhanceScaleMissingUnsignedin and return the result as a new Array, but only if
EnhanceScaleMissingUnsigned.hasScaleOffset(). Otherwise, just return value. Otherwise, just return data.applyScaleOffset in interface EnhanceScaleMissingUnsigneddata - convert thispublic double applyScaleOffset(Number value)
EnhanceScaleMissingUnsignedEnhanceScaleMissingUnsigned.hasScaleOffset(). Otherwise, just return value.applyScaleOffset in interface EnhanceScaleMissingUnsignedpublic static VariableDS.Builder<?> builder()
public Array convert(Array in, boolean convertUnsigned, boolean applyScaleOffset, boolean convertMissing)
EnhanceScaleMissingUnsignedin and return the result as a new Array.
Note that this method is more efficient than calling EnhanceScaleMissingUnsigned.convertUnsigned(Array), followed by
EnhanceScaleMissingUnsigned.applyScaleOffset(Array), followed by EnhanceScaleMissingUnsigned.convertMissing(Array), as only one copy of in is
made.convert in interface EnhanceScaleMissingUnsignedin - a numeric array.convertUnsigned - true if we should convert unsigned.applyScaleOffset - true if we should apply scale/offset.convertMissing - true if we should convert missing.public Array convertMissing(Array in)
EnhanceScaleMissingUnsignedconvertMissing in interface EnhanceScaleMissingUnsignedin - an array containing floating-point numbers to convert.in.public Number convertMissing(Number value)
EnhanceScaleMissingUnsignedconvertMissing in interface EnhanceScaleMissingUnsignedpublic Array convertUnsigned(Array in)
EnhanceScaleMissingUnsignedunsigned conversion of each element of in and returns the
result as a new Array. The data type of the returned array will be EnhanceScaleMissingUnsigned.getUnsignedConversionType().convertUnsigned in interface EnhanceScaleMissingUnsignedin - an Array containing integral Numbers to convert.in.public Number convertUnsigned(Number value)
EnhanceScaleMissingUnsignedvalue to the next largest integral data type by an unsigned conversion. The conversion only happens if the decorated variable is unsigned
and value is a negative integer. Otherwise, simply return value.convertUnsigned in interface EnhanceScaleMissingUnsignedvalue - an integral number to convert.value.public com.google.common.collect.ImmutableList<CoordinateSystem> getCoordinateSystems()
EnhancementsgetCoordinateSystems in interface ucar.nc2.dataset.Enhancementspublic String getDatasetLocation()
VariablegetDatasetLocation in class Variablepublic String getDescription()
VariablegetDescription in interface ucar.nc2.dataset.EnhancementsgetDescription in interface VariableSimpleIFgetDescription in class Variablepublic Set<NetcdfDataset.Enhance> getEnhanceMode()
public double getFillValue()
EnhanceScaleMissingUnsignedgetFillValue in interface EnhanceScaleMissingUnsignedpublic Array getMissingDataArray(int[] shape)
shape - of this shapepublic double[] getMissingValues()
EnhanceScaleMissingUnsignedgetMissingValues in interface EnhanceScaleMissingUnsignedpublic NetcdfFile getNetcdfFile()
VariablegetNetcdfFile in class Variablepublic double getOffset()
EnhanceScaleMissingUnsignedCDM.SCALE_FACTOR and
CDM.ADD_OFFSET attributes are present, the data are first scaled before the offset is
added. By default it is 0.0, i.e. no offset. It will remain that value if the variable defines no
CDM.SCALE_FACTOR attribute.getOffset in interface EnhanceScaleMissingUnsignedpublic DataType getOriginalDataType()
public String getOriginalName()
getOriginalName in interface VariableEnhancedpublic Variable getOriginalVariable()
getOriginalVariable in interface VariableEnhanced@Nullable public DataType getScaledOffsetType()
EnhanceScaleMissingUnsignednull if the
decorated variable lacks scale_factor or add_offset attributes. You can check with
EnhanceScaleMissingUnsigned.hasScaleOffset().getScaledOffsetType in interface EnhanceScaleMissingUnsignedpublic double getScaleFactor()
EnhanceScaleMissingUnsigned1.0, i.e. no
scaling. It will remain that value if the variable defines no CDM.SCALE_FACTOR
attribute.getScaleFactor in interface EnhanceScaleMissingUnsignedpublic DataType.Signedness getSignedness()
EnhanceScaleMissingUnsignedgetSignedness in interface EnhanceScaleMissingUnsignedpublic String getUnitsString()
VariablegetUnitsString in interface ucar.nc2.dataset.EnhancementsgetUnitsString in interface VariableSimpleIFgetUnitsString in class Variablepublic DataType getUnsignedConversionType()
EnhanceScaleMissingUnsignednull, even
when no unsigned conversion is necessary (because the underlying variable isn't unsigned). In such cases, this
data type will be the same as that of the underlying variable.getUnsignedConversionType in interface EnhanceScaleMissingUnsignedpublic double getValidMax()
EnhanceScaleMissingUnsignedgetValidMax in interface EnhanceScaleMissingUnsignedpublic double getValidMin()
EnhanceScaleMissingUnsignedgetValidMin in interface EnhanceScaleMissingUnsignedpublic boolean hasFillValue()
EnhanceScaleMissingUnsignedhasFillValue in interface EnhanceScaleMissingUnsignedpublic boolean hasMissing()
EnhanceScaleMissingUnsignedhasMissing in interface IsMissingEvaluatorhasMissing in interface EnhanceScaleMissingUnsignedpublic boolean hasMissingValue()
EnhanceScaleMissingUnsignedhasMissingValue in interface EnhanceScaleMissingUnsignedpublic boolean hasScaleOffset()
EnhanceScaleMissingUnsignedhasScaleOffset in interface EnhanceScaleMissingUnsignedpublic boolean hasValidData()
EnhanceScaleMissingUnsignedhasValidData in interface EnhanceScaleMissingUnsignedpublic boolean isFillValue(double val)
EnhanceScaleMissingUnsignedisFillValue in interface EnhanceScaleMissingUnsignedpublic boolean isInvalidData(double val)
EnhanceScaleMissingUnsignedisInvalidData in interface EnhanceScaleMissingUnsignedpublic boolean isMissing(double val)
EnhanceScaleMissingUnsignedtrue if the argument is a missing value.
Note that Float.NaN and Double.NaN are considered missing data.isMissing in interface IsMissingEvaluatorisMissing in interface EnhanceScaleMissingUnsignedval - an unpacked value.true if the argument is a missing value.public boolean isMissingValue(double val)
EnhanceScaleMissingUnsignedisMissingValue in interface EnhanceScaleMissingUnsignedpublic String lookupEnumString(int val)
VariablelookupEnumString in class Variableval - the integer value of this enumpublic long readToStream(Section section, OutputStream out) throws IOException, InvalidRangeException
VariablereadToStream in class VariableIOExceptionInvalidRangeExceptionpublic Array reallyRead(Variable client, CancelTask cancelTask) throws IOException
VariablereallyRead in interface ProxyReaderreallyRead in class Variableclient - the client VariablecancelTask - user may cancelIOException - on errorpublic Array reallyRead(Variable client, Section section, CancelTask cancelTask) throws IOException, InvalidRangeException
VariablereallyRead in interface ProxyReaderreallyRead in class Variableclient - the client Variablesection - the section of data to read.cancelTask - user may cancelIOException - on errorInvalidRangeException - if section has incorrect rank or illegal shape.public void showScaleMissingProxy(Formatter f)
f - put info herepublic VariableDS.Builder<?> toBuilder()
Variablepublic String toStringDebug()
VariabletoStringDebug in class Variable