public static void setTiePointGeoCoding(final Product product) { TiePointGrid lonGrid = null, latGrid = null; for (String lonStr : NetcdfConstants.LON_VAR_NAMES) { lonGrid = product.getTiePointGrid(lonStr); if (lonGrid != null) break; } for (String latStr : NetcdfConstants.LAT_VAR_NAMES) { latGrid = product.getTiePointGrid(latStr); if (latGrid != null) break; } if (latGrid != null && lonGrid != null) { final TiePointGeoCoding tpGeoCoding = new TiePointGeoCoding(latGrid, lonGrid); product.setSceneGeoCoding(tpGeoCoding); } }
private static void clearProductMetadata(final Product product) { final String[] tpgNames = product.getTiePointGridNames(); for (String tpg : tpgNames) { product.removeTiePointGrid(product.getTiePointGrid(tpg)); } final MetadataElement root = product.getMetadataRoot(); final MetadataElement[] elems = root.getElements(); for (MetadataElement e : elems) { root.removeElement(e); } AbstractMetadata.addAbstractedMetadataHeader(product.getMetadataRoot()); }
private static float[] getLatData(final Product product, final String latGridName) { final int size = product.getSceneRasterHeight(); final TiePointGrid latGrid = product.getTiePointGrid(latGridName); if (latGrid != null) return latGrid.getPixels(0, 0, 1, size, (float[]) null); return null; }
private static float[] getLonData(final Product product, final String lonGridName) { final int size = product.getSceneRasterWidth(); final TiePointGrid lonGrid = product.getTiePointGrid(lonGridName); if (lonGrid != null) return lonGrid.getPixels(0, 0, size, 1, (float[]) null); return null; }
@Override public void initParameters() { if(hasSourceProducts() && sourceProducts[0] != null) { crsSelectionPanel.setReferenceProduct(sourceProducts[0]); if((sourceProducts[0].getBand("longitude") != null && sourceProducts[0].getBand("latitude") != null) || (sourceProducts[0].getTiePointGrid("longitude") != null && sourceProducts[0].getTiePointGrid("latitude") != null)) { addDeltaBandsChecker.setEnabled(true); } else { addDeltaBandsChecker.setEnabled(false); } } updateCRS(); updateParameters(); }
private void updateTiePointGridPixelValues() { for (int i = 0; i < tiePointModel.getRowCount(); i++) { final TiePointGrid grid = currentProduct.getTiePointGrid((String) tiePointModel.getValueAt(i, 0)); tiePointModel.updateValue(getPixelString(grid), i); } }
prodName, prodDesc); TiePointGrid latGrid = resultProduct.getTiePointGrid("latitude"); TiePointGrid lonGrid = resultProduct.getTiePointGrid("longitude"); if (latGrid != null && lonGrid != null) { resultProduct.setSceneGeoCoding(
final double subSamplingY = (double) isubSamplingY; final TiePointGrid slantRangeTime = product.getTiePointGrid(OperatorUtils.TPG_SLANT_RANGE_TIME); final MetadataElement absRoot = AbstractMetadata.getAbstractedMetadata(product);
final double subSamplingY = sourceImageHeight / (double) (gridHeight - 1); final TiePointGrid slantRangeTime = product.getTiePointGrid(OperatorUtils.TPG_SLANT_RANGE_TIME); final MetadataElement absRoot = AbstractMetadata.getAbstractedMetadata(product); final double firstLineUTC = absRoot.getAttributeUTC(AbstractMetadata.first_line_time).getMJD();
final double subSamplingY = sourceImageHeight / (double) (gridHeight - 1); final TiePointGrid slantRangeTime = product.getTiePointGrid(OperatorUtils.TPG_SLANT_RANGE_TIME); final MetadataElement absRoot = AbstractMetadata.getAbstractedMetadata(product); final double firstLineUTC = absRoot.getAttributeUTC(AbstractMetadata.first_line_time).getMJD();
pre = tpgPrefix + '_'; final TiePointGrid existingLatTPG = product.getTiePointGrid(pre + OperatorUtils.TPG_LATITUDE); final TiePointGrid existingLonTPG = product.getTiePointGrid(pre + OperatorUtils.TPG_LONGITUDE); if (existingLatTPG != null && existingLonTPG != null) { if(band != null) { newGridWidth, newGridHeight, subSamplingX, subSamplingY, newslrtList); TiePointGrid latGrid = product.getTiePointGrid(pre + OperatorUtils.TPG_LATITUDE); if (latGrid == null) { latGrid = new TiePointGrid(pre + OperatorUtils.TPG_LATITUDE, TiePointGrid lonGrid = product.getTiePointGrid(pre + OperatorUtils.TPG_LONGITUDE); if (lonGrid == null) { lonGrid = new TiePointGrid(pre + OperatorUtils.TPG_LONGITUDE, if (product.getTiePointGrid(pre + OperatorUtils.TPG_INCIDENT_ANGLE) == null) { final TiePointGrid incidentAngleGrid = new TiePointGrid(pre + OperatorUtils.TPG_INCIDENT_ANGLE, newGridWidth, newGridHeight, 0.5f, 0.5f, subSamplingX, subSamplingY, newIncList); if (product.getTiePointGrid(pre + OperatorUtils.TPG_ELEVATION_ANGLE) == null) { final TiePointGrid elevAngleGrid = new TiePointGrid(pre + OperatorUtils.TPG_ELEVATION_ANGLE, newGridWidth, newGridHeight, 0.5f, 0.5f, subSamplingX, subSamplingY, newElevList); if (product.getTiePointGrid(pre + OperatorUtils.TPG_SLANT_RANGE_TIME) == null) { final TiePointGrid slantRangeGrid = new TiePointGrid(pre + OperatorUtils.TPG_SLANT_RANGE_TIME, newGridWidth, newGridHeight, 0.5f, 0.5f, subSamplingX, subSamplingY, newslrtList);
final double subSamplingY = sourceImageHeight / (double) (gridHeight - 1); final TiePointGrid slantRangeTime = product.getTiePointGrid(OperatorUtils.TPG_SLANT_RANGE_TIME); final MetadataElement absRoot = AbstractMetadata.getAbstractedMetadata(product); final double firstLineUTC = absRoot.getAttributeUTC(AbstractMetadata.first_line_time).getMJD();
pre = tpgPrefix + '_'; final TiePointGrid testTPG = product.getTiePointGrid(pre + OperatorUtils.TPG_LATITUDE); if (testTPG != null) return; newGridWidth, newGridHeight, subSamplingX, subSamplingY, newslrtList); TiePointGrid latGrid = product.getTiePointGrid(pre + OperatorUtils.TPG_LATITUDE); if (latGrid == null) { latGrid = new TiePointGrid(pre + OperatorUtils.TPG_LATITUDE, TiePointGrid lonGrid = product.getTiePointGrid(pre + OperatorUtils.TPG_LONGITUDE); if (lonGrid == null) { lonGrid = new TiePointGrid(pre + OperatorUtils.TPG_LONGITUDE, if (product.getTiePointGrid(pre + OperatorUtils.TPG_INCIDENT_ANGLE) == null) { final TiePointGrid incidentAngleGrid = new TiePointGrid(pre + OperatorUtils.TPG_INCIDENT_ANGLE, newGridWidth, newGridHeight, 0.5f, 0.5f, subSamplingX, subSamplingY, newIncList); if (product.getTiePointGrid(pre + OperatorUtils.TPG_ELEVATION_ANGLE) == null) { final TiePointGrid elevAngleGrid = new TiePointGrid(pre + OperatorUtils.TPG_ELEVATION_ANGLE, newGridWidth, newGridHeight, 0.5f, 0.5f, subSamplingX, subSamplingY, newElevList); if (product.getTiePointGrid(pre + OperatorUtils.TPG_SLANT_RANGE_TIME) == null) { final TiePointGrid slantRangeGrid = new TiePointGrid(pre + OperatorUtils.TPG_SLANT_RANGE_TIME, newGridWidth, newGridHeight, 0.5f, 0.5f, subSamplingX, subSamplingY, newslrtList);
@Override protected void addGeoCoding(final Product product) { TiePointGrid latGrid = product.getTiePointGrid(OperatorUtils.TPG_LATITUDE); TiePointGrid lonGrid = product.getTiePointGrid(OperatorUtils.TPG_LONGITUDE); if (latGrid != null && lonGrid != null) { setLatLongMetadata(product, latGrid, lonGrid); latGrid = product.getTiePointGrid(OperatorUtils.TPG_LATITUDE); lonGrid = product.getTiePointGrid(OperatorUtils.TPG_LONGITUDE); if (latGrid != null && lonGrid != null) { setLatLongMetadata(product, latGrid, lonGrid);
@Override protected void addTiePointGrids(final Product product) { final int gridWidth = 4; final int gridHeight = 4; final double subSamplingX = (double) product.getSceneRasterWidth() / (gridWidth - 1); final double subSamplingY = (double) product.getSceneRasterHeight() / (gridHeight - 1); if (subSamplingX == 0 || subSamplingY == 0) return; final float[] flippedSlantRangeCorners = new float[4]; final float[] flippedIncidenceCorners = new float[4]; getFlippedCorners(product, flippedSlantRangeCorners, flippedIncidenceCorners); if (product.getTiePointGrid(OperatorUtils.TPG_INCIDENT_ANGLE) == null) { final float[] fineAngles = new float[gridWidth * gridHeight]; ReaderUtils.createFineTiePointGrid(2, 2, gridWidth, gridHeight, flippedIncidenceCorners, fineAngles); final TiePointGrid incidentAngleGrid = new TiePointGrid(OperatorUtils.TPG_INCIDENT_ANGLE, gridWidth, gridHeight, 0, 0, subSamplingX, subSamplingY, fineAngles); incidentAngleGrid.setUnit(Unit.DEGREES); product.addTiePointGrid(incidentAngleGrid); } final float[] fineSlantRange = new float[gridWidth * gridHeight]; ReaderUtils.createFineTiePointGrid(2, 2, gridWidth, gridHeight, flippedSlantRangeCorners, fineSlantRange); final TiePointGrid slantRangeGrid = new TiePointGrid(OperatorUtils.TPG_SLANT_RANGE_TIME, gridWidth, gridHeight, 0, 0, subSamplingX, subSamplingY, fineSlantRange); slantRangeGrid.setUnit(Unit.NANOSECONDS); product.addTiePointGrid(slantRangeGrid); addShiftFiles(product); }
if(product.getTiePointGrid(OperatorUtils.TPG_LATITUDE) == null) { product.addTiePointGrid(latGrid); product.addTiePointGrid(lonGrid);
if(product.getTiePointGrid(OperatorUtils.TPG_LATITUDE) == null) { product.addTiePointGrid(latGrid); product.addTiePointGrid(lonGrid);
final TiePointGrid slantRangeTimeTPG = product.getTiePointGrid(OperatorUtils.TPG_SLANT_RANGE_TIME); if (slantRangeTimeTPG != null) { final int numOutputLines = absRoot.getAttributeInt(AbstractMetadata.num_output_lines);
final TiePointGrid slantRangeTimeTPG = product.getTiePointGrid(OperatorUtils.TPG_SLANT_RANGE_TIME); if (slantRangeTimeTPG != null) { final int numOutputLines = absRoot.getAttributeInt(AbstractMetadata.num_output_lines);
final TiePointGrid slantRangeTimeTPG = product.getTiePointGrid(OperatorUtils.TPG_SLANT_RANGE_TIME); if (slantRangeTimeTPG != null) { final int numOutputLines = absRoot.getAttributeInt(AbstractMetadata.num_output_lines);