/** * Tests whether the actual instance is an signed data type. * * @return true, if so */ public boolean isSigned() { return !isUnsigned(); }
private static void quantizeRasterData(final ProductData sceneRasterData, final double rawMin, final double rawMax, byte[] samples, int offset, int stride, byte[] resampleLUT, ProgressMonitor pm) { Quantizer.quantizeGeneric(sceneRasterData.getElems(), sceneRasterData.isUnsigned(), rawMin, rawMax, samples, offset, stride, pm); if (resampleLUT != null && resampleLUT.length == 256) { for (int i = 0; i < samples.length; i++) { samples[i] = resampleLUT[samples[i] & 0xff]; } } }
public static void writeFlagCoding(Band band, NFileWriteable ncFile) throws IOException { final FlagCoding flagCoding = band.getFlagCoding(); if (flagCoding != null) { final String[] flagNames = flagCoding.getFlagNames(); ProductData flagValueData = ProductData.createInstance(band.getDataType(), flagNames.length); final StringBuilder meanings = new StringBuilder(); for (int i = 0; i < flagValueData.getNumElems(); i++) { if (meanings.length() > 0) { meanings.append(" "); } String name = flagNames[i]; meanings.append(name); flagValueData.setElemIntAt(i, flagCoding.getFlagMask(name)); } String variableName = ReaderUtils.getVariableName(band); String description = flagCoding.getDescription(); if (description != null) { ncFile.findVariable(variableName).addAttribute("long_name", description); } ncFile.findVariable(variableName).addAttribute(FLAG_MEANINGS, meanings.toString()); final Array maskValues = Array.factory(flagValueData.getElems()); maskValues.setUnsigned(flagValueData.isUnsigned()); ncFile.findVariable(variableName).addAttribute(FLAG_MASKS, maskValues); } }