Package org.geotools.coverage.io.range

Examples of org.geotools.coverage.io.range.RangeType


        // assemble granules
        prepareParams();
        String timeFilterAttribute = null;
        String elevationFilterAttribute = null;
        CoverageReadRequest readRequest = (CoverageReadRequest) getRequest();
        RangeType rangeType = request.source.getRangeType(null);
        List<DimensionDescriptor> dimensionDescriptors = request.source.getDimensionDescriptors();
        for (DimensionDescriptor dimensionDescriptor : dimensionDescriptors) {
            if (dimensionDescriptor.getName().equalsIgnoreCase(NetCDFUtilities.ELEVATION_DIM)) {
                // TODO Update this with ranged attributes
                elevationFilterAttribute = dimensionDescriptor.getStartAttribute();
            } else if (dimensionDescriptor.getName().equalsIgnoreCase(NetCDFUtilities.TIME_DIM)) {
                // TODO Update this with ranged attributes
                timeFilterAttribute = dimensionDescriptor.getStartAttribute();
            }
        }

        Set<DateRange> temporalSubset = readRequest.getTemporalSubset();
        Set<NumberRange<Double>> verticalSubset = readRequest.getVerticalSubset();
        RangeType requestedRange = readRequest.getRangeSubset();
        Set<FieldType> fieldTypes = requestedRange.getFieldTypes();

        //
        // adding GridCoverages to the results list
        //
        // //
View Full Code Here


        // //
        //
        // Checking RangeSubset setting
        //
        // //
        RangeType range = request.getRangeSubset();
        if (range == null) {
            request.setRangeSubset(source.getRangeType(null));
        }
    }
View Full Code Here

        if (description != null && !description.isEmpty()) {
            desc = new SimpleInternationalString(description);
        }
        final FieldType fieldType = new DefaultFieldType(new NameImpl(getName()), desc, sampleDims);
        sb.append(description != null ? description.toString() + "," : "");
        final RangeType range = new DefaultRangeType(getName(), description, fieldType);
        this.setRangeType(range);
    }
View Full Code Here

        assertSame(name, fieldType.getName());
        assertSame(description, fieldType.getDescription());
        assertTrue(fieldType.getSampleDimensions().contains(sampleDim));
       
        // Creation of a RangeType
        RangeType rangeType = new DefaultRangeType("test", "test", fieldType);
       
        assertTrue(rangeType.getName().equals(name));
        assertTrue(description.compareTo(rangeType.getDescription()) == 0);
        assertEquals(1, rangeType.getNumFieldTypes());
        assertSame(fieldType, rangeType.getFieldType("test"));
       
        Set<Name> names = rangeType.getFieldTypeNames();
        assertNotNull(names);
        assertTrue(names.size() == 1);
        assertTrue(names.contains(name));
       
        Set<FieldType> fieldTypes = rangeType.getFieldTypes();
        assertNotNull(fieldTypes);
        assertTrue(fieldTypes.size() == 1);
        assertTrue(fieldTypes.contains(fieldType));
        assertTrue(rangeType.toString().contains(fieldType.toString()));
    }
View Full Code Here

                    LOGGER.info(buf.toString());
                  }
                 
                 
                  // RANGE TYPE
                  RangeType range = gridSource.getRangeType(null);
  //
                  CoverageReadRequest readRequest = new CoverageReadRequest();
                  // //
                  //
                  // Setting up a limited range for the request.
                  //
                  // //
                  Iterator<FieldType> ftIterator = range.getFieldTypes().iterator();
                  HashSet<FieldType> fieldSet = new HashSet<FieldType>();
                  FieldType ft = null;
                  while (ftIterator.hasNext()) {
                      ft = ftIterator.next();
                      if (ft != null) {
                          fieldSet.add(ft);
                      }
                      break;
                  }
                  RangeType rangeSubset = new DefaultRangeType(range.getName(), range.getDescription(), fieldSet);
                  readRequest.setRangeSubset(rangeSubset);
  //                LinkedHashSet<Envelope> requestedVerticalSubset = new LinkedHashSet<Envelope>();
  //                final int numLevels = verticalDomain.size();
  //                final Iterator<Envelope> iterator = verticalDomain.iterator();
  //                if (!isExtensiveTest) {
