public int GetRasterXSize() { return getRasterXSize(); }
public int GetRasterXSize() { return getRasterXSize(); }
@Override public int getImageWidth() { return getDataset().getRasterXSize(); } }
Dimension size(Dataset dataset) { return new Dimension(dataset.getRasterXSize(), dataset.getRasterYSize()); }
/** * Fetches metadata from the given GDAL dataset. */ GridGeometry(final Dataset ds) throws IOException { if (ds == null) { throw new IOException("DataSet is closed."); } xSize = ds.getRasterXSize(); ySize = ds.getRasterYSize(); numBands = ds.getRasterCount(); final double[] gt = ds.GetGeoTransform(); gridToCRS = new AffineTransform(gt[1], gt[4], gt[2], gt[5], gt[0], gt[3]); crs = CRS.create(ds.GetProjection()); }
/** * Creates a new {@link GdalDataset} from the given file (which must be supported by GDAL). * * @param file * raster image file (format must be supported by GDAL), never <code>null</code> * @param crs * native CRS, can be <code>null</code> (unknown) * @throws UnknownCRSException * @throws IOException */ public GdalDataset( File file, ICRS crs ) throws UnknownCRSException, IOException { this.file = file.getCanonicalFile(); this.crs = crs; dataset = gdal.Open( file.getPath() ); datasetEnvelope = readEnvelope(); width = datasetEnvelope.getSpan0(); height = datasetEnvelope.getSpan1(); datasetPixelsX = dataset.getRasterXSize(); datasetPixelsY = dataset.getRasterYSize(); unitsPerPixelX = width / (double) datasetPixelsX; unitsPerPixelY = height / (double) datasetPixelsY; }
/** * Provides to increase data access performances. In many cases, the block * size for a raster band is a single line of N pixels, where N is the width * of the raster. * * The Java Advanced Imaging allows to load and manipulate data only when * they are needed (The Deferred Execution Model). This is done by working * only on tiles containing the required data. * * However, reading a big image composed of tiles having a size of Nx1 (The * most commonly used block size) would be not optimized because for each * tile, a read operation is computed (very small tiles -> very high read * operations number) * * In order to optimize data access operations, it would be better to make * tiles a little bit greater than just a single line of pixels. * * @param dataset */ private void performTileSizeTuning(Dataset dataset) { final int width = dataset.getRasterXSize(); final int height = dataset.getRasterYSize(); final Dimension imageSize = new Dimension(width, height); final Dimension tileSize = GDALUtilities.toTileSize(imageSize); setTileHeight(tileSize.height); setTileWidth(tileSize.width); }
/** * Provides to increase data access performances. In many cases, the block * size for a raster band is a single line of N pixels, where N is the width * of the raster. * * The Java Advanced Imaging allows to load and manipulate data only when * they are needed (The Deferred Execution Model). This is done by working * only on tiles containing the required data. * * However, reading a big image composed of tiles having a size of Nx1 (The * most commonly used block size) would be not optimized because for each * tile, a read operation is computed (very small tiles -> very high read * operations number) * * In order to optimize data access operations, it would be better to make * tiles a little bit greater than just a single line of pixels. * * @param dataset */ private void performTileSizeTuning(Dataset dataset) { final int width = dataset.getRasterXSize(); final int height = dataset.getRasterYSize(); final Dimension imageSize = new Dimension(width, height); final Dimension tileSize = GDALUtilities.toTileSize(imageSize); setTileHeight(tileSize.height); setTileWidth(tileSize.width); }
private static GeoCoding buildGeoCoding(Dataset gdalProduct) { String wellKnownText = gdalProduct.GetProjectionRef(); if (!StringUtils.isNullOrEmpty(wellKnownText)) { int imageWidth = gdalProduct.getRasterXSize(); int imageHeight = gdalProduct.getRasterYSize(); double[] adfGeoTransform = new double[6]; gdalProduct.GetGeoTransform(adfGeoTransform); double originX = adfGeoTransform[0]; double originY = adfGeoTransform[3]; double pixelSizeX = adfGeoTransform[1]; double pixelSizeY = (adfGeoTransform[5] > 0) ? adfGeoTransform[5] : -adfGeoTransform[5]; try { CoordinateReferenceSystem crs = CRS.parseWKT(wellKnownText); return new CrsGeoCoding(crs, imageWidth, imageHeight, originX, originY, pixelSizeX, pixelSizeY); } catch (Exception ex) { logger.log(Level.SEVERE, ex.getMessage(), ex); } } return null; }
private Envelope readEnvelope() throws UnknownCRSException, IOException { double[] geoTransform = dataset.GetGeoTransform(); int rasterXSize = dataset.getRasterXSize(); int rasterYSize = dataset.getRasterYSize(); double pixelResX = geoTransform[1]; double pixelResY = geoTransform[5]; double minX = geoTransform[0]; double maxX = minX + pixelResX * rasterXSize; double minY = geoTransform[3]; double maxY = minY + pixelResY * rasterYSize; if ( minX > maxX ) { double tmp = maxX; maxX = minX; minX = tmp; } if ( minY > maxY ) { double tmp = maxY; maxY = minY; minY = tmp; } Point min = new DefaultPoint( null, crs, null, new double[] { minX, minY } ); Point max = new DefaultPoint( null, crs, null, new double[] { maxX, maxY } ); return new DefaultEnvelope( null, crs, null, min, max ); }
int rasterXSize = gdalDataset.getRasterXSize(); int rasterYSize = gdalDataset.getRasterYSize(); double pixelResX = geoTransform[1];
private static MetadataElement buildMetadataElement(Dataset gdalProduct) { Driver hDriver = gdalProduct.GetDriver(); int imageWidth = gdalProduct.getRasterXSize(); int imageHeight = gdalProduct.getRasterYSize(); MetadataElement metadataElement = new MetadataElement("Image info");
int imageWidth = gdalDataset.getRasterXSize(); int imageHeight = gdalDataset.getRasterYSize(); String productName = inputFile.getFileName().toString();
final double x = boundingBox.getMinX(); final double width = boundingBox.getWidth(); final int imageWidth = dataset.getRasterXSize(); final double y = boundingBox.getMaxY(); final double height = boundingBox.getHeight();
width = warpedDataset.getRasterXSize(); height = warpedDataset.getRasterYSize();
setWidth(dataset.getRasterXSize()); setHeight(dataset.getRasterYSize());
setWidth(dataset.getRasterXSize()); setHeight(dataset.getRasterYSize());