Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // get a reader
- final MrSIDReader reader = new MrSIDReader(file);
- //
- // read once
- //
- GridCoverage2D gc = (GridCoverage2D) reader.read(null);
- //
- // read again with subsampling and crop
- //
- final int originalW = gc.getRenderedImage().getWidth();
- final int originalH = gc.getRenderedImage().getHeight();
- final Rectangle range = ((GridEnvelope2D)reader.getOriginalGridRange());
- final GeneralEnvelope originalEnvelope = reader.getOriginalEnvelope();
- final GeneralEnvelope reducedEnvelope = new GeneralEnvelope(new double[] {
- originalEnvelope.getLowerCorner().getOrdinate(0),
- originalEnvelope.getLowerCorner().getOrdinate(1)},
- new double[] { originalEnvelope.getMedian().getOrdinate(0),
- originalEnvelope.getMedian().getOrdinate(1)});
- reducedEnvelope.setCoordinateReferenceSystem(reader.getCrs());
- final ParameterValue gg = (ParameterValue) ((AbstractGridFormat) reader
- .getFormat()).READ_GRIDGEOMETRY2D.createValue();
- gg.setValue(new GridGeometry2D(new GridEnvelope2D(new Rectangle(0, 0,
- (int) (range.width / 2.0),
- (int) (range.height / 2.0))), reducedEnvelope));
- gc = (GridCoverage2D) reader.read(new GeneralParameterValue[] { gg });
- Assert.assertNotNull(gc);
- // NOTE: in some cases might be too restrictive
- Assert.assertTrue(reducedEnvelope.equals(gc.getEnvelope(), XAffineTransform
- .getScale(((AffineTransform) ((GridGeometry2D) gc
- .getGridGeometry()).getGridToCRS2D())) / 2, true));
- // this should be fine since we give 1 pixel tolerance
- Assert.assertEquals(originalW / 2.0 , gc.getRenderedImage()
- .getWidth(), 1);
- Assert.assertEquals(originalH / 2.0 , gc.getRenderedImage()
- .getHeight(), 1);
- forceDataLoading(gc);
- // /////////////////////////////////////////////////////////////////////
- //
- // Read ignoring overviews with subsampling and crop, using Jai,
- // multithreading and customized tilesize
- //
- // /////////////////////////////////////////////////////////////////////
- final ParameterValue policy = (ParameterValue) ((AbstractGridFormat) reader
- .getFormat()).OVERVIEW_POLICY.createValue();
- policy.setValue(OverviewPolicy.IGNORE);
- // //
- //
- // Enable multithreading read
- //
- // //
- final ParameterValue mt = (ParameterValue) ((BaseGDALGridFormat) reader
- .getFormat()).USE_MULTITHREADING.createValue();
- mt.setValue(true);
- // //
- //
- // Customizing Tile Size
- //
- // //
- final ParameterValue tilesize = (ParameterValue) ((BaseGDALGridFormat) reader
- .getFormat()).SUGGESTED_TILE_SIZE.createValue();
- tilesize.setValue("512,512");
- // //
- //
- // Setting read type: use JAI ImageRead
- //
- // //
- final ParameterValue useJaiRead = (ParameterValue) ((BaseGDALGridFormat) reader
- .getFormat()).USE_JAI_IMAGEREAD.createValue();
- useJaiRead.setValue(true);
- gc = (GridCoverage2D) reader.read(new GeneralParameterValue[] { gg,
- policy, mt, tilesize, useJaiRead });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement