/** * Converts the given double value to the Java type corresponding to the the given {@link DataType data type}. * * @param value The value to be converted. * @param dataType The NetCDF data type. * * @return The converted value corresponding to the given {@link DataType data type}. * * @throws IllegalArgumentException if {@link DataType dataType} is not one of {@link DataType#BYTE}, * {@link DataType#SHORT}, {@link DataType#INT}, {@link DataType#LONG}, * {@link DataType#FLOAT} or {@link DataType#DOUBLE}. */ public static Number convertTo(double value, DataType dataType) { switch (dataType) { case BYTE: return (byte) value; case SHORT: return (short) value; case INT: return (int) value; case LONG: return (long) value; case FLOAT: return (float) value; case DOUBLE: return value; default: throw new IllegalArgumentException("Can not convert data type:" + dataType.name()); } }
public Map<Band, Variable> addBands(Product product, List<Variable> l3ProdVars) { final Map<Band, Variable> bandToVariableMap = new HashMap<Band, Variable>(); for (Variable l3Var : l3ProdVars) { String varName = l3Var.getShortName(); final String dataTypeStr = l3Var.getDataType().name();// int dataType = ProductData.TYPE_UNDEFINED; if (dataTypeStr.equalsIgnoreCase("float")) { dataType = ProductData.TYPE_FLOAT32; } else if (dataTypeStr.equalsIgnoreCase("int")) { dataType = ProductData.TYPE_INT32; } if (!varName.contains("Indexes") && (!varName.equalsIgnoreCase("n"))) { bandToVariableMap.put(addBand(product, varName, dataType), l3Var); } } return bandToVariableMap; }
/** * Set the data type * * @param dataType set to this value */ public void setDataType(DataType dataType) { if (immutable) throw new IllegalStateException("Cant modify"); if(getShortName().equals("IR") && dataType == DataType.SHORT) { DataType old = getDataType(); } this.dataType = dataType; this.elementSize = getDataType().getSize(); EnumTypedef etd = getEnumTypedef(); if(etd != null) { DataType etdtype = etd.getBaseType(); DataType basetype = null; if(dataType == DataType.ENUM1) basetype = DataType.BYTE; else if(dataType == DataType.ENUM2) basetype = DataType.SHORT; else if(dataType == DataType.ENUM1) basetype = DataType.INT; else basetype = etdtype; if(etdtype != null && basetype != etdtype) log.error("Variable.setDataType: enum basetype mismatch: "+basetype.name()); else etd.setBaseType(basetype); } }