/** * Get member data of type float. * * @param m get data from this StructureMembers.Member. Must be of type float. * @return scalar float value */ public float getScalarFloat(StructureMembers.Member m) { return sa.getScalarFloat(recno, m); }
/** * Get member data of type float. * * @param m get data from this StructureMembers.Member. Must be of type float. * @return scalar float value */ public float getScalarFloat(StructureMembers.Member m) { return sa.getScalarFloat(recno, m); }
/** * Get member data of type float. * * @param m get data from this StructureMembers.Member. Must be of type float. * @return scalar float value */ public float getScalarFloat(StructureMembers.Member m) { return sa.getScalarFloat(recno, m); }
@Override public float getScalarFloat(int recnum, StructureMembers.Member m) { if (m.getDataType() != DataType.FLOAT) throw new IllegalArgumentException("Type is " + m.getDataType() + ", must be float"); if (m.getDataArray() != null) return super.getScalarFloat(recnum, m); int offset = calcOffsetSetOrder(recnum, m); return bbuffer.getFloat(offset); }
@Override public float getScalarFloat(int recnum, StructureMembers.Member m) { if (m.getDataType() != DataType.FLOAT) throw new IllegalArgumentException("Type is " + m.getDataType() + ", must be float"); if (m.getDataArray() != null) return super.getScalarFloat(recnum, m); int offset = calcOffsetSetOrder(recnum, m); return bbuffer.getFloat(offset); }
@Override public float getScalarFloat(int recnum, StructureMembers.Member m) { if (m.getDataType() != DataType.FLOAT) throw new IllegalArgumentException("Type is " + m.getDataType() + ", must be float"); if (m.getDataArray() != null) return super.getScalarFloat(recnum, m); int offset = calcOffsetSetOrder(recnum, m); return bbuffer.getFloat(offset); }
@Override public float getScalarFloat(int recnum, StructureMembers.Member m) { if (m.getDataArray() != null) return super.getScalarFloat(recnum, m); StructureData sd = getStructureData(recnum); return sd.getScalarFloat( m.getName()); }
@Override public float getScalarFloat(int recnum, StructureMembers.Member m) { if (m.getDataArray() != null) return super.getScalarFloat(recnum, m); StructureData sd = getStructureData(recnum); return sd.getScalarFloat( m.getName()); }
@Override public float getScalarFloat(int recnum, StructureMembers.Member m) { if (m.getDataArray() != null) return super.getScalarFloat(recnum, m); StructureData sd = getStructureData(recnum); return sd.getScalarFloat( m.getName()); }
/** * Get scalar value as a double, with conversion as needed. Underlying type must be convertible to double. * * @param recnum get data from the recnum-th StructureData of the ArrayStructure. Must be less than getSize(); * @param m member Variable. * @return scalar double value * @throws ForbiddenConversionException if not convertible to double. */ public double convertScalarDouble(int recnum, StructureMembers.Member m) { if (m.getDataType() == DataType.DOUBLE) return getScalarDouble(recnum, m); if (m.getDataType() == DataType.FLOAT) return (double) getScalarFloat(recnum, m); Object o = getScalarObject(recnum, m); if (o instanceof Number) return ((Number) o).doubleValue(); throw new ForbiddenConversionException("Type is " + m.getDataType() + ", not convertible to double"); }
/** * Get scalar value as a double, with conversion as needed. Underlying type must be convertible to double. * * @param recnum get data from the recnum-th StructureData of the ArrayStructure. Must be less than getSize(); * @param m member Variable. * @return scalar double value * @throws ForbiddenConversionException if not convertible to double. */ public double convertScalarDouble(int recnum, StructureMembers.Member m) { if (m.getDataType() == DataType.DOUBLE) return getScalarDouble(recnum, m); if (m.getDataType() == DataType.FLOAT) return (double) getScalarFloat(recnum, m); Object o = getScalarObject(recnum, m); if (o instanceof Number) return ((Number) o).doubleValue(); throw new ForbiddenConversionException("Type is " + m.getDataType() + ", not convertible to double"); }
/** * Get scalar value as a float, with conversion as needed. Underlying type must be convertible to float. * * @param recnum get data from the recnum-th StructureData of the ArrayStructure. Must be less than getSize(); * @param m member Variable. * @return scalar float value * @throws ForbiddenConversionException if not convertible to float. */ public float convertScalarFloat(int recnum, StructureMembers.Member m) { if (m.getDataType() == DataType.FLOAT) return getScalarFloat(recnum, m); if (m.getDataType() == DataType.DOUBLE) return (float) getScalarDouble(recnum, m); Object o = getScalarObject(recnum, m); if (o instanceof Number) return ((Number) o).floatValue(); throw new ForbiddenConversionException("Type is " + m.getDataType() + ", not convertible to float"); }
/** * Get scalar value as a double, with conversion as needed. Underlying type must be convertible to double. * * @param recnum get data from the recnum-th StructureData of the ArrayStructure. Must be less than getSize(); * @param m member Variable. * @return scalar double value * @throws ForbiddenConversionException if not convertible to double. */ public double convertScalarDouble(int recnum, StructureMembers.Member m) { if (m.getDataType() == DataType.DOUBLE) return getScalarDouble(recnum, m); if (m.getDataType() == DataType.FLOAT) return (double) getScalarFloat(recnum, m); Object o = getScalarObject(recnum, m); if (o instanceof Number) return ((Number) o).doubleValue(); throw new ForbiddenConversionException("Type is " + m.getDataType() + ", not convertible to double"); }
/** * Get scalar value as a float, with conversion as needed. Underlying type must be convertible to float. * * @param recnum get data from the recnum-th StructureData of the ArrayStructure. Must be less than getSize(); * @param m member Variable. * @return scalar float value * @throws ForbiddenConversionException if not convertible to float. */ public float convertScalarFloat(int recnum, StructureMembers.Member m) { if (m.getDataType() == DataType.FLOAT) return getScalarFloat(recnum, m); if (m.getDataType() == DataType.DOUBLE) return (float) getScalarDouble(recnum, m); Object o = getScalarObject(recnum, m); if (o instanceof Number) return ((Number) o).floatValue(); throw new ForbiddenConversionException("Type is " + m.getDataType() + ", not convertible to float"); }
/** * Get scalar value as a float, with conversion as needed. Underlying type must be convertible to float. * * @param recnum get data from the recnum-th StructureData of the ArrayStructure. Must be less than getSize(); * @param m member Variable. * @return scalar float value * @throws ForbiddenConversionException if not convertible to float. */ public float convertScalarFloat(int recnum, StructureMembers.Member m) { if (m.getDataType() == DataType.FLOAT) return getScalarFloat(recnum, m); if (m.getDataType() == DataType.DOUBLE) return (float) getScalarDouble(recnum, m); Object o = getScalarObject(recnum, m); if (o instanceof Number) return ((Number) o).floatValue(); throw new ForbiddenConversionException("Type is " + m.getDataType() + ", not convertible to float"); }
bb.putFloat(as.getScalarFloat(recno, m));
return getScalarFloat(recno, m);
return getScalarFloat(recno, m);
return getScalarFloat(recno, m);
@Ignore("cant deal with BUFR at the moment") @Test public void testNestedTableEnhanced() throws IOException, InvalidRangeException { String filename = TestDir.cdmLocalTestDataDir + "dataset/nestedTable.bufr"; try (NetcdfFile ncfile = ucar.nc2.dataset.NetcdfDataset.openDataset(filename)) { logger.debug("Open {}", ncfile.getLocation()); SequenceDS outer = (SequenceDS) ncfile.findVariable(BufrIosp2.obsRecord); assert outer != null; try (StructureDataIterator iter = outer.getStructureIterator()) { StructureData data = null; if (iter.hasNext()) data = iter.next(); assert data != null; assert Double.isNaN(data.getScalarFloat("Latitude_coarse_accuracy")); ArrayStructure as = data.getArrayStructure("Geopotential"); assert as != null; Assert2.assertNearlyEquals(as.getScalarFloat(0, as.findMember("Wind_speed")), 6.1); } } } }