for (int i = 0; i < (numTiePoints); i++) { message.print("TP #" + i + ": "); message.print("[" + modelTiePoints[i].getValueAt(0)); message.print("," + modelTiePoints[i].getValueAt(1)); message.print("," + modelTiePoints[i].getValueAt(2)); message.print("] -> [" + modelTiePoints[i].getValueAt(3)); message.print("," + modelTiePoints[i].getValueAt(4)); message.println("," + modelTiePoints[i].getValueAt(5) + "]");
tiePoints[0].getValueAt(0) + (rasterType == GeoTiffConstants.RasterPixelIsArea ? -0.5 : 0); tiePoints[0].getValueAt(1) + (rasterType == GeoTiffConstants.RasterPixelIsArea ? -0.5 : 0); 0, 2, tiePoints[0].getValueAt(3) - (scaleRaster2ModelLongitude * tiePointColumn)); gm.setElement( 1, 2, tiePoints[0].getValueAt(4) - (scaleRaster2ModelLatitude * tiePointRow));
for (int i = 0; i < (numTiePoints); i++) { message.print("TP #" + i + ": "); message.print("[" + modelTiePoints[i].getValueAt(0)); message.print("," + modelTiePoints[i].getValueAt(1)); message.print("," + modelTiePoints[i].getValueAt(2)); message.print("] -> [" + modelTiePoints[i].getValueAt(3)); message.print("," + modelTiePoints[i].getValueAt(4)); message .println("," + modelTiePoints[i].getValueAt(5) + "]");
private void initTiePointGeoCoding(Product product) { TiePoint[] tiePoints = imageMetadata.getTiePoints(); if (tiePoints != null && tiePoints.length == 4) { float[] latPoints = new float[tiePoints.length]; float[] lonPoints = new float[tiePoints.length]; for (int i = 0; i < tiePoints.length; i++) { latPoints[(i != 2 ? (i != 3 ? i : 2) : 3)] = (float) tiePoints[i].getValueAt(4); lonPoints[(i != 2 ? (i != 3 ? i : 2) : 3)] = (float) tiePoints[i].getValueAt(3); } TiePointGrid latGrid = createTiePointGrid("latitude", 2, 2, 0, 0, metadata.getRasterWidth(), metadata.getRasterHeight(), latPoints); product.addTiePointGrid(latGrid); TiePointGrid lonGrid = createTiePointGrid("longitude", 2, 2, 0, 0, metadata.getRasterWidth(), metadata.getRasterHeight(), lonPoints); product.addTiePointGrid(lonGrid); GeoCoding geoCoding = new TiePointGeoCoding(latGrid, lonGrid); product.setSceneGeoCoding(geoCoding); } }
final double scaleRaster2ModelLatitude = -pixScales.getScaleY(); final double tiePointColumn = tiePoints[0].getValueAt(0) + (rasterType == GeoTiffConstants.RasterPixelIsPoint ? 0.5 : 0); final double tiePointRow = tiePoints[0].getValueAt(1) + (rasterType == GeoTiffConstants.RasterPixelIsPoint ? 0.5 : 0); gm.setElement(1, 0, 0); gm.setElement(0, 2, tiePoints[0].getValueAt(3) - (scaleRaster2ModelLongitude * tiePointColumn)); gm.setElement(1, 2, tiePoints[0].getValueAt(4) - (scaleRaster2ModelLatitude * tiePointRow));
final double scaleRaster2ModelLatitude = -pixScales.getScaleY(); final double tiePointColumn = tiePoints[0].getValueAt(0) + (rasterType == GeoTiffConstants.RasterPixelIsPoint ? 0.5 : 0); final double tiePointRow = tiePoints[0].getValueAt(1) + (rasterType == GeoTiffConstants.RasterPixelIsPoint ? 0.5 : 0); gm.setElement(1, 0, 0); gm.setElement(0, 2, tiePoints[0].getValueAt(3) - (scaleRaster2ModelLongitude * tiePointColumn)); gm.setElement(1, 2, tiePoints[0].getValueAt(4) - (scaleRaster2ModelLatitude * tiePointRow));
final double scaleRaster2ModelLatitude = -pixScales.getScaleY(); final double tiePointColumn = tiePoints[0].getValueAt(0) + ((forceToCellCenter || rasterType == GeoTiffConstants.RasterPixelIsArea) ? - 0.5: 0); final double tiePointRow = tiePoints[0].getValueAt(1) + ((forceToCellCenter || rasterType == GeoTiffConstants.RasterPixelIsArea) ? - 0.5: 0); gm.setElement(1, 0, 0); gm.setElement(0, 2, tiePoints[0].getValueAt(3) - (scaleRaster2ModelLongitude * tiePointColumn)); gm.setElement(1, 2, tiePoints[0].getValueAt(4) - (scaleRaster2ModelLatitude * tiePointRow));