/** * Returns the factory to use for creating new {@link GridCoverage2D} objects. * * @since 2.2 */ protected static GridCoverageFactory getFactory(final Hints hints) { return CoverageFactoryFinder.getGridCoverageFactory(hints); } }
CoverageFactoryFinder.getGridCoverageFactory(defHints));
this.coverageFactory = CoverageFactoryFinder.getGridCoverageFactory(this.hints);
/** Creates a builder initialized to default values and factory. */ public GridCoverageBuilder() { this(CoverageFactoryFinder.getGridCoverageFactory(GeoTools.getDefaultHints())); }
/** * Check whether this source GridCoverage comes with a {@link Compositing} object which need to * be applied. */ private GridCoverage2D lookForCompositing(GridCoverage2D source) { Object compositing = source.getProperty(KEY_COMPOSITING); if (compositing != null && compositing instanceof Compositing) { return ((Compositing) compositing) .composeGridCoverage( source, CoverageFactoryFinder.getGridCoverageFactory(hints)); } return source; } }
public GeoPackageReader(Object source, Hints hints) throws IOException { coverageFactory = CoverageFactoryFinder.getGridCoverageFactory(this.hints); sourceFile = GeoPackageFormat.getFileFromSource(source); file = new GeoPackage(sourceFile, null, null, true); for (TileEntry tile : file.tiles()) { tiles.put(tile.getTableName(), tile); } // have a sane default when hit with no name, useful in particular // when the geopackage only has one coverage coverageName = tiles.keySet().iterator().next(); // add the overview count and allocate the final List<TileMatrix> tileMatricies = tiles.get(coverageName).getTileMatricies(); this.numOverviews = tileMatricies.size() - 1; overViewResolutions = new double[numOverviews][2]; // first tile matrix is the one with the lowest resolution, last one is native for (int i = 0; i < tileMatricies.size() - 1; i++) { final TileMatrix matrix = tileMatricies.get(i); overViewResolutions[tileMatricies.size() - i - 2] = new double[] {matrix.getXPixelSize(), matrix.getYPixelSize()}; } }
private GridCoverage2D createCoverage() { GridCoverageFactory gcf = CoverageFactoryFinder.getGridCoverageFactory(null); float[][] matrix = new float[WIDTH][WIDTH]; for (int i = 0; i < WIDTH; i++) { for (int j = 0; j < WIDTH; j++) { matrix[i][j] = i + j; } } return gcf.create("coverage", matrix, env); }
/** * Default constructor that gives users the possibility * * @param maxSources maximum number of sources allowed for this node. * @param hints instance of {@link Hints} class to control creation of internal factories. It * can be <code>null</code>. * @param description * @param name */ public BaseCoverageProcessingNode( int maxSources, Hints hints, InternationalString name, InternationalString description) { ensureNotNull(name, "CoverageProcessingNode name "); ensureNotNull(description, "CoverageProcessingNode descripion "); maximumNumberOfSources = maxSources; this.hints = hints != null ? (Hints) hints.clone() : null; this.coverageFactory = CoverageFactoryFinder.getGridCoverageFactory(hints); this.name = name; this.description = description; }
public MBTilesReader(Object source, Hints hints) throws IOException { sourceFile = MBTilesFormat.getFileFromSource(source); MBTilesFile file = new MBTilesFile(sourceFile); metadata = file.loadMetaData(); try { bounds = ReferencedEnvelope.create(metadata.getBounds(), WGS_84) .transform(SPHERICAL_MERCATOR, true); } catch (Exception e) { bounds = null; } originalEnvelope = new GeneralEnvelope(bounds == null ? WORLD_ENVELOPE : bounds); long maxZoom; try { maxZoom = file.maxZoom(); } catch (SQLException e) { throw new IOException(e); } long size = Math.round(Math.pow(ZOOM_LEVEL_BASE, maxZoom)) * DEFAULT_TILE_SIZE; highestRes = new double[] {WORLD_ENVELOPE.getSpan(0) / size, WORLD_ENVELOPE.getSpan(1) / size}; originalGridRange = new GridEnvelope2D(new Rectangle((int) size, (int) size)); coverageFactory = CoverageFactoryFinder.getGridCoverageFactory(this.hints); crs = SPHERICAL_MERCATOR; }
CoverageFactoryFinder.getGridCoverageFactory(GeoTools.getDefaultHints());
@Override public GridCoverage2D read(GeneralParameterValue[] parameters) throws IllegalArgumentException, IOException { assertTrue( Arrays.stream(parameters) .anyMatch( p -> "Bands".equals(p.getDescriptor().getName().toString()) && Arrays.equals( expectedBands, (int[]) ((ParameterValue) p) .getValue()))); // Create a solid color single band coverage BufferedImage bi = new BufferedImage(100, 100, BufferedImage.TYPE_BYTE_GRAY); Graphics2D graphics = bi.createGraphics(); graphics.setColor(Color.WHITE); graphics.fillRect(0, 0, bi.getWidth(), bi.getHeight()); graphics.dispose(); GridCoverage2D coverage = CoverageFactoryFinder.getGridCoverageFactory(null) .create("test", bi, getOriginalEnvelope()); return coverage; } }
@Override public GridCoverage2D read(GeneralParameterValue[] parameters) throws IllegalArgumentException, IOException { for (GeneralParameterValue parameter : parameters) { if ("Bands".equals(parameter.getDescriptor().getName().toString())) { assertTrue( Arrays.equals( expectedBands, (int[]) ((ParameterValue) parameter).getValue())); } } BufferedImage bi = image; GridCoverage2D coverage = CoverageFactoryFinder.getGridCoverageFactory(null) .create("test", bi, getOriginalEnvelope()); return coverage; } }
protected GridCoverage2D execute() { return CoverageFactoryFinder.getGridCoverageFactory(null) .create( "name", PlanarImage.wrapRenderedImage( RasterSymbolizerTest.getSynthetic(Double.NaN)), new GeneralEnvelope( new double[] {-90, -180}, new double[] {90, 180}), new GridSampleDimension[] { new GridSampleDimension( "sd", new Category[] { new Category("", Color.BLACK, 0) }, null) }, null, null); } };
protected GridCoverage2D execute() { return CoverageFactoryFinder.getGridCoverageFactory(null) .create( "name", PlanarImage.wrapRenderedImage( RasterSymbolizerTest.getSynthetic(Double.NaN)), new GeneralEnvelope( new double[] {-90, -180}, new double[] {90, 180}), new GridSampleDimension[] { new GridSampleDimension( "sd", new Category[] { new Category("", Color.BLACK, 0) }, null) }, null, null); } };
@org.junit.Test public void colorMap() throws IOException, TransformerException { // get a coverage GridCoverage2D gc = CoverageFactoryFinder.getGridCoverageFactory(null) .create( "name", PlanarImage.wrapRenderedImage(getSynthetic(Double.NaN)), new GeneralEnvelope( new double[] {-90, -180}, new double[] {90, 180}), new GridSampleDimension[] { new GridSampleDimension( "sd", new Category[] {new Category("", Color.BLACK, 0)}, null) }, null, null); testColorMap(gc); }
@Override public GridCoverage2D read(GeneralParameterValue[] parameters) throws IOException { GridCoverage2D originalCoverage = super.read(parameters); RenderedImage source = new ImageWorker(originalCoverage.getRenderedImage()) .format(DataBuffer.TYPE_USHORT) .getRenderedImage(); TiledImage shortImage = new TiledImage( source.getMinX(), source.getMinY(), source.getWidth(), source.getHeight(), source.getTileGridXOffset(), source.getTileGridYOffset(), source.getSampleModel(), null); shortImage.set(source); // force color model to be null, this also occurs in real cases GridCoverage2D coverage = CoverageFactoryFinder.getGridCoverageFactory(null) .create( originalCoverage.getName(), shortImage, originalCoverage.getEnvelope2D()); return coverage; } };
@Before public void setUp() throws Exception { // get a coverage final GridCoverage2D gc = CoverageFactoryFinder.getGridCoverageFactory(null) .create( "name", PlanarImage.wrapRenderedImage( RasterSymbolizerTest.getSynthetic(Double.NaN)), new GeneralEnvelope( new double[] {-90, -180}, new double[] {90, 180}), new GridSampleDimension[] { new GridSampleDimension( "sd", new Category[] {new Category("", Color.BLACK, 0)}, null) }, null, null); root1 = new RootNode(gc); root2 = new RootNode(gc); root3 = new RootNode(gc, null); }
@org.junit.Test public void demEmptyRange() throws IOException, TransformerException { // An SLD file where two entries have the same value //// java.net.URL surl = TestData.url(this, "dem_emptyRange.sld"); SLDParser stylereader = new SLDParser(sf, surl); StyledLayerDescriptor sld = stylereader.parseSLD(); // get a coverage GeneralEnvelope envelope = new GeneralEnvelope(new double[] {-180, -90}, new double[] {180, 90}); envelope.setCoordinateReferenceSystem(DefaultGeographicCRS.WGS84); GridCoverage2D gc = CoverageFactoryFinder.getGridCoverageFactory(null) .create( "name", JAI.create("ImageRead", TestData.file(this, "smalldem.tif")), envelope, new GridSampleDimension[] {new GridSampleDimension("dem")}, null, null); SubchainStyleVisitorCoverageProcessingAdapter rsh = new RasterSymbolizerHelper(gc, null); final RasterSymbolizer rs = extractRasterSymbolizer(sld); // used to blow up here with an exception rsh.visit(rs); testRasterSymbolizerHelper(rsh); }
@org.junit.Test public void demColorJump() throws IOException, TransformerException { // An SLD file where two entries have the same value //// java.net.URL surl = TestData.url(this, "dem_colorJump.sld"); SLDParser stylereader = new SLDParser(sf, surl); StyledLayerDescriptor sld = stylereader.parseSLD(); // get a coverage GeneralEnvelope envelope = new GeneralEnvelope(new double[] {-180, -90}, new double[] {180, 90}); envelope.setCoordinateReferenceSystem(DefaultGeographicCRS.WGS84); GridCoverage2D gc = CoverageFactoryFinder.getGridCoverageFactory(null) .create( "name", JAI.create("ImageRead", TestData.file(this, "smalldem.tif")), envelope, new GridSampleDimension[] {new GridSampleDimension("dem")}, null, null); SubchainStyleVisitorCoverageProcessingAdapter rsh = new RasterSymbolizerHelper(gc, null); final RasterSymbolizer rs = extractRasterSymbolizer(sld); // used to blow up here with an exception rsh.visit(rs); testRasterSymbolizerHelper(rsh); }
CoverageFactoryFinder.getGridCoverageFactory(null) .create( "name",