Package org.geotools.coverage.grid.io

Examples of org.geotools.coverage.grid.io.StructuredGridCoverage2DReader


            if (format != null) {
                GridCoverage2DReader coverageReader = null;
                try {
                    coverageReader = (GridCoverage2DReader) format.getReader(rasterPath, hints);
                    if (coverageReader instanceof StructuredGridCoverage2DReader) {
                        StructuredGridCoverage2DReader reader = (StructuredGridCoverage2DReader) coverageReader;
                        if (delete) {
                            reader.delete(deleteData);
                        } else {
                            reader.removeCoverage(coverageName, false);
                        }
                    } else if (deleteData) {
                        final boolean removed = FileUtils.deleteQuietly(DataUtilities.urlToFile(rasterPath));
                    }
                } finally {
View Full Code Here


        // now start the test
        final AbstractGridFormat format = TestUtils.getFormat(timeElevURL);
        assertNotNull(format);

        StructuredGridCoverage2DReader reader = null;
        try {

            // the harvest put the file in the same coverage
            reader = new ImageMosaicReader(timeElevURL);

            // delete all files associated to that mosaic (granules, auxiliary files, DB entries, ...)
            File[] files = workDir.listFiles();
            assertEquals(15, files.length);
            reader.delete(true);
            files = workDir.listFiles();
            assertEquals(0, files.length);
        } finally {
            reader.dispose();
        }
    }
View Full Code Here

        // now start the test
        final AbstractGridFormat format = TestUtils.getFormat(timeElevURL);
        assertNotNull(format);

        StructuredGridCoverage2DReader reader = null;
        try {

            reader = new ImageMosaicReader(timeElevURL);

            // delete metadata only (auxiliary files, DB entries, ...)
            File[] files = workDir.listFiles();
            assertEquals(15, files.length);
            reader.delete(false);
            files = workDir.listFiles();
            assertEquals(4, files.length);
        } finally {
            reader.dispose();
        }
    }
