Examples of CoverageReadRequest


Examples of org.geotools.coverage.io.CoverageReadRequest

   
    @Override
    public GridCoverage2D read(String coverageName, GeneralParameterValue[] parameters)
            throws IllegalArgumentException, IOException {
        final CoverageSource gridSource = getGridCoverageSource(coverageName);
        final CoverageReadRequest request = setupCoverageRequest(parameters, gridSource);
        final CoverageResponse result = gridSource.read(request, null);
        Collection<? extends Coverage> results = result.getResults(null);
        if (results == null || results.isEmpty()) {
            if (LOGGER.isLoggable(Level.FINE)) {
                LOGGER.fine("No results have been found");
View Full Code Here

Examples of org.geotools.coverage.io.CoverageReadRequest

     * @param params
     * @return
     * @throws IOException
     */
    private CoverageReadRequest setupCoverageRequest(GeneralParameterValue[] params, final CoverageSource gridSource) throws IOException {
        CoverageReadRequest request = new CoverageReadRequest();
        if (params != null) {
            for (GeneralParameterValue gParam : params) {
                if (gParam instanceof ParameterValue<?>) {
                    final ParameterValue<?> param = (ParameterValue<?>) gParam;
                    final ReferenceIdentifier name = param.getDescriptor().getName();
View Full Code Here

Examples of org.geotools.coverage.io.CoverageReadRequest

     * @param COVERAGE_FACTORY a {@code GridCoverageFactory} to produce a {@code GridCoverage} when calling the {@link #createResponse()} method.
     * @param readerSpi the Image Reader Service provider interface.
     */
    public NetCDFResponse(final NetCDFRequest request) {
        this.request = request;
        CoverageReadRequest readRequest = request.originalRequest;
        setRequest(readRequest);
        datasetURL = (URL) request.source.reader.getInput();
    }
View Full Code Here

Examples of org.geotools.coverage.io.CoverageReadRequest

        // 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
        //
        // //
        Set<SampleDimension> sampleDims = null;
        for (FieldType fieldType : fieldTypes) {
            final Name name = fieldType.getName();
            sampleDims = fieldType.getSampleDimensions();
            if (rangeType != null) {
                final FieldType ft = rangeType.getFieldType(name.getLocalPart());
                if (ft != null)
                    sampleDims = ft.getSampleDimensions();
            }
        }
        final GridSampleDimension[] sampleDimensions = sampleDims
                .toArray(new GridSampleDimension[sampleDims.size()]);

        // Forcing creation of subsets (even with a single null element)
        Set<DateRange> tempSubset = null;
        if (!temporalSubset.isEmpty()) {
            tempSubset = temporalSubset;
        } else {
            tempSubset = new HashSet<DateRange>();
            tempSubset.add(null);
        }

        Set<NumberRange<Double>> vertSubset = null;
        if (!verticalSubset.isEmpty()) {
            vertSubset = verticalSubset;
        } else {
            vertSubset = new HashSet<NumberRange<Double>>();
            vertSubset.add(null);
        }

        Map<String, Set<?>> domainsSubset = readRequest.getAdditionalDomainsSubset();
        Filter requestFilter = request.originalRequest.getFilter();

        // handling date and time
        for (DateRange timeRange : tempSubset) {
            for (NumberRange<Double> elevation : vertSubset) {
View Full Code Here

Examples of org.geotools.coverage.io.CoverageReadRequest

                            buf.append("BBOX:").append("\t").append(bbox).append("\n");
                        }
                        LOGGER.info(buf.toString());
                    }

                    CoverageReadRequest readRequest = new CoverageReadRequest();
                    // //
                    //
                    // Setting up a limited range for the request.
                    //
                    // //

                    LinkedHashSet<NumberRange<Double>> requestedVerticalSubset = new LinkedHashSet<NumberRange<Double>>();
                    SortedSet<? extends NumberRange<Double>> verticalElements = verticalDomain
                            .getVerticalElements(false, null);
                    final int numLevels = verticalElements.size();
                    final Iterator<? extends NumberRange<Double>> iterator = verticalElements.iterator();
                    for (int i = 0; i < numLevels; i++) {
                        NumberRange<Double> level = iterator.next();
                        if (i % (numLevels / 5) == 1) {
                            requestedVerticalSubset.add(level);
                        }
                    }
                    readRequest.setVerticalSubset(requestedVerticalSubset);

                    SortedSet<DateRange> requestedTemporalSubset = new DateRangeTreeSet();
                    SortedSet<? extends DateRange> temporalElements = temporalDomain.getTemporalElements(false, null);
                    final int numTimes = temporalElements.size();
                    Iterator<? extends DateRange> iteratorT = temporalElements.iterator();
                    for (int i = 0; i < numTimes; i++) {
                        DateRange time = iteratorT.next();
                        if (i % (numTimes / 5) == 1) {
                            requestedTemporalSubset.add(time);
                        }
                    }
                    readRequest.setTemporalSubset(requestedTemporalSubset);

                    CoverageResponse response = gridSource.read(readRequest, null);
                    if (response == null || response.getStatus() != Status.SUCCESS || !response.getExceptions().isEmpty()) {
                        throw new IOException("Unable to read");
                    }
View Full Code Here

Examples of org.geotools.coverage.io.CoverageReadRequest

                 
                 
                  // 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) {
  //                    for (int i = 0; i < numLevels; i++) {
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. 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.