private void instantiate( int targetColumns, int targetRows, Envelope rasterEnvelope, RasterGeoReference geoRef, File gridFile, RasterDataInfo dataInfo ) { synchronized ( LOCK ) { if ( rasterEnvelope == null ) { throw new NullPointerException( "The grid writer needs an envelope to work with." ); } if ( geoRef == null ) { throw new NullPointerException( "The grid writer needs a raster georeference to work with." ); } this.envelope = geoRef.relocateEnvelope( OriginLocation.OUTER, rasterEnvelope ); this.columns = targetColumns; this.rows = targetRows; this.geoRef = geoRef.createRelocatedReference( OriginLocation.OUTER ); int[] rasterCoordinate = this.geoRef.getSize( this.envelope ); this.gridFile = gridFile; // if ( this.gridFile != null && !this.gridFile.exists() ) { // this.gridFile.createNewFile(); // } this.dataInfo = dataInfo; this.tilesInFile = columns * rows; this.tileRasterWidth = Rasters.calcTileSize( rasterCoordinate[0], columns ); this.tileRasterHeight = Rasters.calcTileSize( rasterCoordinate[1], rows ); // this tile data does not need to be cached. updateForRasterSize(); } }
Envelope renv = raster.getRasterReference().relocateEnvelope( OriginLocation.OUTER, raster.getEnvelope() );
if ( origReader != null ) { Envelope env = r.getRasterReference().relocateEnvelope( OriginLocation.OUTER, r.getEnvelope() ); AbstractRaster subRaster = filteredRaster.getSubRaster( env ); String id = origReader.getDataLocationId();
throws IOException { Envelope env = raster.getRasterReference().relocateEnvelope( OriginLocation.OUTER, raster.getEnvelope() );
/** * Return the bounding geometry of a raster as a polygon (but is actually a rectangle). * * @param raster * @return bounding polygon */ public static Polygon createPolygonGeometry( AbstractRaster raster ) { ICRS crs = raster.getCoordinateSystem(); GeometryFactory fac = new GeometryFactory(); Envelope env = raster.getEnvelope(); env = raster.getRasterReference().relocateEnvelope( OriginLocation.OUTER, env ); Point pmin = env.getMin(); Point pmax = env.getMax(); Point p1 = fac.createPoint( null, pmin.get0(), pmin.get1(), crs ); Point p3 = fac.createPoint( null, pmax.get0(), pmax.get1(), crs ); Point p2 = fac.createPoint( null, p1.get0(), p3.get1(), crs ); Point p4 = fac.createPoint( null, p3.get0(), p1.get1(), crs ); Point p5 = fac.createPoint( null, p1.get0(), p1.get1(), crs ); Point[] points = { p1, p2, p3, p4, p5 }; // (asList(points)); LinearRing ring = fac.createLinearRing( null, crs, new PointsList( asList( points ) ) ); Polygon poly = fac.createPolygon( null, crs, ring, null ); return poly; }