View Full Code Here

                List<CoverageInfo> coverages) {
            List<CoverageGranules> results = new ArrayList<CoverageGranules>();
            for (CoverageInfo ci : coverages) {
                GranuleSource source = null;
                try {
                    StructuredGridCoverage2DReader reader = (StructuredGridCoverage2DReader) ci
                            .getGridCoverageReader(null, GeoTools.getDefaultHints());
                    String name = codec.getCoverageName(ci);
                    source = reader.getGranules(name, true);

                    Query q = buildQueryFromDimensionTrims(dcs, reader, name);
                    SimpleFeatureCollection collection = source.getGranules(q);

                    // only report in output coverages that have at least one matched granule
View Full Code Here

        return operation;
    }

    private boolean readerHasGranule(CoverageInfo ci, Filter granuleFilter) {
        try {
            StructuredGridCoverage2DReader reader = (StructuredGridCoverage2DReader) ci.getGridCoverageReader(null, null);
            String coverageName = codec.getCoverageName(ci);
            GranuleSource source = reader.getGranules(coverageName, true);
            return source.getCount(new Query(coverageName, granuleFilter)) > 0;           
        } catch(IOException e) {
            throw new WCS20Exception("Could not determine if the coverage has the specified granule", e);
        }
    }
View Full Code Here

    }

    @Override
    public GridCoverageReader getGridCoverageReader(ProgressListener listener, Hints hints)
            throws IOException {
        StructuredGridCoverage2DReader reader = (StructuredGridCoverage2DReader) super.getGridCoverageReader(listener, hints);
        return new SingleGranuleGridCoverageReader(reader, feature, dimensionDescriptors);
    }
View Full Code Here

        Filter originalFilter = subsettingRequest.getFilter();

        final int specifiedDimensionsSubset = dimensionsSubset != null ? dimensionsSubset.size() : 0;

        // Casting to StructuredGridCoverage2DReader
        final StructuredGridCoverage2DReader structuredReader = (StructuredGridCoverage2DReader) reader;

        // Getting dimension descriptors
        final List<DimensionDescriptor> dimensionDescriptors = structuredReader.getDimensionDescriptors(coverageName);
        DimensionDescriptor timeDimension = null;
        DimensionDescriptor elevationDimension = null;
        final List<DimensionDescriptor> customDimensions = new ArrayList<DimensionDescriptor>();
        int dimensions = 0;

        // Collect dimension Descriptor info
        for (DimensionDescriptor dimensionDescriptor: dimensionDescriptors) {
            if (dimensionDescriptor.getName().equalsIgnoreCase(ResourceInfo.TIME)) {
                timeDimension = dimensionDescriptor;
            } else if (dimensionDescriptor.getName().equalsIgnoreCase(ResourceInfo.ELEVATION)) {
                elevationDimension = dimensionDescriptor;
            } else {
                customDimensions.add(dimensionDescriptor);
                dimensions++;
            }
        }

        final boolean defaultTimeNeeded = temporalSubset == null && timeDimension != null;
        final boolean defaultElevationNeeded = elevationSubset == null && elevationDimension != null;
        final boolean defaultCustomDimensionsNeeded = dimensions != specifiedDimensionsSubset;

        // Note that only Slicing is currently supported;
        if (defaultTimeNeeded || defaultElevationNeeded || defaultCustomDimensionsNeeded) {

            // Get granules source
            GranuleSource source = structuredReader.getGranules(coverageName, true);

            // Set filtering query matching the specified subsets.
            Filter finalFilter = setFilters(originalFilter, temporalSubset, elevationSubset, envelopeSubset, dimensionsSubset, structuredReader, timeDimension, elevationDimension, customDimensions);
            Query query = new Query();
View Full Code Here

                    "Cannot perform dynaminc domain restriction unless the reader is a structured one");
        }

        // we have a descriptor, now we need to find the association between the exposed
        // dimension names and the granule source attributes
        StructuredGridCoverage2DReader reader = (StructuredGridCoverage2DReader) genericReader;

        String coverageName = resource.getNativeCoverageName();
        if (coverageName == null) {
            coverageName = reader.getGridCoverageNames()[0];
        }
        Map<String, DimensionDescriptor> descriptors = getDimensionDescriptors(reader, coverageName);
        DimensionFilterBuilder builder = new DimensionFilterBuilder(ff);
        for (Map.Entry<String, Object> entry : restrictions.entrySet()) {
            String name = entry.getKey();
            Object value = entry.getValue();
            List<Object> values = wrapIntoList(value);

            DimensionDescriptor descriptor = descriptors.get(name);
            if (descriptor == null) {
                throw new ServiceException("Could not find dimension " + name
                        + " in coverage reader backing " + resource.prefixedName());
            }

            builder.appendFilters(descriptor.getStartAttribute(), descriptor.getEndAttribute(),
                    values);
        }
        Filter domainRestriction = builder.getFilter();

        // get the restricted domain
        GranuleSource granules = reader.getGranules(coverageName, true);
        Query q = new Query(granules.getSchema().getTypeName(), domainRestriction);
        SimpleFeatureCollection fc = granules.getGranules(q);

        DimensionDescriptor dd = descriptors.get(dimensionName);
        if (dd == null) {
View Full Code Here

        assertEquals(groupName + "_BROWSE", browseLayer.getName());
        assertEquals(EoLayerType.BROWSE_IMAGE.name(), browseLayer.getMetadata().get(EoLayerType.KEY));  
        checkTimeDimension(browseLayer);
       
        CoverageInfo coverage = (CoverageInfo) browseLayer.getResource();
        StructuredGridCoverage2DReader reader = (StructuredGridCoverage2DReader) coverage.getGridCoverageReader(null, null);
        LayerInfo layer = builder.createEoOutlineLayer(getUrl("EO_Nat"), ws, groupName, coverage.getNativeCoverageName(), reader);
        assertNotNull(layer);
        assertEquals(groupName + "_outlines", layer.getName());
        checkTimeDimension(layer);
       
View Full Code Here

                parametersUrl);
        LayerInfo masksLayer = createEoMasksLayer(ws, groupName, masksName, masksUrl);

        LayerInfo outlineLayer;
        try {
            StructuredGridCoverage2DReader reader = (StructuredGridCoverage2DReader) ((CoverageInfo) bandsLayer.getResource()).getGridCoverageReader(null, null);
            outlineLayer = createEoOutlineLayer(bandsUrl, ws, groupName, null, reader);
        } catch (Exception e) {
            throw new IllegalArgumentException(
                    "The Outline layer could not be created. Failure message: " + e.getMessage(), e);
        }
View Full Code Here

TOP

Related Classes of org.geotools.coverage.grid.io.StructuredGridCoverage2DReader

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.