return new RangeSet( axis );
/** * Export the range set from the given coverage. * * @param writer * @param coverage * @throws XMLStreamException */ protected static void exportRangeSet( XMLStreamWriter writer, WCSCoverage coverage ) throws XMLStreamException { writer.writeStartElement( WCS_100_NS, "rangeSet" ); writer.writeStartElement( WCS_100_NS, "RangeSet" ); writer.writeAttribute( "refSys", coverage.getEnvelope().getCoordinateSystem().getAlias() ); RangeSet rs = coverage.getRangeSet(); if ( rs == null ) { LOG.info( "No range sets defined for requested coverage, creating a default one from the coverage parameters." ); writeElement( writer, WCS_100_NS, "name", coverage.getName() ); writeElement( writer, WCS_100_NS, "label", coverage.getLabel() ); } else { writeElement( writer, WCS_100_NS, "name", rs.getName() ); writeElement( writer, WCS_100_NS, "label", rs.getLabel() ); // write the axis descriptions exportAxisDescriptions( writer, rs.getAxisDescriptions() ); exportNullValues( writer, rs.getNullValue() ); } writer.writeEndElement(); // RangeSet writer.writeEndElement(); // rangeSet }
private boolean rangeSetsAreApplicable( RangeSet configuredRangeSet, RangeSet requestedRangeSet ) { List<AxisSubset> reqAxis = requestedRangeSet.getAxisDescriptions(); List<AxisSubset> checked = new ArrayList<AxisSubset>( reqAxis ); for ( AxisSubset ras : reqAxis ) { if ( ras.getName() != null ) { boolean hasMatch = false; Iterator<AxisSubset> it = configuredRangeSet.getAxisDescriptions().iterator(); while ( it.hasNext() && !hasMatch ) { AxisSubset as = it.next(); if ( as.getName().equalsIgnoreCase( ras.getName() ) ) { if ( ras.match( as, true ) ) { // delete the one in checked checked.remove( ras ); } else { return false; } } } } } return checked.isEmpty(); }
private static void checkRangeSet( RangeSet configuredRangeSet, RangeSet requestedRangeSet ) throws OWSException { List<AxisSubset> reqAxis = requestedRangeSet.getAxisDescriptions(); for ( AxisSubset ras : reqAxis ) { if ( ras.getName() != null ) { boolean hasMatch = false; Iterator<AxisSubset> it = configuredRangeSet.getAxisDescriptions().iterator();
return null; return new RangeSet( ops );
@Override public AbstractRaster apply( RangeSet sourceRangeSet, RangeSet targetRangeset ) { AbstractRaster result = raster(); if ( rangeSetsAreApplicable( sourceRangeSet, targetRangeset ) ) { List<AxisSubset> requestedAxis = targetRangeset.getAxisDescriptions(); if ( requestedAxis != null && !requestedAxis.isEmpty() ) { // create a copy so that the original rangeset will not be modified. List<AxisSubset> copyRA = new ArrayList<AxisSubset>( requestedAxis ); Map<BandType, AxisSubset> referencedBands = getReferencedBands( copyRA ); BandType[] bands = null; if ( referencedBands != null ) { bands = referencedBands.keySet().toArray( new BandType[referencedBands.keySet().size()] ); // filter the bands. result = raster().getSubRaster( raster().getEnvelope(), bands ); boolean applyData = false; for ( AxisSubset ass : referencedBands.values() ) { applyData = ass.hasAxisConstraints(); if ( applyData ) { break; } } if ( applyData ) { result = applyDataFilter( result, requestedAxis, referencedBands ); } } } } return result; }
result = new RangeSet( name, rangeSetType.getLabel(), ass, nullValue ); } else { LOG.warn( "One of the configured rangesets does not provide a name, this may not be." );
return new RangeSet( name, label, axisDesriptions, nullValue );
parsedRange = new RangeSet( axisSubsets );