TiePointGrid latGrid = destProduct.getTiePointGrid(latGridName); if (latGrid == null) { latGrid = TiePointGrid.createSubset(getLatGrid(), subsetDef); destProduct.addTiePointGrid(latGrid); lonGrid = TiePointGrid.createSubset(getLonGrid(), subsetDef); destProduct.addTiePointGrid(lonGrid);
@Override public boolean transferGeoCoding(Scene srcScene, Scene destScene, ProductSubsetDef subsetDef) { final String latGridName = getLatGrid().getName(); final String lonGridName = getLonGrid().getName(); final Product destProduct = destScene.getProduct(); TiePointGrid latGrid = destProduct.getTiePointGrid(latGridName); if (latGrid == null) { latGrid = TiePointGrid.createSubset(getLatGrid(), subsetDef); destProduct.addTiePointGrid(latGrid); } TiePointGrid lonGrid = destProduct.getTiePointGrid(lonGridName); if (lonGrid == null) { lonGrid = TiePointGrid.createSubset(getLonGrid(), subsetDef); destProduct.addTiePointGrid(lonGrid); } if (latGrid != null && lonGrid != null) { if (subsetDef == null || subsetDef.getRegion() == null) { // re-use approximations destScene.setGeoCoding(new PodGeoCoding(latGrid, lonGrid, approximations)); } else { destScene.setGeoCoding(new PodGeoCoding(latGrid, lonGrid)); } return true; } else { return false; } }
static void copyReferencedRasters(String validMaskExpression, Scene sourceScene, Scene targetScene, ProductSubsetDef subsetDef) throws ParseException { final Product targetProduct = targetScene.getProduct(); final RasterDataNode[] nodes = BandArithmetic.getRefRasters(validMaskExpression, sourceScene.getProduct()); for (RasterDataNode node : nodes) { if (!targetProduct.containsRasterDataNode(node.getName())) { if (node instanceof TiePointGrid) { TiePointGrid tpg = TiePointGrid.createSubset((TiePointGrid) node, subsetDef); targetProduct.addTiePointGrid(tpg); } if (node instanceof Band) { final Band sourceBand = (Band) node; final Band band = createSubset(sourceBand, targetScene, subsetDef); targetProduct.addBand(band); setFlagCoding(band, sourceBand.getFlagCoding()); } } } }
protected void addTiePointGridsToProduct(final Product product) { final GeoCoding geoCoding = getSourceProduct().getGeoCoding(); final String latGridName; final String lonGridName; if (geoCoding instanceof TiePointGeoCoding) { final TiePointGeoCoding tiePointGeoCoding = (TiePointGeoCoding) geoCoding; final TiePointGrid latGrid = tiePointGeoCoding.getLatGrid(); final TiePointGrid lonGrid = tiePointGeoCoding.getLonGrid(); latGridName = latGrid.getName(); lonGridName = lonGrid.getName(); } else { latGridName = null; lonGridName = null; } for (int i = 0; i < getSourceProduct().getNumTiePointGrids(); i++) { final TiePointGrid sourceTiePointGrid = getSourceProduct().getTiePointGridAt(i); final String gridName = sourceTiePointGrid.getName(); if (isNodeAccepted(gridName) || (gridName.equals(latGridName) || gridName.equals(lonGridName))) { final TiePointGrid tiePointGrid = TiePointGrid.createSubset(sourceTiePointGrid, getSubsetDef()); if (isFullScene(getSubsetDef()) && sourceTiePointGrid.isStxSet()) { copyStx(sourceTiePointGrid, tiePointGrid); } product.addTiePointGrid(tiePointGrid); copyImageInfo(sourceTiePointGrid, tiePointGrid); } } }
TiePointGrid latGrid = destProduct.getTiePointGrid(latGridName); if (latGrid == null) { latGrid = TiePointGrid.createSubset(_latGrid, subsetDef); destProduct.addTiePointGrid(latGrid); lonGrid = TiePointGrid.createSubset(_lonGrid, subsetDef); destProduct.addTiePointGrid(lonGrid);