View Full Code Here

        checkRequest(request);
        final BoundingBox requestedBoundingBox = request.getGeographicArea();
        final Rectangle requestedRasterArea = request.getRasterArea();
        final Set<TemporalGeometricPrimitive> temporalSubset = request.getTemporalSubset();
        final Set<NumberRange<Double>> verticalSubset = request.getVerticalSubset();
        final RangeType range = request.getRangeSubset();
        final Set<FieldType> fieldTypes = range.getFieldTypes();

        final boolean useJAI = false;

        final CoverageResponse response = new CoverageResponse();
        response.setRequest(request);

        final Rectangle sourceRasterRegion = new Rectangle();
        GeneralEnvelope adjustedRequestedEnvelope2D;
        final GeneralEnvelope requestedEnvelope2D = new GeneralEnvelope(requestedBoundingBox);
        final MathTransform2D grid2WorldTransform = request.getGridToWorldTransform();
        final ImageReadParam imageReadParam = new ImageReadParam();
        try {
            // //
            //
            // Set envelope and source region
            //
            // //
            adjustedRequestedEnvelope2D = Utilities.evaluateRequestedParams(
                    access.gridGeometry2DMap.get(this.name).getGridRange(),
                    access.baseEnvelope2DMap.get(this.name),
                    access.spatialReferenceSystem2DMap.get(this.name),
                    access.raster2ModelMap.get(this.name), requestedEnvelope2D,
                    sourceRasterRegion, requestedRasterArea,
                    grid2WorldTransform, access.wgs84BaseEnvelope2DMap.get(this.name));

            // //
            //
            // Set specific imageIO parameters: type of read operation,
            // imageReadParams
            //
            // //

            if (adjustedRequestedEnvelope2D != null) {
                final GeneralEnvelope req = (adjustedRequestedEnvelope2D.isEmpty()) ? requestedEnvelope2D
                        : adjustedRequestedEnvelope2D;
                Utilities.setReadParameters(null /* OverviewPolicy */,
                        imageReadParam, req, requestedRasterArea,
                        access.highestResMap.get(this.name),
                        access.gridGeometry2DMap.get(this.name).getGridRange(),
                        PixelInCell.CELL_CORNER);
            }
        } catch (IOException e) {
            LOGGER.log(Level.SEVERE, e.getLocalizedMessage(), e);
            adjustedRequestedEnvelope2D = null;
        } catch (TransformException e) {
            LOGGER.log(Level.SEVERE, e.getLocalizedMessage(), e);
            adjustedRequestedEnvelope2D = null;
        }
        if (adjustedRequestedEnvelope2D != null && sourceRasterRegion != null && !sourceRasterRegion.isEmpty()) {
            imageReadParam.setSourceRegion(sourceRasterRegion);
        }

        // A transformation is requested in case the requested envelope has been
        // adjusted
        final boolean needTransformation = (adjustedRequestedEnvelope2D != null && !adjustedRequestedEnvelope2D.isEmpty());

        // In case the adjusted requested envelope is null, no intersection
        // between requested envelope and base envelope have been found. Hence,
        // no valid coverage will be loaded and the request should be considered
        // as producing an empty result.
        final boolean emptyRequest = adjustedRequestedEnvelope2D == null;

        // //
        //
        // adding GridCoverages to the results list
        //
        // //
        for (FieldType fieldType : fieldTypes) {
            final Name name = fieldType.getName();

            // TODO: Fix this leveraging on the proper Band
            Set<SampleDimension> sampleDims = fieldType.getSampleDimensions();
            if (sampleDims == null || sampleDims.isEmpty()) {
                final RangeType innerRange = access.rangeMap.get(this.name);
                if (innerRange != null) {
                    final FieldType ft = innerRange.getFieldType(name.getLocalPart());
                    if (ft != null)
                        sampleDims = ft.getSampleDimensions();
                }

            }
View Full Code Here

        // //
        //
        // Checking RangeSubset setting
        //
        // //
        RangeType range = request.getRangeSubset();
        if (range == null)
            request.setRangeSubset(access.rangeMap.get(this.name));
    }
View Full Code Here

TOP

Related Classes of org.geotools.coverage.io.range.RangeType

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.