/** * Copies all tie point grids from one product to another. * * @param sourceProduct the source product * @param targetProduct the target product */ public static void copyTiePointGrids(Product sourceProduct, Product targetProduct) { for (int i = 0; i < sourceProduct.getNumTiePointGrids(); i++) { TiePointGrid srcTPG = sourceProduct.getTiePointGridAt(i); targetProduct.addTiePointGrid(srcTPG.cloneTiePointGrid()); } }
/** * Copies the named tie-point grid from the source product to the target product. * * @param gridName the name of the tie-point grid to be copied. * @param sourceProduct the source product * @param targetProduct the target product * * @return the copied tie-point grid, or <code>null</code> if the sourceProduct does not contain a tie-point grid with the given name. */ public static TiePointGrid copyTiePointGrid(String gridName, Product sourceProduct, Product targetProduct) { Guardian.assertNotNull("sourceProduct", sourceProduct); Guardian.assertNotNull("targetProduct", targetProduct); if (gridName == null || gridName.length() == 0) { return null; } final TiePointGrid sourceGrid = sourceProduct.getTiePointGrid(gridName); if (sourceGrid == null) { return null; } final TiePointGrid targetGrid = sourceGrid.cloneTiePointGrid(); targetProduct.addTiePointGrid(targetGrid); return targetGrid; }
/** * Copies the tie point data. * * @param sourceProduct * @param targetProduct */ private void copyTiePoints(Product sourceProduct, Product targetProduct) { if (copyAllTiePoints) { // copy all tie point grids to output product ProductUtils.copyTiePointGrids(sourceProduct, targetProduct); } else { for (int i = 0; i < sourceProduct.getNumTiePointGrids(); i++) { TiePointGrid srcTPG = sourceProduct.getTiePointGridAt(i); if (srcTPG.getName().equals("latitude") || srcTPG.getName().equals("longitude")) { targetProduct.addTiePointGrid(srcTPG.cloneTiePointGrid()); } } } }
final TiePointGrid clonedLatGrid = _latGrid.cloneTiePointGrid(); final TiePointGrid clonedLonGrid = _lonGrid.cloneTiePointGrid(); destProduct.addTiePointGrid(clonedLatGrid); destProduct.addTiePointGrid(clonedLonGrid);
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); } }