private void initGeoCodings(Document dom) { final GeoCoding[] geoCodings = DimapProductHelpers.createGeoCoding(dom, product); if (geoCodings != null) { if (geoCodings.length == 1) { product.setGeoCoding(geoCodings[0]); } else { for (int i = 0; i < geoCodings.length; i++) { product.getBandAt(i).setGeoCoding(geoCodings[i]); } } } else { final Band lonBand = product.getBand("longitude"); final Band latBand = product.getBand("latitude"); if (latBand != null && lonBand != null) { final GeoCoding geoCoding = GeoCodingFactory.createPixelGeoCoding(latBand, lonBand, null, 6); product.setGeoCoding(geoCoding); } } }
@Before public void setup() throws Exception { final Rectangle imageBounds = new Rectangle(10, 20); srcGeoCoding = createCrsGeoCoding(imageBounds); final Band srcNode = new Band("srcDummy", ProductData.TYPE_INT8, 10, 20); srcNode.setGeoCoding(srcGeoCoding); srcScene = SceneFactory.createScene(srcNode); final Band destNode = new Band("destDummy", ProductData.TYPE_INT8, 10, 20); destScene = SceneFactory.createScene(destNode); }
public void testTransferGeoCodingWithoutSubset() { final Band srcNode = new Band("srcDummy",ProductData.TYPE_INT8, 10,20); srcNode.setGeoCoding(_geoCoding); final Scene srcScene = SceneFactory.createScene(srcNode); final Band destNode = new Band("destDummy",ProductData.TYPE_INT8, 10,20); final Scene destScene = SceneFactory.createScene(destNode); srcScene.transferGeoCodingTo(destScene, null); assertFXYGeoCodingIsCopied((FXYGeoCoding)destNode.getGeoCoding(), null); }
@Test public void testUniqueGeoCodings() { Product p = new Product("N", "T", 4, 4); assertFalse(p.isUsingSingleGeoCoding()); final GeoCoding gc1 = new ProductUtilsTest.SGeoCoding(); final GeoCoding gc2 = new ProductUtilsTest.DGeoCoding(); p.setGeoCoding(gc1); assertTrue(p.isUsingSingleGeoCoding()); p.addBand("A", ProductData.TYPE_INT8); p.addBand("B", ProductData.TYPE_INT8); assertTrue(p.isUsingSingleGeoCoding()); p.getBand("A").setGeoCoding(gc1); p.getBand("B").setGeoCoding(gc2); assertFalse(p.isUsingSingleGeoCoding()); p.getBand("B").setGeoCoding(gc1); assertTrue(p.isUsingSingleGeoCoding()); }
public void testTransferBandedGCFromProductToBand() { final AbstractGeoCoding geoCoding1 = createFXYSumGeoCoding(); _srcBand1.setGeoCoding(geoCoding1); final AbstractGeoCoding geoCoding2 = createFXYSumGeoCoding(); _srcBand2.setGeoCoding(geoCoding2); _destBand2.setGeoCoding(createFXYSumGeoCoding()); final Scene srcScene = SceneFactory.createScene(_srcProduct); final Scene destScene = SceneFactory.createScene(_destBand1); srcScene.transferGeoCodingTo(destScene, _subsetDef); assertNotNull(_destProduct.getGeoCoding()); assertFalse(_destProduct.isUsingSingleGeoCoding()); assertNotNull(_destBand1.getGeoCoding()); assertNotNull(_destBand2.getGeoCoding()); assertTrue(_destBand1.getGeoCoding() instanceof FXYGeoCoding); assertNotSame(_destBand1.getGeoCoding(), geoCoding1); assertNotSame(_destBand1.getGeoCoding(), _destBand2.getGeoCoding()); }
public void testTransferGeoCodingWithSubset() { final Band srcNode = new Band("srcDummy",ProductData.TYPE_INT8, 10,20); srcNode.setGeoCoding(_geoCoding); final Scene srcScene = SceneFactory.createScene(srcNode); final ProductSubsetDef subset = new ProductSubsetDef("subset"); subset.setRegion(10,10,50,50); subset.setSubSampling(2, 3); final Band destNode = new Band("destDummy",ProductData.TYPE_INT8, 10,20); final Scene destScene = SceneFactory.createScene(destNode); srcScene.transferGeoCodingTo(destScene, subset); assertFXYGeoCodingIsCopied((FXYGeoCoding)destNode.getGeoCoding(), subset); }
public void testTransferBandedGCFromProductToProduct() { final AbstractGeoCoding geoCoding1 = createFXYSumGeoCoding(); _srcBand1.setGeoCoding(geoCoding1); final AbstractGeoCoding geoCoding2 = createFXYSumGeoCoding(); _srcBand2.setGeoCoding(geoCoding2); final Scene srcScene = SceneFactory.createScene(_srcProduct); final Scene destScene = SceneFactory.createScene(_destProduct); srcScene.transferGeoCodingTo(destScene, _subsetDef); assertNotNull(_destProduct.getGeoCoding()); assertFalse(_destProduct.isUsingSingleGeoCoding()); assertNotNull(_destBand1.getGeoCoding()); assertNotNull(_destBand2.getGeoCoding()); assertTrue(_destBand1.getGeoCoding() instanceof FXYGeoCoding); assertTrue(_destBand2.getGeoCoding() instanceof FXYGeoCoding); assertNotSame(_destBand1.getGeoCoding(), geoCoding1); assertNotSame(_destBand2.getGeoCoding(), geoCoding2); }
@Test public void testCrossing180() throws Exception { final Rectangle imageBounds = new Rectangle(10, 20); srcGeoCoding = createCrsGeoCodingCross180(imageBounds); assertTrue(srcGeoCoding.isCrossingMeridianAt180()); final Band srcNode = new Band("srcDummy", ProductData.TYPE_INT8, 10, 20); srcNode.setGeoCoding(srcGeoCoding); srcScene = SceneFactory.createScene(srcNode); final ProductSubsetDef subsetDef = new ProductSubsetDef("subset"); subsetDef.setRegion(2, 2, 8, 8); subsetDef.setSubSampling(2, 2); boolean transfered = srcScene.transferGeoCodingTo(destScene, subsetDef); assertTrue(transfered); assertTrue(destScene.getGeoCoding().isCrossingMeridianAt180()); subsetDef.setRegion(2, 2, 2, 2); transfered = srcScene.transferGeoCodingTo(destScene, subsetDef); assertTrue(transfered); assertFalse(destScene.getGeoCoding().isCrossingMeridianAt180()); }
funcLat, funcLon, Datum.ITRF_97); band.setGeoCoding(gc);
public void testTransferGCFromBandToProduct() { final AbstractGeoCoding geoCoding = createFXYSumGeoCoding(); _srcBand1.setGeoCoding(geoCoding); final Scene srcScene = SceneFactory.createScene(_srcBand1); final Scene destScene = SceneFactory.createScene(_destProduct); srcScene.transferGeoCodingTo(destScene, _subsetDef); assertNotNull(_destProduct.getGeoCoding()); assertTrue(_destProduct.getGeoCoding() instanceof FXYGeoCoding); assertNotSame(_destProduct.getGeoCoding(), geoCoding); assertTrue(_destProduct.isUsingSingleGeoCoding()); assertSame(_destBand1.getGeoCoding(), _destProduct.getGeoCoding()); assertSame(_destBand2.getGeoCoding(), _destProduct.getGeoCoding()); }
public void testTransferGCFromProductToBand() { final AbstractGeoCoding geoCoding = createFXYSumGeoCoding(); _srcProduct.setGeoCoding(geoCoding); _destBand2.setGeoCoding(createFXYSumGeoCoding()); final Scene srcScene = SceneFactory.createScene(_srcProduct); final Scene destScene = SceneFactory.createScene(_destBand1); srcScene.transferGeoCodingTo(destScene, _subsetDef); assertNotNull(_destBand1.getGeoCoding()); assertNotNull(_destBand2.getGeoCoding()); assertFalse(_destProduct.isUsingSingleGeoCoding()); assertTrue(_destBand1.getGeoCoding() instanceof FXYGeoCoding); assertTrue(_destBand2.getGeoCoding() instanceof FXYGeoCoding); assertNotSame(_destBand1.getGeoCoding(), geoCoding); assertNotSame(_destBand2.getGeoCoding(), geoCoding); assertNotSame(_destBand1.getGeoCoding(), _destBand2.getGeoCoding()); }
band1.setGeoCoding(geoCoding1); band2.setGeoCoding(geoCoding2); return header + " <Coordinate_Reference_System>" + LS +
public void testTransferGeoCodingWithoutSubset() { MapGeoCoding mapGeoCoding = createIdentityMapGeoCoding(); final Band destNode = new Band("destDummy", ProductData.TYPE_INT8, 10, 20); final Band srcNode = new Band("srcDummy", ProductData.TYPE_INT8, 10, 20); srcNode.setGeoCoding(mapGeoCoding); final Scene destScene = SceneFactory.createScene(destNode); final Scene srcScene = SceneFactory.createScene(srcNode); srcScene.transferGeoCodingTo(destScene, null); assertNotSame(mapGeoCoding, destScene.getGeoCoding()); final MapInfo origMapInfo = mapGeoCoding.getMapInfo(); final MapInfo copyMapInfo = ((MapGeoCoding) destScene.getGeoCoding()).getMapInfo(); assertNotSame(origMapInfo, copyMapInfo); assertEquals(origMapInfo.getEasting(), copyMapInfo.getEasting(), 1e-6); assertEquals(origMapInfo.getNorthing(), copyMapInfo.getNorthing(), 1e-6); assertSame(origMapInfo.getDatum(), copyMapInfo.getDatum()); assertEquals(origMapInfo.getElevationModelName(), copyMapInfo.getElevationModelName()); assertEquals(origMapInfo.getMapProjection().getName(), copyMapInfo.getMapProjection().getName()); assertEquals(origMapInfo.getOrientation(), copyMapInfo.getOrientation(), 1e-6); assertEquals(origMapInfo.getPixelSizeX(), copyMapInfo.getPixelSizeX(), 1e-6); assertEquals(origMapInfo.getPixelSizeY(), copyMapInfo.getPixelSizeY(), 1e-6); assertEquals(origMapInfo.getPixelX(), copyMapInfo.getPixelY(), 1e-6); assertEquals(destScene.getRasterHeight(), copyMapInfo.getSceneHeight(), 1e-6); assertEquals(destScene.getRasterWidth(), copyMapInfo.getSceneWidth(), 1e-6); }
srcNode.setGeoCoding(mapGeoCoding); final Scene srcScene = SceneFactory.createScene(srcNode); final Band destNode = new Band("destDummy", ProductData.TYPE_INT8, 10, 20);