Package org.geotools.coverage.grid.io

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


        try {
            String[] names = reader.getGridCoverageNames();
            assertEquals(1, names.length);
            assertEquals("NO2", names[0]);
           
            GranuleSource source = reader.getGranules("NO2", true);
            SimpleFeatureCollection granules = source.getGranules(Query.ALL);
            assertEquals(1, granules.size());
           
            assertTrue(CRS.equalsIgnoreMetadata(DefaultGeographicCRS.WGS84, reader.getCoordinateReferenceSystem()));
            GeneralEnvelope envelope = reader.getOriginalEnvelope("NO2");
            assertEquals(-360, envelope.getMinimum(0), 0d);
View Full Code Here


        try {
            String[] names = reader.getGridCoverageNames();
            assertEquals(1, names.length);
            assertEquals("NO2", names[0]);

            GranuleSource source = reader.getGranules("NO2", true);
            SimpleFeatureCollection granules = source.getGranules(Query.ALL);
            assertEquals(1, granules.size());
            Properties props = new Properties();
            final File file = new File(mosaic, "nc_harvestRP.properties");
            inStream = new FileInputStream(file);
            props.load(inStream);
View Full Code Here

            String[] names = reader.getGridCoverageNames();
            assertEquals(2, names.length);
            assertEquals("NO2", names[0]);
            assertEquals("BrO", names[1]);
           
            GranuleSource source = reader.getGranules("NO2", true);
            SimpleFeatureCollection granules = source.getGranules(Query.ALL);
            assertEquals(1, granules.size());
           
            assertTrue(CRS.equalsIgnoreMetadata(DefaultGeographicCRS.WGS84, reader.getCoordinateReferenceSystem("NO2")));
            GeneralEnvelope envelope = reader.getOriginalEnvelope("NO2");
            assertEquals(-360, envelope.getMinimum(0), 0d);
View Full Code Here

            assertEquals("2004-02-01T00:00:00.000Z,2004-05-01T00:00:00.000Z",
                    reader.getMetadataValue(metadataNames[0]));

            // check the granule catalog
            String coverageName = reader.getGridCoverageNames()[0];
            GranuleSource granules = reader.getGranules(coverageName, true);
            assertEquals(2, granules.getCount(Query.ALL));
            Query q = new Query(Query.ALL);
            SimpleFeatureIterator fi = granules.getGranules(q).features();
            try {
                assertTrue(fi.hasNext());
                SimpleFeature f = fi.next();
                assertEquals("world.200402.3x5400x2700.tiff", f.getAttribute("location"));
                assertEquals("2004-02-01T00:00:00.000Z",
View Full Code Here

        private List<CoverageGranules> getCoverageGranules(DescribeEOCoverageSetType dcs,
                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
                    if(!collection.isEmpty()) {
                        List<DimensionDescriptor> descriptors = getActiveDimensionDescriptor(ci, reader, name);
                        CoverageGranules granules = new CoverageGranules(ci, name, reader, collection, descriptors);
                        results.add(granules);
                    }
                } catch (IOException e) {
                    throw new WCS20Exception("Failed to load the coverage granules for covearge "
                            + ci.prefixedName(), e);
                } finally {
                    try {
                        if (source != null) {
                            source.dispose();
                        }
                    } catch (IOException e) {
                        LOGGER.log(Level.FINE, "Failed to dispose granule source", e);
                    }
                }
View Full Code Here

    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

        // 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();

            // Set sorting order (default Policy is using Max... therefore Descending order)
            sortBy(query, timeDimension, elevationDimension);
            query.setFilter(finalFilter);

            // Returning a single feature matching the filtering
            query.setMaxFeatures(1);

            // Get granules from query
            SimpleFeatureCollection granulesCollection = source.getGranules(query);
            SimpleFeatureIterator features = granulesCollection.features();
            try {
                if (features.hasNext()) {
                    final SimpleFeature feature = features.next();
View Full Code Here

                    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) {
            throw new ServiceException("Could not find dimension " + dimensionName
                    + " in coverage reader backing " + resource.prefixedName());
View Full Code Here

        }

        // Getting the granule source
        final String coverageName = getCoverageName();
       
        final GranuleSource source = structuredReader.getGranules(coverageName, true);
        if (source == null) {
            throw new IllegalArgumentException("No granule source available for that coverageName");
        }

        // Preparing a query containing all the specified dimensions.
        // This will allow to get back only the granules respecting the specified request
        final Query query = prepareDimensionsQuery(structuredReader, coverageName, gridCoverageRequest, source);

        // Getting the granules for that query; Loop over the granules to create subRequest with single elements dimensions sets
        final SimpleFeatureCollection collection = source.getGranules(query);
        final SimpleFeatureIterator iterator = collection.features();
        final List<GridCoverageRequest> requests = new ArrayList<GridCoverageRequest>();
        try {
            while (iterator.hasNext()) {
                final SimpleFeature feature = iterator.next();
View Full Code Here

            this.readOnly = readOnly;
            this.schema = buildSchema();
        }

        private SimpleFeatureType buildSchema() throws IOException {
            GranuleSource source = reader.getGranules(name, readOnly);
            SimpleFeatureType inputSchema = source.getSchema();
            List<AttributeDescriptor> descriptors = inputSchema.getAttributeDescriptors();
            StringBuilder builder = new StringBuilder();
            for (AttributeDescriptor descriptor : descriptors) {

                // Avoid exposing ImageIndex
View Full Code Here

TOP

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

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.