/** * Convert integer coverage typed pixel value to a coverage data value * through scales and offsets * * @param griddedTile * gridded tile * @param pixelValue * pixel value * @return coverage data value */ private Double pixelValueToValue(GriddedTile griddedTile, Double pixelValue) { Double value = pixelValue; if (griddedCoverage != null && griddedCoverage.getDataType() == GriddedCoverageDataType.INTEGER) { if (griddedTile != null) { value *= griddedTile.getScale(); value += griddedTile.getOffset(); } value *= griddedCoverage.getScale(); value += griddedCoverage.getOffset(); } return value; }
/** * Get the data null value * * @return data null value or null */ public Double getDataNull() { Double dataNull = null; if (griddedCoverage != null) { dataNull = griddedCoverage.getDataNull(); } return dataNull; }
/** * Get the min, max, and offset of the source X pixel * * @param source * source x pixel * @return source x pixel information */ protected CoverageDataSourcePixel getXSourceMinAndMax(float source) { int floor = (int) Math.floor(source); float valueLocation = getXEncodedLocation(floor, griddedCoverage.getGridCellEncodingType()); CoverageDataSourcePixel pixel = getSourceMinAndMax(source, floor, valueLocation); return pixel; }
coverageData.setAlgorithm(algorithm); GriddedCoverageEncodingType encoding = coverageData .getGriddedCoverage().getGridCellEncodingType(); coverageData.setEncoding(encoding); .getGriddedCoverage(); TestCase.assertNotNull(griddedCoverage); TestCase.assertTrue(griddedCoverage.getId() >= 0); TestCase.assertNotNull(griddedCoverage.getTileMatrixSet()); TestCase.assertEquals(tileMatrixSet.getTableName(), griddedCoverage.getTileMatrixSetName()); TestCase.assertEquals(GriddedCoverageDataType.FLOAT, griddedCoverage.getDataType()); TestCase.assertEquals(1.0, griddedCoverage.getScale()); TestCase.assertEquals(0.0, griddedCoverage.getOffset()); TestCase.assertTrue(griddedCoverage.getPrecision() >= 0); griddedCoverage.getDataNull(); griddedCoverage.getUom(); if (coverageDataValues != null) { TestCase.assertEquals(encoding, griddedCoverage.getGridCellEncodingType()); TestCase.assertEquals(encoding.getName(), griddedCoverage.getGridCellEncoding()); TestCase.assertEquals("Height", griddedCoverage.getFieldName()); TestCase.assertEquals("Height", griddedCoverage.getQuantityDefinition()); } else { TestCase.assertNotNull(griddedCoverage .getGridCellEncodingType());
GriddedCoverage griddedCoverage = new GriddedCoverage(); griddedCoverage.setTileMatrixSet(tileMatrixSet); griddedCoverage.setDataType(GriddedCoverageDataType.INTEGER); boolean defaultScale = true; if (Math.random() < .5) { griddedCoverage.setScale(100.0 * Math.random()); defaultScale = false; griddedCoverage.setOffset(100.0 * Math.random()); defaultOffset = false; griddedCoverage.setPrecision(10.0 * Math.random()); defaultPrecision = false; griddedCoverage.setDataNull(new Double(Short.MAX_VALUE - Short.MIN_VALUE)); GriddedCoverageEncodingType encoding; griddedCoverage.setGridCellEncodingType(encoding); TestCase.assertEquals(1, griddedCoverageDao.create(griddedCoverage)); long gcId = griddedCoverage.getId(); griddedCoverage = griddedCoverageDao.queryForId(gcId); TestCase.assertNotNull(griddedCoverage); if (defaultScale) { TestCase.assertEquals(1.0, griddedCoverage.getScale()); } else { TestCase.assertTrue(griddedCoverage.getScale() >= 0.0 && griddedCoverage.getScale() <= 100.0);
+ x], pixelValue); if (griddedCoverage.getDataNull() != null && pixelValue == griddedCoverage .getDataNull()) { TestCase.assertNull(value); } else { (pixelValue * griddedTile.getScale() + griddedTile .getOffset()) * griddedCoverage.getScale() + griddedCoverage.getOffset(), value);
.getGriddedCoverageDao(); GriddedCoverage griddedCoverage = new GriddedCoverage(); griddedCoverage.setTileMatrixSet(tileMatrixSet); griddedCoverage.setDataType(GriddedCoverageDataType.INTEGER); griddedCoverage.setDataNull(new Double(Short.MAX_VALUE - Short.MIN_VALUE)); griddedCoverage .setGridCellEncodingType(GriddedCoverageEncodingType.CENTER); griddedCoverageDao.create(griddedCoverage);
GriddedCoverageDataType dataType = griddedCoverage.getDataType(); switch (dataType) { case INTEGER:
coverageData.setAlgorithm(algorithm); GriddedCoverageEncodingType encoding = coverageData .getGriddedCoverage().getGridCellEncodingType(); coverageData.setEncoding(encoding); .getGriddedCoverage(); TestCase.assertNotNull(griddedCoverage); TestCase.assertTrue(griddedCoverage.getId() >= 0); TestCase.assertNotNull(griddedCoverage.getTileMatrixSet()); TestCase.assertEquals(tileMatrixSet.getTableName(), griddedCoverage.getTileMatrixSetName()); TestCase.assertEquals(GriddedCoverageDataType.INTEGER, griddedCoverage.getDataType()); TestCase.assertTrue(griddedCoverage.getScale() >= 0); if (coverageDataValues != null) { TestCase.assertTrue(griddedCoverage.getOffset() >= 0); TestCase.assertTrue(griddedCoverage.getPrecision() >= 0); griddedCoverage.getDataNull(); griddedCoverage.getUom(); if (coverageDataValues != null) { TestCase.assertEquals(encoding, griddedCoverage.getGridCellEncodingType()); TestCase.assertEquals(encoding.getName(), griddedCoverage.getGridCellEncoding()); TestCase.assertEquals("Height", griddedCoverage.getFieldName()); TestCase.assertEquals("Height", griddedCoverage.getQuantityDefinition()); } else {
GriddedCoverage griddedCoverage = new GriddedCoverage(); griddedCoverage.setTileMatrixSet(tileMatrixSet); griddedCoverage.setDataType(GriddedCoverageDataType.FLOAT); boolean defaultPrecision = true; if (Math.random() < .5) { griddedCoverage.setPrecision(10.0 * Math.random()); defaultPrecision = false; griddedCoverage.setDataNull((double) Float.MAX_VALUE); GriddedCoverageEncodingType encoding; double randomEncoding = Math.random(); griddedCoverage.setGridCellEncodingType(encoding); TestCase.assertEquals(1, griddedCoverageDao.create(griddedCoverage)); long gcId = griddedCoverage.getId(); griddedCoverage = griddedCoverageDao.queryForId(gcId); TestCase.assertNotNull(griddedCoverage); TestCase.assertEquals(1.0, griddedCoverage.getScale()); TestCase.assertEquals(0.0, griddedCoverage.getOffset()); TestCase.assertEquals(1.0, griddedCoverage.getPrecision()); } else { TestCase.assertTrue(griddedCoverage.getPrecision() >= 0.0 && griddedCoverage.getPrecision() <= 10.0); griddedCoverage.getGridCellEncodingType()); TestCase.assertEquals(encoding.getName(), griddedCoverage.getGridCellEncoding());
.getGriddedCoverageDao(); GriddedCoverage griddedCoverage = new GriddedCoverage(); griddedCoverage.setTileMatrixSet(tileMatrixSet); griddedCoverage.setDataType(GriddedCoverageDataType.FLOAT); griddedCoverage.setDataNull((double) Float.MAX_VALUE); griddedCoverage .setGridCellEncodingType(GriddedCoverageEncodingType.CENTER); griddedCoverageDao.create(griddedCoverage);
GriddedCoverageDataType dataType = griddedCoverage.getDataType(); switch (dataType) { case INTEGER:
/** * Convert integer coverage typed coverage data value to a pixel value * through offsets and scales * * @param griddedTile * gridded tile * @param value * coverage data value * @return pixel value */ private double valueToPixelValue(GriddedTile griddedTile, double value) { double pixelValue = value; if (griddedCoverage != null && griddedCoverage.getDataType() == GriddedCoverageDataType.INTEGER) { pixelValue -= griddedCoverage.getOffset(); pixelValue /= griddedCoverage.getScale(); if (griddedTile != null) { pixelValue -= griddedTile.getOffset(); pixelValue /= griddedTile.getScale(); } } return pixelValue; }
/** * Get the unsigned 16 bit integer pixel value of the coverage data value * * @param griddedTile * gridded tile * @param value * coverage data value * @return 16 bit integer pixel value */ public int getUnsignedPixelValue(GriddedTile griddedTile, Double value) { int unsignedPixelValue = 0; if (value == null) { if (griddedCoverage != null) { unsignedPixelValue = griddedCoverage.getDataNull().intValue(); } } else { double pixelValue = valueToPixelValue(griddedTile, value); unsignedPixelValue = (int) Math.round(pixelValue); } return unsignedPixelValue; }
/** * Get the min, max, and offset of the source Y pixel * * @param source * source y pixel * @return source y pixel information */ protected CoverageDataSourcePixel getYSourceMinAndMax(float source) { int floor = (int) Math.floor(source); float valueLocation = getYEncodedLocation(floor, griddedCoverage.getGridCellEncodingType()); CoverageDataSourcePixel pixel = getSourceMinAndMax(source, floor, valueLocation); return pixel; }
/** * Get the pixel value of the coverage data value * * @param griddedTile * gridded tile * @param value * coverage data value * @return pixel value */ public float getFloatPixelValue(GriddedTile griddedTile, Double value) { double pixel = 0; if (value == null) { if (griddedCoverage != null) { pixel = griddedCoverage.getDataNull(); } } else { pixel = valueToPixelValue(griddedTile, value); } float pixelValue = (float) pixel; return pixelValue; }
GriddedCoverage griddedCoverage = coverageData.getGriddedCoverage(); GriddedCoverageEncodingType encoding = griddedCoverage .getGridCellEncodingType();
pixelValue); if (griddedCoverage.getDataNull() != null && pixelValue == griddedCoverage .getDataNull()) { TestCase.assertNull(value); } else {
float value; if (allowNulls && Math.random() < .05) { value = griddedCoverage.getDataNull().floatValue(); } else { value = (float) ((Math.random() * (maxValue - minValue)) + minValue);
int unsignedValue; if (allowNulls && Math.random() < .05) { unsignedValue = griddedCoverage.getDataNull().intValue(); } else { unsignedValue = Short.MAX_VALUE - Short.MIN_VALUE - 1;