public class NetCDFUtils
extends java.lang.Object
Modifier and Type | Field and Description |
---|---|
static java.lang.String |
NETCDF_ATT_ADD_OFFSET |
static java.lang.String |
NETCDF_ATT_AXIS |
static java.lang.String |
NETCDF_ATT_COMMENT |
static java.lang.String |
NETCDF_ATT_FILL_VALUE |
static java.lang.String |
NETCDF_ATT_LONG_NAME |
static java.lang.String |
NETCDF_ATT_MISSING_VALUE |
static java.lang.String |
NETCDF_ATT_SCALE_FACTOR |
static java.lang.String |
NETCDF_ATT_STANDARD_NAME |
static java.lang.String |
NETCDF_ATT_STEP |
static java.lang.String |
NETCDF_ATT_UNIT_LONG |
static java.lang.String |
NETCDF_ATT_UNITS |
static java.lang.String |
NETCDF_ATT_VALID_MAX |
static java.lang.String |
NETCDF_ATT_VALID_MIN |
static java.lang.String |
NETCDF_ATT_VALID_RANGE |
static java.lang.String |
NETCDF_DEGREE_EAST |
static java.lang.String |
NETCDF_DEGREE_NORTH |
static java.lang.String |
NETCDF_DEGREES_EAST |
static java.lang.String |
NETCDF_DEGREES_NORTH |
static java.lang.String |
NETCDF_GRP_GEOPHYSICAL_DATA |
static java.lang.String |
NETCDF_GRP_NAVIGATION_DATA |
Constructor and Description |
---|
NetCDFUtils() |
Modifier and Type | Method and Description |
---|---|
static int[] |
advanceLoopCounter(int[] shape,
int[] counter)
Counts the evolution of a multi-for loop variables counters.
|
static void |
filterForVarsWithDimentionsWith(java.util.Map<java.lang.String,ucar.nc2.Variable> varToConsider,
java.lang.String... varNames) |
static double |
findFillValue(ucar.nc2.Variable var)
Tries to find the fill value for a variable.
|
static Pair<java.lang.Double,java.lang.Double> |
findScaleFactorAnfAddOffset(ucar.nc2.Variable var)
Check and return the
NETCDF_ATT_SCALE_FACTOR and the NETCDF_ATT_ADD_OFFSET . |
static Pair<java.lang.Double,java.lang.Double> |
findValidRange(ucar.nc2.Variable var)
Check and return the
NETCDF_ATT_VALID_RANGE interval, or used the NETCDF_ATT_VALID_MIN
and NETCDF_ATT_VALID_MAX . |
static Pair<java.lang.String,ucar.nc2.Variable> |
findVariableFor(ucar.nc2.NetcdfFile dataFile,
java.lang.String fileNameForErrorString,
boolean failIfNotFound,
java.util.List<java.lang.String> dimStringList,
java.lang.String... varName) |
static Pair<java.lang.String,ucar.nc2.Variable> |
findVariableFor(ucar.nc2.NetcdfFile dataFile,
java.lang.String fileNameForErrorString,
boolean failIfNotFound,
java.lang.String... varName) |
static ucar.nc2.Variable |
findVariableForGroup(ucar.nc2.Group group,
java.util.List<java.lang.String> dimStringList,
java.lang.String... varName) |
static Pair<java.lang.String,ucar.nc2.Variable> |
findVariableForStandardName(ucar.nc2.NetcdfFile dataFile,
java.lang.String fileNameForErrorString,
boolean failIfNotFound,
java.util.List<java.lang.String> dimStringList,
java.lang.String... varName) |
static Pair<java.lang.String,ucar.nc2.Variable> |
findVariableForStandardName(ucar.nc2.NetcdfFile dataFile,
java.lang.String fileNameForErrorString,
boolean failIfNotFound,
java.lang.String... varName) |
static Pair<java.lang.String,ucar.nc2.Variable> |
findVariableForStandardNameOrName(ucar.nc2.NetcdfFile dataFile,
java.lang.String fileNameForErrorString,
boolean failIfNotFound,
java.util.List<java.lang.String> dimStringList,
java.lang.String... varStName) |
static Pair<java.lang.String,ucar.nc2.Variable> |
findVariableForStandardNameOrName(ucar.nc2.NetcdfFile dataFile,
java.lang.String fileNameForErrorString,
boolean failIfNotFound,
java.lang.String... varStName) |
static ucar.nc2.Variable |
findVariableWithAttributeForGroup(ucar.nc2.NetcdfFile dataFile,
ucar.nc2.Group group,
java.util.List<java.lang.String> dimStringList,
java.lang.String attName,
java.lang.String... varName) |
static java.util.Date[] |
getDatesAndDateLimits(java.util.Date dateValue,
java.util.Date fromDate,
java.util.Date toDate)
Takes the dateValue and adjusts the from and to date with this date.
|
static java.util.Map<java.lang.String,java.lang.Integer> |
getIndexesForVar(java.lang.String dimStr,
java.lang.String... name) |
static java.util.Map<java.lang.String,java.lang.Integer> |
getMissingIndexesForVarTryMatchDimSize(java.util.Map<java.lang.String,java.lang.Integer> varCollumsIndexMap,
java.util.List<ucar.nc2.Dimension> dimensionsBase,
java.util.List<ucar.nc2.Dimension> dimensionsVar) |
static java.util.Map<java.lang.String,ucar.nc2.Variable> |
getMultiDimensionalVariables(ucar.nc2.NetcdfFile dataFile)
Returns the variables with dimension at least 2.
|
static double[] |
getTimeMultiplierAndOffset(ucar.nc2.Variable timeVar,
java.lang.String fileNameForErrorString)
Extracts from the time related variable the multiplier and offset to use to calculate the corrected time in
milliseconds.
|
static java.util.Date[] |
getTimeValues(ucar.ma2.Array timeArray,
int[] timeIdx,
double timeMultiplier,
double timeOffset,
java.util.Date fromDate,
java.util.Date toDate,
boolean ignoreDateLimitToLoad,
java.util.Date dateLimit) |
static java.util.Date[] |
getTimeValues(ucar.ma2.Array timeArray,
int timeIdx,
double timeMultiplier,
double timeOffset,
java.util.Date fromDate,
java.util.Date toDate,
boolean ignoreDateLimitToLoad,
java.util.Date dateLimit) |
static java.util.Date[] |
getTimeValuesByGlobalAttributes(ucar.nc2.NetcdfFile dataFile,
java.util.Date fromDate,
java.util.Date toDate,
boolean ignoreDateLimitToLoad,
java.util.Date dateLimit) |
static java.util.Map<java.lang.String,ucar.nc2.Variable> |
getVariables(ucar.nc2.NetcdfFile dataFile,
int minDimension) |
static boolean |
isValueValid(double value,
double fillValue,
Pair<java.lang.Double,java.lang.Double> validRange)
Checks if a value is valid.
|
static void |
main(java.lang.String[] args) |
public static final java.lang.String NETCDF_ATT_STANDARD_NAME
public static final java.lang.String NETCDF_ATT_LONG_NAME
public static final java.lang.String NETCDF_ATT_FILL_VALUE
public static final java.lang.String NETCDF_ATT_MISSING_VALUE
public static final java.lang.String NETCDF_ATT_VALID_RANGE
public static final java.lang.String NETCDF_ATT_VALID_MIN
public static final java.lang.String NETCDF_ATT_VALID_MAX
public static final java.lang.String NETCDF_ATT_UNITS
public static final java.lang.String NETCDF_ATT_UNIT_LONG
public static final java.lang.String NETCDF_ATT_SCALE_FACTOR
public static final java.lang.String NETCDF_ATT_ADD_OFFSET
public static final java.lang.String NETCDF_ATT_COMMENT
public static final java.lang.String NETCDF_ATT_AXIS
public static final java.lang.String NETCDF_ATT_STEP
public static final java.lang.String NETCDF_GRP_NAVIGATION_DATA
public static final java.lang.String NETCDF_GRP_GEOPHYSICAL_DATA
public static final java.lang.String NETCDF_DEGREES_NORTH
public static final java.lang.String NETCDF_DEGREE_NORTH
public static final java.lang.String NETCDF_DEGREES_EAST
public static final java.lang.String NETCDF_DEGREE_EAST
public static int[] advanceLoopCounter(int[] shape, int[] counter)
shape
- The max values of the each loop countercounter
- The state of the counters.public static java.util.Date[] getTimeValues(ucar.ma2.Array timeArray, int timeIdx, double timeMultiplier, double timeOffset, java.util.Date fromDate, java.util.Date toDate, boolean ignoreDateLimitToLoad, java.util.Date dateLimit)
timeArray
- timeIdx
- timeMultiplier
- timeOffset
- fromDate
- toDate
- ignoreDateLimitToLoad
- dateLimit
- public static java.util.Date[] getTimeValues(ucar.ma2.Array timeArray, int[] timeIdx, double timeMultiplier, double timeOffset, java.util.Date fromDate, java.util.Date toDate, boolean ignoreDateLimitToLoad, java.util.Date dateLimit)
timeArray
- timeIdx
- timeMultiplier
- timeOffset
- fromDate
- toDate
- ignoreDateLimitToLoad
- dateLimit
- public static java.util.Date[] getTimeValuesByGlobalAttributes(ucar.nc2.NetcdfFile dataFile, java.util.Date fromDate, java.util.Date toDate, boolean ignoreDateLimitToLoad, java.util.Date dateLimit)
dataFile
- public static java.util.Date[] getDatesAndDateLimits(java.util.Date dateValue, java.util.Date fromDate, java.util.Date toDate)
dateValue
- fromDate
- toDate
- public static double findFillValue(ucar.nc2.Variable var) throws java.lang.NumberFormatException
var
- NETCDF_ATT_FILL_VALUE
or NETCDF_ATT_MISSING_VALUE
in this orderjava.lang.NumberFormatException
public static boolean isValueValid(double value, double fillValue, Pair<java.lang.Double,java.lang.Double> validRange)
value
- fillValue
- validRange
- public static Pair<java.lang.Double,java.lang.Double> findValidRange(ucar.nc2.Variable var) throws java.lang.NumberFormatException
NETCDF_ATT_VALID_RANGE
interval, or used the NETCDF_ATT_VALID_MIN
and NETCDF_ATT_VALID_MAX
.var
- java.lang.NumberFormatException
public static Pair<java.lang.Double,java.lang.Double> findScaleFactorAnfAddOffset(ucar.nc2.Variable var)
NETCDF_ATT_SCALE_FACTOR
and the NETCDF_ATT_ADD_OFFSET
.
The final value is: UV = V * SCALE_FACTOR + ADD_OFFSETvar
- public static Pair<java.lang.String,ucar.nc2.Variable> findVariableForStandardNameOrName(ucar.nc2.NetcdfFile dataFile, java.lang.String fileNameForErrorString, boolean failIfNotFound, java.lang.String... varStName)
dataFile
- fileNameForErrorString
- failIfNotFound
- varStName
- public static Pair<java.lang.String,ucar.nc2.Variable> findVariableForStandardNameOrName(ucar.nc2.NetcdfFile dataFile, java.lang.String fileNameForErrorString, boolean failIfNotFound, java.util.List<java.lang.String> dimStringList, java.lang.String... varStName)
dataFile
- fileNameForErrorString
- failIfNotFound
- dimStringList
- A list of dimensions that the dimensions of var must be contain in (null or empty list for don't care).varStName
- public static Pair<java.lang.String,ucar.nc2.Variable> findVariableFor(ucar.nc2.NetcdfFile dataFile, java.lang.String fileNameForErrorString, boolean failIfNotFound, java.lang.String... varName)
dataFile
- fileNameForErrorString
- failIfNotFound
- varName
- public static Pair<java.lang.String,ucar.nc2.Variable> findVariableFor(ucar.nc2.NetcdfFile dataFile, java.lang.String fileNameForErrorString, boolean failIfNotFound, java.util.List<java.lang.String> dimStringList, java.lang.String... varName)
dataFile
- fileNameForErrorString
- failIfNotFound
- dimStringList
- A list of dimensions that the dimensions of var must be contain in (null or empty list for don't care).varName
- public static ucar.nc2.Variable findVariableForGroup(ucar.nc2.Group group, java.util.List<java.lang.String> dimStringList, java.lang.String... varName)
group
- dimStringList
- A list of dimensions that the dimensions of var must be contain in (null or empty list for don't care).varName
- public static Pair<java.lang.String,ucar.nc2.Variable> findVariableForStandardName(ucar.nc2.NetcdfFile dataFile, java.lang.String fileNameForErrorString, boolean failIfNotFound, java.lang.String... varName)
dataFile
- fileNameForErrorString
- failIfNotFound
- varName
- public static Pair<java.lang.String,ucar.nc2.Variable> findVariableForStandardName(ucar.nc2.NetcdfFile dataFile, java.lang.String fileNameForErrorString, boolean failIfNotFound, java.util.List<java.lang.String> dimStringList, java.lang.String... varName)
dataFile
- fileNameForErrorString
- failIfNotFound
- dimStringList
- A list of dimensions that the dimensions of var must be contain in (null or empty list for don't care).varName
- public static ucar.nc2.Variable findVariableWithAttributeForGroup(ucar.nc2.NetcdfFile dataFile, ucar.nc2.Group group, java.util.List<java.lang.String> dimStringList, java.lang.String attName, java.lang.String... varName)
dataFile
- group
- dimStringList
- A list of dimensions that the dimensions of var must be contain in (null or empty list for don't care).attName
- varName
- public static java.util.Map<java.lang.String,ucar.nc2.Variable> getVariables(ucar.nc2.NetcdfFile dataFile, int minDimension)
dataFile
- minDimension
- public static java.util.Map<java.lang.String,ucar.nc2.Variable> getMultiDimensionalVariables(ucar.nc2.NetcdfFile dataFile)
dataFile
- public static java.util.Map<java.lang.String,java.lang.Integer> getIndexesForVar(java.lang.String dimStr, java.lang.String... name)
dimStr
- name
- public static java.util.Map<java.lang.String,java.lang.Integer> getMissingIndexesForVarTryMatchDimSize(java.util.Map<java.lang.String,java.lang.Integer> varCollumsIndexMap, java.util.List<ucar.nc2.Dimension> dimensionsBase, java.util.List<ucar.nc2.Dimension> dimensionsVar)
varCollumsIndexMap
- dimensionsBase
- dimensionsVar
- public static double[] getTimeMultiplierAndOffset(ucar.nc2.Variable timeVar, java.lang.String fileNameForErrorString) throws java.lang.Exception
NetCDFUnitsUtils.getMultiplierAndMillisOffsetFromTimeUnits(String)
.timeVar
- This is the variable corresponding to time.fileNameForErrorString
- Used to fill the data file source in the thrown exception.java.lang.Exception
public static void filterForVarsWithDimentionsWith(java.util.Map<java.lang.String,ucar.nc2.Variable> varToConsider, java.lang.String... varNames)
varToConsider
- varNames
- public static void main(java.lang.String[] args) throws java.lang.Exception
java.lang.Exception
Copyright © 2004-2020 FEUP-LSTS and Neptus developers. All Rights Reserved.