/** * Guesses the size of the sample able to contain the range fully * * @param range */ static int guessSizeFromRange(NumberRange range) { double min = range.getMinimum(); double max = range.getMaximum(); double diff = max - min; if (diff <= ((int) Byte.MAX_VALUE - (int) Byte.MIN_VALUE)) { return 8; } else if (diff <= ((int) Short.MAX_VALUE - (int) Short.MIN_VALUE)) { return 16; } else if (diff <= ((double) Integer.MAX_VALUE - (double) Integer.MIN_VALUE)) { return 32; } else if (diff <= ((double) Float.MAX_VALUE - (double) Float.MIN_VALUE)) { return 32; } else { return 64; } }
private StringBuilder formatRange(StringBuilder builder, final Locale locale) { final NumberRange range = getRange(); builder.append('['); if (range != null) { builder.append(range.getMinimum()).append(" ... ").append(range.getMaximum()); } else { final Unit<?> unit = getUnits(); if (unit != null) { builder.append(unit); } } builder.append(']'); return builder; }
@Override public double getMaximumValue() { NumberRange<? extends Number> range = getRange(); // Check if the range exists, otherwise use the sample dimension values if (range != null) { return range.getMaximum(); } else { return sampleDim.getMaximumValue(); } }
&& cat.getName().toString(Locale.ENGLISH).equalsIgnoreCase("no data")) { double min = cat.getRange().getMinimum(); double max = cat.getRange().getMaximum();
public void testMixed() throws ParseException { final ElevationKvpParser parser = new ElevationKvpParser("ELEVATION"); List elements = new ArrayList((Collection) parser.parse("5,3,4,1,2,8.9,1/9")); assertTrue(elements.get(0) instanceof NumberRange); assertEquals(1.0, ((NumberRange<Double>) elements.get(0)).getMinimum()); assertEquals(9.0, ((NumberRange<Double>) elements.get(0)).getMaximum()); }
@Test public void testMixedElevationExtraction() throws IOException { MockDimensionReader reader = new MockDimensionReader(); reader.metadata.put(GridCoverage2DReader.HAS_ELEVATION_DOMAIN, "true"); reader.metadata.put(GridCoverage2DReader.ELEVATION_DOMAIN, "0/0/0,10,15/20/1"); ReaderDimensionsAccessor accessor = new ReaderDimensionsAccessor(reader); TreeSet<Object> domain = accessor.getElevationDomain(); assertEquals(3, domain.size()); Iterator<Object> it = domain.iterator(); Number firstEntry = (Number) it.next(); assertEquals(0, firstEntry.doubleValue(), 0d); Number secondEntry = (Number) it.next(); assertEquals(10, secondEntry.doubleValue(), 0d); NumberRange thirdEntry = (NumberRange) it.next(); assertEquals(15, thirdEntry.getMinimum(), 0d); assertEquals(20, thirdEntry.getMaximum(), 0d); }
nodataConfigured ? configuredNoDataValues[0] : category.getRange().getMaximum(); if (Double.isNaN(minimum) && Double.isNaN(maximum)) { && !Double.isInfinite(configuredRange.getMaximum())) { Class targetType = categories != null && !categories.isEmpty()
if ((cat != null) && cat.getName().toString().equalsIgnoreCase("no data")) { double min = cat.getRange().getMinimum(); double max = cat.getRange().getMaximum(); writer.write("<value>" + min + "</value>\n"); if (min != max) writer.write("<value>" + max + "</value>\n");
assertEquals(category.getRange().getMaximum(), Double.NaN, DELTA); assertEquals(category.getRange().getMaximum(), noData1, DELTA);
assertEquals(category.getRange().getMaximum(), noData1, DELTA);
@Test public void testMultiBandCoverage() throws Exception { Catalog cat = getCatalog(); CatalogBuilder cb = new CatalogBuilder(cat); cb.setStore(cat.getCoverageStoreByName(MockData.TASMANIA_BM.getLocalPart())); CoverageInfo ci = cb.buildCoverage(); // perform basic checks assertEquals(CRS.decode("EPSG:4326", true), ci.getCRS()); assertEquals("EPSG:4326", ci.getSRS()); assertNotNull(ci.getNativeCRS()); assertNotNull(ci.getNativeBoundingBox()); assertNotNull(ci.getLatLonBoundingBox()); // check the coverage dimensions List<CoverageDimensionInfo> dimensions = ci.getDimensions(); assertEquals(3, dimensions.size()); CoverageDimensionInfo dimension = dimensions.get(0); assertEquals("RED_BAND", dimension.getName()); assertEquals(0, dimension.getNullValues().size()); assertEquals(Double.NEGATIVE_INFINITY, dimension.getRange().getMinimum(), 0d); assertEquals(Double.POSITIVE_INFINITY, dimension.getRange().getMaximum(), 0d); assertEquals("W.m-2.Sr-1", dimension.getUnit()); }
/** Returns the expected range of values for the resulting image. */ protected NumberRange deriveRange(final NumberRange[] ranges, final Parameters parameters) { final NumberRange range = ranges[0]; final double min = Math.log(range.getMinimum()); final double max = Math.log(range.getMaximum()); return NumberRange.create(min, max); }
assertEquals(newMaximum, wrappedRange.getMaximum(), DELTA);
/** Returns the expected range of values for the resulting image. */ protected NumberRange deriveRange(final NumberRange[] ranges, final Parameters parameters) { final NumberRange range = ranges[0]; final double min = Math.exp(range.getMinimum()); final double max = Math.exp(range.getMaximum()); return NumberRange.create(min, max); }
assertEquals(newMaximum, wrappedRange.getMaximum(), DELTA);
/** Returns the expected range of values for the resulting image. */ protected NumberRange deriveRange(final NumberRange[] ranges, final Parameters parameters) { final NumberRange range = ranges[0]; final double min = Math.abs(range.getMinimum()); final double max = Math.abs(range.getMaximum()); return (max < min) ? NumberRange.create(max, min) : NumberRange.create(min, max); }
/** Returns the expected range of values for the resulting image. */ protected NumberRange deriveRange(final NumberRange[] ranges, final Parameters parameters) { final NumberRange range = ranges[0]; final double min = -range.getMaximum(); final double max = -range.getMinimum(); return NumberRange.create(min, max); }
/** Returns the expected range of values for the resulting image. */ protected NumberRange deriveRange(final NumberRange[] ranges, final Parameters parameters) { final double[] constants = (double[]) parameters.parameters.getObjectParameter("constants"); if (constants.length == 1) { final double c = constants[0]; final NumberRange range = ranges[0]; final double min = c - range.getMaximum(); final double max = c - range.getMinimum(); return NumberRange.create(min, max); } return super.deriveRange(ranges, parameters); }
/** Returns the expected range of values for the resulting image. */ protected NumberRange deriveRange(final NumberRange[] ranges, final Parameters parameters) { final double[] constants = (double[]) parameters.parameters.getObjectParameter("constants"); if (constants.length == 1) { final double c = constants[0]; final NumberRange range = ranges[0]; final double min = range.getMinimum() + c; final double max = range.getMaximum() + c; return NumberRange.create(min, max); } return super.deriveRange(ranges, parameters); }
/** Returns the expected range of values for the resulting image. */ protected NumberRange deriveRange(final NumberRange[] ranges, final Parameters parameters) { final double[] constants = (double[]) parameters.parameters.getObjectParameter("constants"); if (constants.length == 1) { final double c = constants[0]; final NumberRange range = ranges[0]; final double min = range.getMinimum() / c; final double max = range.getMaximum() / c; return (max < min) ? NumberRange.create(max, min) : NumberRange.create(min, max); } return super.deriveRange(ranges, parameters); }