private void writeFXYGeoCoding(FXYGeoCoding fxyGeoCoding, String nodeType, StringBuffer sb) { sb.append("\n"); sb.append("\nThe ").append(nodeType).append(" uses a polynomial based geo-coding.\n"); sb.append("\n"); sb.append("Geographic coordinates (lat,lon) are computed from pixel coordinates (x,y)\n" + "by using following polynomial equations: \n\n"); sb.append(fxyGeoCoding.getLatFunction().createCFunctionCode("latitude", "x", "y")).append("\n"); sb.append(fxyGeoCoding.getLonFunction().createCFunctionCode("longitude", "x", "y")).append("\n"); sb.append("\n"); sb.append("Pixels (x,y) are computed from geographic coordinates (lat,lon)\n" + "by using the following polynomial equations: \n\n"); sb.append(fxyGeoCoding.getPixelXFunction().createCFunctionCode("x", "lat", "lon")).append("\n"); sb.append(fxyGeoCoding.getPixelYFunction().createCFunctionCode("y", "lat", "lon")).append("\n"); sb.append("\n"); }
private void writeCombinedFXYGeoCoding(CombinedFXYGeoCoding combinedGeoCoding, String nodeType, StringBuffer sb) { final CombinedFXYGeoCoding.CodingWrapper[] codingWrappers = combinedGeoCoding.getCodingWrappers(); sb.append("\n"); sb.append("\nThe ").append(nodeType).append( " uses a geo-coding which consists of multiple polynomial based geo-coding.\n"); sb.append("\n"); sb.append("The geo-coding uses ").append(codingWrappers.length).append(" polynomial based geo-codings\n"); for (int i = 0; i < codingWrappers.length; i++) { final CombinedFXYGeoCoding.CodingWrapper codingWrapper = codingWrappers[i]; final Rectangle region = codingWrapper.getRegion(); sb.append("\n==== Geo-coding[").append(i + 1).append("] ====\n"); sb.append("\nThe region in the scene which is covered by this geo-coding is defined by:\n"); sb.append("Location : X = ").append(region.x).append(" , Y = ").append(region.y).append("\n"); sb.append("Dimension : W = ").append(region.width).append(" , H = ").append(region.height).append("\n"); sb.append("\n"); final FXYGeoCoding fxyGeoCoding = codingWrapper.getGeoGoding(); sb.append("Geographic coordinates (lat,lon) are computed from pixel coordinates (x,y)\n" + "by using following polynomial equations: \n\n"); sb.append(fxyGeoCoding.getLatFunction().createCFunctionCode("latitude", "x", "y")).append("\n"); sb.append(fxyGeoCoding.getLonFunction().createCFunctionCode("longitude", "x", "y")).append("\n"); sb.append("\n"); sb.append("Pixels (x,y) are computed from geographic coordinates (lat,lon)\n" + "by using the following polynomial equations: \n\n"); sb.append(fxyGeoCoding.getPixelXFunction().createCFunctionCode("x", "lat", "lon")).append("\n"); sb.append(fxyGeoCoding.getPixelYFunction().createCFunctionCode("y", "lat", "lon")).append("\n"); sb.append("\n"); } }
private void writeFXYGeoCoding(FXYGeoCoding fxyGeoCoding, String nodeType) { addEmptyRow(); addRow("The" + nodeType + " uses a polynomial based geo-coding."); addEmptyRow(); addRow("Geographic coordinates (lat,lon) are computed from pixel coordinates (x,y)\n" + "by using following polynomial equations"); addRow(fxyGeoCoding.getLatFunction().createCFunctionCode("latitude", "x", "y")); addRow(fxyGeoCoding.getLonFunction().createCFunctionCode("longitude", "x", "y")); addEmptyRow(); addRow("Pixels (x,y) are computed from geographic coordinates (lat,lon)\n" + "by using the following polynomial equations"); addRow(fxyGeoCoding.getPixelXFunction().createCFunctionCode("x", "lat", "lon")); addRow(fxyGeoCoding.getPixelYFunction().createCFunctionCode("y", "lat", "lon")); }
assertTrue(_geoCoding.getPixelYFunction() != subsetGeoCoding.getPixelYFunction()); assertTrue(_geoCoding.getLatFunction() != subsetGeoCoding.getLatFunction()); assertTrue(_geoCoding.getLonFunction() != subsetGeoCoding.getLonFunction()); assertTrue(_geoCoding.getLatFunction().getCoefficients() != subsetGeoCoding.getLatFunction().getCoefficients()); assertTrue(_geoCoding.getLonFunction().getCoefficients() != subsetGeoCoding.getLonFunction().getCoefficients()); assertTrue(Arrays.equals(_geoCoding.getLatFunction().getCoefficients(), subsetGeoCoding.getLatFunction().getCoefficients())); assertTrue(Arrays.equals(_geoCoding.getLonFunction().getCoefficients(), subsetGeoCoding.getLonFunction().getCoefficients()));
private void writeCombinedFXYGeoCoding(CombinedFXYGeoCoding combinedGeoCoding, String nodeType) { final CombinedFXYGeoCoding.CodingWrapper[] codingWrappers = combinedGeoCoding.getCodingWrappers(); addEmptyRow(); addRow("The " + nodeType + " uses a geo-coding which consists of multiple polynomial based geo-coding."); addEmptyRow(); addRow("The geo-coding uses " + codingWrappers.length + " polynomial based geo-codings"); for (int i = 0; i < codingWrappers.length; i++) { final CombinedFXYGeoCoding.CodingWrapper codingWrapper = codingWrappers[i]; final Rectangle region = codingWrapper.getRegion(); addHeaderRow("Geo-coding[" + (i + 1) + "]"); addRow("The region in the scene which is covered by this geo-coding is defined by:"); addRow("Location: X = " + region.x + ", Y = " + region.y + "\n"); addRow("Dimension: W = " + region.width + ", H = " + region.height); addEmptyRow(); final FXYGeoCoding fxyGeoCoding = codingWrapper.getGeoGoding(); addRow("Geographic coordinates (lat,lon) are computed from pixel coordinates (x,y)\n" + "by using following polynomial equations"); addRow(fxyGeoCoding.getLatFunction().createCFunctionCode("latitude", "x", "y")); addRow(fxyGeoCoding.getLonFunction().createCFunctionCode("longitude", "x", "y")); addEmptyRow(); addRow("Pixels (x,y) are computed from geographic coordinates (lat,lon)\n" + "by using the following polynomial equations"); addRow(fxyGeoCoding.getPixelXFunction().createCFunctionCode("x", "lat", "lon")); addRow(fxyGeoCoding.getPixelYFunction().createCFunctionCode("y", "lat", "lon")); } }
private void assertEqual(final FXYGeoCoding expectedGeoCoding, final FXYGeoCoding actualGeoCoding) { assertEquals(expectedGeoCoding.getDatum().getName(), actualGeoCoding.getDatum().getName()); assertEquals(expectedGeoCoding.getDatum().getEllipsoid().getName(), actualGeoCoding.getDatum().getEllipsoid().getName()); assertEquals(expectedGeoCoding.getDatum().getEllipsoid().getSemiMajor(), actualGeoCoding.getDatum().getEllipsoid().getSemiMajor(), 1.0e-6); assertEquals(expectedGeoCoding.getDatum().getEllipsoid().getSemiMinor(), actualGeoCoding.getDatum().getEllipsoid().getSemiMinor(), 1.0e-6); assertEquals(expectedGeoCoding.getLatFunction().getOrder(), actualGeoCoding.getLatFunction().getOrder()); assertTrue(ArrayUtils.equalArrays(expectedGeoCoding.getLatFunction().getCoefficients(), actualGeoCoding.getLatFunction().getCoefficients(), 1.0e-6)); assertEquals(expectedGeoCoding.getLonFunction().getOrder(), actualGeoCoding.getLonFunction().getOrder()); assertTrue(ArrayUtils.equalArrays(expectedGeoCoding.getLonFunction().getCoefficients(), actualGeoCoding.getLonFunction().getCoefficients(), 1.0e-6)); assertEquals(expectedGeoCoding.getPixelXFunction().getOrder(), actualGeoCoding.getPixelXFunction().getOrder()); assertTrue(ArrayUtils.equalArrays(expectedGeoCoding.getPixelXFunction().getCoefficients(), actualGeoCoding.getPixelXFunction().getCoefficients(), 1.0e-6)); assertEquals(expectedGeoCoding.getPixelYFunction().getOrder(), actualGeoCoding.getPixelYFunction().getOrder()); assertTrue(ArrayUtils.equalArrays(expectedGeoCoding.getPixelYFunction().getCoefficients(), actualGeoCoding.getPixelYFunction().getCoefficients(), 1.0e-6)); assertEquals(expectedGeoCoding.getPixelOffsetX(), actualGeoCoding.getPixelOffsetX(), 1.0e-6); assertEquals(expectedGeoCoding.getPixelOffsetY(), actualGeoCoding.getPixelOffsetY(), 1.0e-6); assertEquals(expectedGeoCoding.getPixelSizeX(), actualGeoCoding.getPixelSizeX(), 1.0e-6); assertEquals(expectedGeoCoding.getPixelSizeY(), actualGeoCoding.getPixelSizeY(), 1.0e-6); }
final double[] lambdaCoeffs = fxyGeoCoding.getLonFunction().getCoefficients(); final double[] phiCoeffs = fxyGeoCoding.getLatFunction().getCoefficients(); final double[] xCoeffs = fxyGeoCoding.getPixelXFunction().getCoefficients();