@Override public Object read(Object request, Map kvp, Map rawKvp) throws Exception { GetCoverageType getCoverage = (GetCoverageType) super.read(request, kvp, rawKvp); // grab coverage info to perform further checks if (getCoverage.getIdentifier() == null) throw new WcsException( "identifier parameter is mandatory", MissingParameterValue, "identifier"); // build the domain subset getCoverage.setDomainSubset(parseDomainSubset(kvp)); // build output element getCoverage.setOutput(parseOutputElement(kvp)); return getCoverage; }
private DomainSubsetType getWCS11DomainSubset() { DomainSubsetType domainSubset = wcs111GetCoverage.getDomainSubset(); if (domainSubset == null) { domainSubset = Wcs11Factory.eINSTANCE.createDomainSubsetType(); wcs111GetCoverage.setDomainSubset(domainSubset); } return domainSubset; }
@Override public boolean canHandle(Operation operation) { // this one can handle GetCoverage responses where store = false if (!(operation.getParameters()[0] instanceof GetCoverageType)) return false; GetCoverageType getCoverage = (GetCoverageType) operation.getParameters()[0]; return !getCoverage.getOutput().isStore(); }
GridCoverage2D coverage = null; try { meta = catalog.getCoverageInfo(request.getIdentifier().getValue()); checkDomainSubset(meta, request.getDomainSubset()); checkRangeSubset(meta, request.getRangeSubset()); checkOutput(meta, request.getOutput()); final BoundingBoxType bbox = request.getDomainSubset().getBoundingBox(); final CoordinateReferenceSystem nativeCRS = originalEnvelope .getCoordinateReferenceSystem(); final GridCrsType gridCRS = request.getOutput().getGridCRS(); if (request.getRangeSubset() != null) { if (request.getRangeSubset().getFieldSubset().size() > 1) { throw new WcsException("Multi field coverages are not supported yet"); FieldSubsetType field = (FieldSubsetType) request.getRangeSubset().getFieldSubset() .get(0); interpolationType = field.getInterpolationType();
@Test public void testWCS11GetCoverageDifferentCrs() throws Exception { net.opengis.wcs11.GetCoverageType gc = Wcs11Factory.eINSTANCE.createGetCoverageType(); //xMin,yMin 5988504.35,851278.90 : xMax,yMax 7585113.55,1950872.01 //xMin,yMin -95.1193,42.2802 : xMax,yMax -71.295,53.73 CoordinateReferenceSystem logCrs = CRS.decode("EPSG:4326", false); BoundingBox bbox = new ReferencedEnvelope(42.2802, 53.73, -95.1193, -71.295, logCrs); net.opengis.ows11.BoundingBoxType wcsBbox = net.opengis.ows11.Ows11Factory.eINSTANCE.createBoundingBoxType(); wcsBbox.setLowerCorner(Arrays.asList(5988504.35d,851278.90d)); wcsBbox.setUpperCorner(Arrays.asList(7585113.55d,1950872.01d)); wcsBbox.setCrs("urn:ogc:def:crs:EPSG:3348"); net.opengis.wcs11.DomainSubsetType domainSubset = Wcs11Factory.eINSTANCE.createDomainSubsetType(); domainSubset.setBoundingBox(wcsBbox); gc.setDomainSubset(domainSubset); CodeType c = Ows11Factory.eINSTANCE.createCodeType(); c.setValue("acme:bar"); gc.setIdentifier(c); callback.operationDispatched(new Request(), op("GetCoverage", "WCS", "1.1.0", gc)); assertEquals("acme:bar", data.getResources().get(0)); BBoxAsserts.assertEqualsBbox(bbox, data.getBbox(), 0.1); }
assertEquals("WCS", gc.getService()); assertEquals("1.1.1", gc.getVersion()); assertEquals("wcs:BlueMarble", gc.getIdentifier().getValue()); assertEquals( "urn:ogc:def:crs:EPSG:6.6:4326", gc.getDomainSubset().getBoundingBox().getCrs()); assertEquals( Arrays.asList(-90.0, -180.0), gc.getDomainSubset().getBoundingBox().getLowerCorner()); assertEquals( Arrays.asList(90.0, 180.0), gc.getDomainSubset().getBoundingBox().getUpperCorner()); assertEquals("image/tiff", gc.getOutput().getFormat()); assertNull(gc.getOutput().getGridCRS());
String outputFormat = request.getOutput().getFormat(); CoverageResponseDelegate delegate = CoverageResponseDelegateFactory .encoderFor(outputFormat); CoverageInfo coverageInfo = catalog.getCoverageInfo(request.getIdentifier().getValue()); final String proxifiedBaseUrl = RequestUtils.proxifiedBaseURL(request.getBaseUrl(), wcs.getGeoServer().getProxyBaseUrl()); final String coverageLocation = proxifiedBaseUrl + "temp/wcs/" + coverageFile.getName();
String outputFormat = request.getOutput().getFormat(); CoverageResponseDelegate delegate = responseFactory.encoderFor(outputFormat); if (delegate == null) CoverageInfo coverageInfo = catalog.getCoverageByName(request.getIdentifier().getValue());
public String getAttachmentFileName(Object value, Operation operation) { final GetCoverageType request = (GetCoverageType) operation.getParameters()[0]; final String identifier = request.getIdentifier().getValue(); return identifier.replace(':', '_') + ".eml"; }
private WCS2GetCoverageRequestBuilder() { getCoverageType = Wcs20Factory.eINSTANCE.createGetCoverageType(); wcs111GetCoverage = Wcs11Factory.eINSTANCE.createGetCoverageType(); wcs111GetCoverage.setVersion("1.1.1"); OutputType outputType = Wcs11Factory.eINSTANCE.createOutputType(); outputType.setFormat("image/tiff"); wcs111GetCoverage.setOutput(outputType); getCoverageType.setVersion("2.0.0"); getCoverageType.setFormat("image/tiff"); }
RangeSubsetType rs = getCoverage.getRangeSubset(); FieldSubsetType field = (FieldSubsetType) rs.getFieldSubset().get(0); AxisSubsetType axis = (AxisSubsetType) field.getAxisSubset().get(0);
/** * Sets the id of the coverage to request. * * @param coverageId A coverage id * @return this builder */ public WCS2GetCoverageRequestBuilder coverageId(String coverageId) { getCoverageType.setCoverageId(coverageId); CodeType codeType = Ows11Factory.eINSTANCE.createCodeType(); codeType.setValue(coverageId); wcs111GetCoverage.setIdentifier(codeType); return this; }
buildSchemaURL(request.getBaseUrl(), "wcs/1.1.1/wcsCoverages.xsd");
GridCoverage2D coverage = null; try { CodeType identifier = request.getIdentifier(); if (identifier == null) throw new WcsException( meta = catalog.getCoverageByName(identifier.getValue()); if (meta == null) { throw new WcsException("No such coverage: " + request.getIdentifier().getValue()); checkDomainSubset(meta, request.getDomainSubset(), wcs); checkRangeSubset(meta, request.getRangeSubset()); checkOutput(meta, request.getOutput()); final BoundingBoxType bbox = request.getDomainSubset().getBoundingBox(); final CoordinateReferenceSystem nativeCRS = originalEnvelope.getCoordinateReferenceSystem(); final GridCrsType gridCRS = request.getOutput().getGridCRS(); TimeSequenceType temporalSubset = request.getDomainSubset().getTemporalSubset(); if (request.getRangeSubset() != null) { if (request.getRangeSubset().getFieldSubset().size() > 1) { throw new WcsException("Multi field coverages are not supported yet"); (FieldSubsetType) request.getRangeSubset().getFieldSubset().get(0); interpolationType = field.getInterpolationType();
@Test public void testWCS11GetCoverageDifferentCrs() throws Exception { net.opengis.wcs11.GetCoverageType gc = Wcs11Factory.eINSTANCE.createGetCoverageType(); // xMin,yMin 5988504.35,851278.90 : xMax,yMax 7585113.55,1950872.01 // xMin,yMin -95.1193,42.2802 : xMax,yMax -71.295,53.73 CoordinateReferenceSystem logCrs = CRS.decode("EPSG:4326", false); BoundingBox bbox = new ReferencedEnvelope(42.2802, 53.73, -95.1193, -71.295, logCrs); net.opengis.ows11.BoundingBoxType wcsBbox = net.opengis.ows11.Ows11Factory.eINSTANCE.createBoundingBoxType(); wcsBbox.setLowerCorner(Arrays.asList(5988504.35d, 851278.90d)); wcsBbox.setUpperCorner(Arrays.asList(7585113.55d, 1950872.01d)); wcsBbox.setCrs("urn:ogc:def:crs:EPSG:3348"); net.opengis.wcs11.DomainSubsetType domainSubset = Wcs11Factory.eINSTANCE.createDomainSubsetType(); domainSubset.setBoundingBox(wcsBbox); gc.setDomainSubset(domainSubset); CodeType c = Ows11Factory.eINSTANCE.createCodeType(); c.setValue("acme:bar"); gc.setIdentifier(c); callback.operationDispatched(new Request(), op("GetCoverage", "WCS", "1.1.0", gc)); assertEquals("acme:bar", data.getResources().get(0)); BBoxAsserts.assertEqualsBbox(bbox, data.getBbox(), 0.1); }
String outputFormat = request.getOutput().getFormat(); CoverageResponseDelegate delegate = responseFactory.encoderFor(outputFormat); if (delegate == null) CoverageInfo coverageInfo = catalog.getCoverageByName(request.getIdentifier().getValue()); request.getBaseUrl(), appendPath("temp/wcs", coverageFile.name()), null,
@Test public void testBasic() throws Exception { Map<String, Object> raw = baseMap(); final String layerId = getLayerId(TASMANIA_BM); raw.put("identifier", layerId); raw.put("format", "image/tiff"); raw.put("BoundingBox", "-45,146,-42,147"); raw.put("store", "false"); raw.put("GridBaseCRS", "urn:ogc:def:crs:EPSG:6.6:4326"); GetCoverageType getCoverage = (GetCoverageType) reader.read(reader.createRequest(), parseKvp(raw), raw); assertEquals(layerId, getCoverage.getIdentifier().getValue()); assertEquals("image/tiff", getCoverage.getOutput().getFormat()); assertFalse(getCoverage.getOutput().isStore()); assertEquals( "urn:ogc:def:crs:EPSG:6.6:4326", getCoverage.getOutput().getGridCRS().getGridBaseCRS()); }
@Override public String[][] getHeaders(Object value, Operation operation) throws ServiceException { final GetCoverageType request = (GetCoverageType) operation.getParameters()[0]; final String identifier = request.getIdentifier().getValue(); return new String[][] { { "Content-Disposition", "attachment;filename=\"" + identifier.replace(':', '_') + ".eml\"" } }; }
assertEquals(1, gc.getRangeSubset().getFieldSubset().size()); FieldSubsetType field = (FieldSubsetType) gc.getRangeSubset().getFieldSubset().get(0); assertEquals("BlueMarble", field.getIdentifier().getValue()); assertEquals("bicubic", field.getInterpolationType());
.toString(); proxifiedBaseUrl = RequestUtils.proxifiedBaseURL(request.getBaseUrl(), wcs .getGeoServer().getProxyBaseUrl()); final String locationDef = WCS_URI + " " + proxifiedBaseUrl