public static void testDiscontinuity() { final TiePointGrid tp1 = new TiePointGrid("tp1", 2, 2, 0, 0, 1, 1, new float[]{0, 20, 180, 150}, true); assertEquals(TiePointGrid.DISCONT_AT_180, tp1.getDiscontinuity()); final TiePointGrid tp2 = new TiePointGrid("tp2", 2, 2, 0, 0, 1, 1, new float[]{150, 0, -20, 20}, true); assertEquals(TiePointGrid.DISCONT_AT_180, tp2.getDiscontinuity()); final TiePointGrid tp3 = new TiePointGrid("tp3", 2, 2, 0, 0, 1, 1, new float[]{0, 278, 180, 46}, true); assertEquals(TiePointGrid.DISCONT_AT_360, tp3.getDiscontinuity()); final TiePointGrid tp4 = new TiePointGrid("tp4", 2, 2, 0, 0, 1, 1, new float[]{-4, 0, 278, 180}, true); assertEquals(TiePointGrid.DISCONT_AT_360, tp4.getDiscontinuity()); }
private void readTiePointGrids(Document jDomDocument) throws IOException { final String[] tiePointGridNames = product.getTiePointGridNames(); for (String tiePointGridName : tiePointGridNames) { final TiePointGrid tiePointGrid = product.getTiePointGrid(tiePointGridName); String dataFile = DimapProductHelpers.getTiePointDataFile(jDomDocument, tiePointGrid.getName()); dataFile = FileUtils.exchangeExtension(dataFile, DimapProductConstants.IMAGE_FILE_EXTENSION); FileImageInputStream inputStream = null; try { inputStream = new FileImageInputStream(new File(inputDir, dataFile)); final float[] floats = ((float[]) tiePointGrid.getData().getElems()); inputStream.seek(0); inputStream.readFully(floats, 0, floats.length); inputStream.close(); inputStream = null; // See if we have a -180...+180 or a 0...360 degree discontinuity if (tiePointGrid.getDiscontinuity() != TiePointGrid.DISCONT_NONE) { tiePointGrid.setDiscontinuity(TiePointGrid.getDiscontinuity(floats)); } } catch (IOException e) { throw new IOException( MessageFormat.format("I/O error while reading tie-point grid ''{0}''.", tiePointGridName), e); } finally { if (inputStream != null) { inputStream.close(); } } } }
boolean containsAngles) { this(name, gridWidth, gridHeight, offsetX, offsetY, subSamplingX, subSamplingY, tiePoints, containsAngles ? getDiscontinuity(tiePoints) : DISCONT_NONE);
public TiePointGrid cloneTiePointGrid() { final float[] srcTiePoints = this.getTiePoints(); final float[] destTiePoints = new float[srcTiePoints.length]; System.arraycopy(srcTiePoints, 0, destTiePoints, 0, srcTiePoints.length); TiePointGrid clone = new TiePointGrid(this.getName(), this.getRasterWidth(), this.getRasterHeight(), this.getOffsetX(), this.getOffsetY(), this.getSubSamplingX(), this.getSubSamplingY(), destTiePoints, this.getDiscontinuity()); clone.setUnit(getUnit()); clone.setDescription(getDescription()); return clone; }
lonGrid.getSubSamplingY(), normalizedLongitudes, lonGrid.getDiscontinuity()); } else { normalizedLonGrid = lonGrid;
newTPGSubSamplingY, tiePoints, sourceTiePointGrid.getDiscontinuity()); tiePointGrid.setUnit(sourceTiePointGrid.getUnit()); tiePointGrid.setDescription(sourceTiePointGrid.getDescription());
sourceStepX, sourceStepY, targetPoints, sourceTiePointGrid.getDiscontinuity()); tiePointGrid.setUnit(sourceTiePointGrid.getUnit()); tiePointGrid.setDescription(sourceTiePointGrid.getDescription());
printLine(indent + 2, DimapProductConstants.TAG_TIE_POINT_STEP_X, tiePointGrid.getSubSamplingX()); printLine(indent + 2, DimapProductConstants.TAG_TIE_POINT_STEP_Y, tiePointGrid.getSubSamplingY()); final boolean cyclic = tiePointGrid.getDiscontinuity() != TiePointGrid.DISCONT_NONE; printLine(indent + 2, DimapProductConstants.TAG_TIE_POINT_CYCLIC, cyclic); println(tpgiTags[1]);
public void testClone() { TiePointGrid grid = new TiePointGrid("abc", 2, 2, 0.1f, 0.2f, 0.3f, 0.4f, new float[]{1.2f, 2.3f, 3.4f, 4.5f}); grid.setDescription("Aha!"); grid.setDiscontinuity(TiePointGrid.DISCONT_AT_180); TiePointGrid gridClone = grid.cloneTiePointGrid(); assertEquals("abc", gridClone.getName()); assertEquals("Aha!", gridClone.getDescription()); assertEquals(TiePointGrid.DISCONT_AT_180, gridClone.getDiscontinuity()); assertEquals(2, gridClone.getRasterWidth()); assertEquals(2, gridClone.getRasterHeight()); assertEquals(0.1f, gridClone.getOffsetX()); assertEquals(0.2f, gridClone.getOffsetY()); assertEquals(0.3f, gridClone.getSubSamplingX()); assertEquals(0.4f, gridClone.getSubSamplingY()); assertNotNull(gridClone.getData()); assertEquals(true, gridClone.getData().getElems() instanceof float[]); float[] dataClone = (float[]) gridClone.getData().getElems(); assertEquals(4, dataClone.length); assertEquals(1.2f, dataClone[0]); assertEquals(2.3f, dataClone[1]); assertEquals(3.4f, dataClone[2]); assertEquals(4.5f, dataClone[3]); assertNotSame(grid.getData().getElems(), dataClone); } }