summaryrefslogtreecommitdiffstats
path: root/petascope/src/petascope/wcs2
diff options
context:
space:
mode:
Diffstat (limited to 'petascope/src/petascope/wcs2')
-rw-r--r--petascope/src/petascope/wcs2/schemas/Examples/requestDescribeCoverage.xml8
-rw-r--r--petascope/src/petascope/wcs2/schemas/Examples/requestGetCapabilities.xml10
-rw-r--r--petascope/src/petascope/wcs2/schemas/Examples/requestGetCoverage.xml18
-rw-r--r--petascope/src/petascope/wcs2/schemas/Examples/responseDescribeCoverage.xml37
-rw-r--r--petascope/src/petascope/wcs2/schemas/Examples/responseGetCapabilities.xml60
-rw-r--r--petascope/src/petascope/wcs2/schemas/Examples/responseGetCoverage.xml40
-rw-r--r--petascope/src/petascope/wcs2/schemas/Examples/wcsDescribeCoverage.xml57
-rw-r--r--petascope/src/petascope/wcs2/schemas/Examples/wcsGetCapabilities.xml125
-rw-r--r--petascope/src/petascope/wcs2/schemas/Examples/wcsGetCoverage.xml57
-rw-r--r--petascope/src/petascope/wcs2/schemas/SchemaServlet.java97
-rw-r--r--petascope/src/petascope/wcs2/schemas/gml/Examples/2dIdentityConversion.xml16
-rw-r--r--petascope/src/petascope/wcs2/schemas/gml/Examples/2dIdentityMethod.xml22
-rw-r--r--petascope/src/petascope/wcs2/schemas/gml/Examples/exampleRangeStructure.xml35
-rw-r--r--petascope/src/petascope/wcs2/schemas/gml/Examples/exampleRectifiedGridCoverage.xml56
-rw-r--r--petascope/src/petascope/wcs2/schemas/gml/Examples/exampleReferenceablGridCoverage.xml60
-rw-r--r--petascope/src/petascope/wcs2/schemas/gml/gmlwcsAll.xsd21
-rw-r--r--petascope/src/petascope/wcs2/schemas/gml/wcsCoverage.xsd160
-rw-r--r--petascope/src/petascope/wcs2/schemas/gml/wcsDataTypeIdentifiers.xml111
-rw-r--r--petascope/src/petascope/wcs2/schemas/gml/wcsGrids.xsd156
-rw-r--r--petascope/src/petascope/wcs2/schemas/wcsAll.xsd21
-rw-r--r--petascope/src/petascope/wcs2/schemas/wcsCommon.xsd87
-rw-r--r--petascope/src/petascope/wcs2/schemas/wcsDescribeCoverage.xsd73
-rw-r--r--petascope/src/petascope/wcs2/schemas/wcsExtensions.xml125
-rw-r--r--petascope/src/petascope/wcs2/schemas/wcsGetCapabilities.xsd56
-rw-r--r--petascope/src/petascope/wcs2/schemas/wcsGetCoverage.xsd88
-rw-r--r--petascope/src/petascope/wcs2/server/Wcs2Server.java120
-rw-r--r--petascope/src/petascope/wcs2/server/ops/DescribeCoverage.java204
-rw-r--r--petascope/src/petascope/wcs2/server/ops/GetCapabilities.java85
-rw-r--r--petascope/src/petascope/wcs2/server/ops/GetCoverage.java529
-rw-r--r--petascope/src/petascope/wcs2/server/ops/WcsOperation.java36
-rw-r--r--petascope/src/petascope/wcs2/server/templates/DescribeCoverageTemplate.xml38
-rw-r--r--petascope/src/petascope/wcs2/server/templates/GetCapabilitiesTemplate.xml92
-rw-r--r--petascope/src/petascope/wcs2/server/templates/GetCoverageTemplate.xml38
-rw-r--r--petascope/src/petascope/wcs2/server/templates/WcsNamespaceContext.java59
34 files changed, 0 insertions, 2797 deletions
diff --git a/petascope/src/petascope/wcs2/schemas/Examples/requestDescribeCoverage.xml b/petascope/src/petascope/wcs2/schemas/Examples/requestDescribeCoverage.xml
deleted file mode 100644
index c1224e7..0000000
--- a/petascope/src/petascope/wcs2/schemas/Examples/requestDescribeCoverage.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<wcs:DescribeCoverage xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'
- xmlns:wcs='http://www.opengis.net/wcs/2.0'
- xmlns:gml='http://www.opengis.net/gml/3.2'
- xsi:schemaLocation='http://www.opengis.net/wcs/2.0 ../wcsAll.xsd'
- service="WCS" version="2.0.0">
- <wcs:id gml:id="rgb"/>
-</wcs:DescribeCoverage>
diff --git a/petascope/src/petascope/wcs2/schemas/Examples/requestGetCapabilities.xml b/petascope/src/petascope/wcs2/schemas/Examples/requestGetCapabilities.xml
deleted file mode 100644
index b7966cb..0000000
--- a/petascope/src/petascope/wcs2/schemas/Examples/requestGetCapabilities.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<wcs:GetCapabilities xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'
- xmlns:ows='http://www.opengis.net/ows/1.1'
- xmlns:wcs='http://www.opengis.net/wcs/2.0'
- xsi:schemaLocation='http://www.opengis.net/wcs/2.0 ../wcsAll.xsd'
- service="WCS" version="2.0.0">
- <ows:AcceptVersions>
- <ows:Version>2.0.0</ows:Version>
- </ows:AcceptVersions>
-</wcs:GetCapabilities>
diff --git a/petascope/src/petascope/wcs2/schemas/Examples/requestGetCoverage.xml b/petascope/src/petascope/wcs2/schemas/Examples/requestGetCoverage.xml
deleted file mode 100644
index 5195d36..0000000
--- a/petascope/src/petascope/wcs2/schemas/Examples/requestGetCoverage.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<wcs:GetCoverage xmlns:wcs="http://www.opengis.net/wcs/2.0"
- xmlns:gml="http://www.opengis.net/gml/3.2"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.opengis.net/wcs/2.0 ../wcsAll.xsd"
- service="WCS" version="2.0.0">
- <wcs:id gml:id="rgb"/>
- <wcs:trimDimension>
- <wcs:dimension>x</wcs:dimension>
- <wcs:trimLow>200</wcs:trimLow>
- <wcs:trimHigh>299</wcs:trimHigh>
- </wcs:trimDimension>
- <wcs:trimDimension>
- <wcs:dimension>y</wcs:dimension>
- <wcs:trimLow>200</wcs:trimLow>
- <wcs:trimHigh>300</wcs:trimHigh>
- </wcs:trimDimension>
-</wcs:GetCoverage>
diff --git a/petascope/src/petascope/wcs2/schemas/Examples/responseDescribeCoverage.xml b/petascope/src/petascope/wcs2/schemas/Examples/responseDescribeCoverage.xml
deleted file mode 100644
index 544e62f..0000000
--- a/petascope/src/petascope/wcs2/schemas/Examples/responseDescribeCoverage.xml
+++ /dev/null
@@ -1,37 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<wcs:CoverageDescriptions xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'
- xmlns:gmlwcs='http://www.opengis.net/wcs/2.0/gml'
- xmlns:gml='http://www.opengis.net/gml/3.2'
- xmlns:wcs='http://www.opengis.net/wcs/2.0'
- xmlns='http://www.opengis.net/gml/3.2'
- xsi:schemaLocation='http://www.opengis.net/wcs/2.0 ../wcsAll.xsd'>
- <wcs:CoverageDescription gml:id="coverage1">
- <domainSet>
- <Grid dimension="2" gml:id="grid1">
- <limits>
- <GridEnvelope>
- <!-- This is a 5-by-3 matrix -->
- <low>1 1</low>
- <high>5 3</high>
- </GridEnvelope>
- </limits>
- <axisLabels>xAxis yAxis</axisLabels>
- </Grid>
- </domainSet>
- <gmlwcs:rangeStructure>
- <gmlwcs:RangeStructure gml:id="RangeStructure1">
- <gmlwcs:rangeField >
- <gmlwcs:RangeField gml:id="Band1" uom="W/cm^2">
- <gml:name>band1</gml:name>
- <gmlwcs:dataType>urn:ogc:def:dataType:OGC:1.1:unsignedByte</gmlwcs:dataType>
- <gmlwcs:nilValueList>000 255</gmlwcs:nilValueList>
- </gmlwcs:RangeField>
- </gmlwcs:rangeField>
- </gmlwcs:RangeStructure>
- </gmlwcs:rangeStructure>
- <wcs:ServiceParameters>
- <wcs:supportedCrsList></wcs:supportedCrsList>
- <wcs:supportedFormatList>application/xml</wcs:supportedFormatList>
- </wcs:ServiceParameters>
- </wcs:CoverageDescription>
-</wcs:CoverageDescriptions>
diff --git a/petascope/src/petascope/wcs2/schemas/Examples/responseGetCapabilities.xml b/petascope/src/petascope/wcs2/schemas/Examples/responseGetCapabilities.xml
deleted file mode 100644
index c5485e9..0000000
--- a/petascope/src/petascope/wcs2/schemas/Examples/responseGetCapabilities.xml
+++ /dev/null
@@ -1,60 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<wcs:Capabilities xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'
- xmlns:ows='http://www.opengis.net/ows/1.1'
- xmlns:wcs='http://www.opengis.net/wcs/2.0'
- xmlns:gml='http://www.opengis.net/gml/3.2'
- xmlns='http://www.opengis.net/ows/1.1'
- xmlns:xlink='http://www.w3.org/1999/xlink'
- xsi:schemaLocation='http://www.opengis.net/wcs/2.0 ../wcsAll.xsd' version="2.0.0">
- <ServiceIdentification>
- <Title>petascope</Title>
- <Abstract>WCS Server developed at jacobs University</Abstract>
- <ServiceType>OGC WCS</ServiceType>
- <ServiceTypeVersion>2.0.0</ServiceTypeVersion>
- <Profile>urn:ogc:def:extension:OGC-WCS:2.0:protocol:post</Profile>
- <Profile>urn:ogc:def:extension:OGC-WCS:2.0:coverageFormat:netcdf</Profile>
- <Profile>urn:ogc:def:extension:OGC-WCS:2.0:serviceModel:wcps:1.0</Profile>
- <Profile>urn:ogc:def:extension:OGC-WCS:2.0:serviceModel:wcst:1.0</Profile>
- </ServiceIdentification>
- <ServiceProvider>
- <ProviderName>Jacobs University Bremen</ProviderName>
- <ProviderSite xlink:href="http://www.jacobs-university.de/"/>
- <ServiceContact>
- <IndividualName>Mr. X</IndividualName>
- <PositionName>Developer</PositionName>
- <ContactInfo>
- <Phone>
- <Voice></Voice>
- </Phone>
- </ContactInfo>
- </ServiceContact>
- </ServiceProvider>
- <OperationsMetadata>
- <Operation name="GetCapabilities">
- <DCP>
- <HTTP>
- <Get xlink:href="http://server:port/GetCapabilitiesURL"/>
- </HTTP>
- </DCP>
- </Operation>
- <Operation name="DescribeCoverage">
- <DCP>
- <HTTP>
- <Get xlink:href="http://server:port/DescribeCoverageURL"/>
- </HTTP>
- </DCP>
- </Operation>
- <Operation name="GetCoverage">
- <DCP>
- <HTTP>
- <Get xlink:href="http://server:port/GetCoverageURL"/>
- </HTTP>
- </DCP>
- </Operation>
- </OperationsMetadata>
- <wcs:Contents>
- <wcs:id gml:id="coverage1"/>
- <wcs:id gml:id="coverage2"/>
- <wcs:id gml:id="coverage3"/>
- </wcs:Contents>
-</wcs:Capabilities>
diff --git a/petascope/src/petascope/wcs2/schemas/Examples/responseGetCoverage.xml b/petascope/src/petascope/wcs2/schemas/Examples/responseGetCoverage.xml
deleted file mode 100644
index a4c6fd3..0000000
--- a/petascope/src/petascope/wcs2/schemas/Examples/responseGetCoverage.xml
+++ /dev/null
@@ -1,40 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<gmlwcs:GridCoverage xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'
- xmlns:gml='http://www.opengis.net/gml/3.2'
- xmlns='http://www.opengis.net/gml/3.2'
- xmlns:gmlwcs='http://www.opengis.net/wcs/2.0/gml'
- xsi:schemaLocation='http://www.opengis.net/wcs/2.0/gml ../gml/gmlwcsAll.xsd' gml:id="coverage1">
- <domainSet>
- <Grid dimension="2" gml:id="grid1">
- <limits>
- <GridEnvelope>
- <!-- This is a 5-by-3 matrix -->
- <low>1 1</low>
- <high>5 3</high>
- </GridEnvelope>
- </limits>
- <axisLabels>xAxis yAxis</axisLabels>
- </Grid>
- </domainSet>
- <rangeSet>
- <DataBlock>
- <rangeParameters/>
- <tupleList>
- 1 2 3 4 5
- 6 7 8 9 10
- 11 12 13 14 15
- </tupleList>
- </DataBlock>
- </rangeSet>
- <gmlwcs:rangeStructure>
- <gmlwcs:RangeStructure gml:id="RangeStructure1">
- <gmlwcs:rangeField >
- <gmlwcs:RangeField gml:id="Band1" uom="W/cm^2">
- <gml:name>band1</gml:name>
- <gmlwcs:dataType>urn:ogc:def:dataType:OGC:1.1:unsignedByte</gmlwcs:dataType>
- <gmlwcs:nilValueList>000 255</gmlwcs:nilValueList>
- </gmlwcs:RangeField>
- </gmlwcs:rangeField>
- </gmlwcs:RangeStructure>
- </gmlwcs:rangeStructure>
-</gmlwcs:GridCoverage>
diff --git a/petascope/src/petascope/wcs2/schemas/Examples/wcsDescribeCoverage.xml b/petascope/src/petascope/wcs2/schemas/Examples/wcsDescribeCoverage.xml
deleted file mode 100644
index 047caed..0000000
--- a/petascope/src/petascope/wcs2/schemas/Examples/wcsDescribeCoverage.xml
+++ /dev/null
@@ -1,57 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<wcs:CoverageDescriptions xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'
- xmlns:gmlwcs='http://www.opengis.net/wcs/2.0/gml'
- xmlns:gml='http://www.opengis.net/gml/3.2'
- xmlns:wcs='http://www.opengis.net/wcs/2.0'
- xmlns='http://www.opengis.net/gml/3.2'
- xsi:schemaLocation='http://www.opengis.net/wcs/2.0 http://localhost:8080/PetaScope/schemas/wcsAll.xsd'>
- <wcs:CoverageDescription gml:id="rgb">
- <domainSet>
- <Grid dimension="2" gml:id="gridrgb">
- <limits>
- <GridEnvelope>
- <low>0 0 </low>
- <high>399 343 </high>
-
- </GridEnvelope>
- </limits>
- <axisLabels>x y </axisLabels>
- </Grid>
- </domainSet>
- <gmlwcs:rangeStructure>
- <gmlwcs:RangeStructure gml:id="rangeStructure-rgb">
- <gmlwcs:rangeField>
-
- <gmlwcs:RangeField gml:id="range-1-red" uom="none">
- <gml:name>red</gml:name>
- <gmlwcs:dataType>urn:ogc:def:dataType:OGC:1.1:unsigned int</gmlwcs:dataType>
- <gmlwcs:nilValueList></gmlwcs:nilValueList>
- </gmlwcs:RangeField>
- </gmlwcs:rangeField>
- <gmlwcs:rangeField>
- <gmlwcs:RangeField gml:id="range-1-green" uom="none">
- <gml:name>green</gml:name>
-
- <gmlwcs:dataType>urn:ogc:def:dataType:OGC:1.1:unsigned int</gmlwcs:dataType>
- <gmlwcs:nilValueList></gmlwcs:nilValueList>
- </gmlwcs:RangeField>
- </gmlwcs:rangeField>
- <gmlwcs:rangeField>
- <gmlwcs:RangeField gml:id="range-1-blue" uom="none">
- <gml:name>blue</gml:name>
- <gmlwcs:dataType>urn:ogc:def:dataType:OGC:1.1:unsigned int</gmlwcs:dataType>
-
- <gmlwcs:nilValueList></gmlwcs:nilValueList>
- </gmlwcs:RangeField>
- </gmlwcs:rangeField>
-
- </gmlwcs:RangeStructure>
- </gmlwcs:rangeStructure>
- <wcs:ServiceParameters>
- <wcs:supportedCrsList/>
- <wcs:supportedFormatList>application/xml</wcs:supportedFormatList>
-
- </wcs:ServiceParameters>
- </wcs:CoverageDescription>
-
-</wcs:CoverageDescriptions>
diff --git a/petascope/src/petascope/wcs2/schemas/Examples/wcsGetCapabilities.xml b/petascope/src/petascope/wcs2/schemas/Examples/wcsGetCapabilities.xml
deleted file mode 100644
index 3d33e03..0000000
--- a/petascope/src/petascope/wcs2/schemas/Examples/wcsGetCapabilities.xml
+++ /dev/null
@@ -1,125 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<wcs:Capabilities xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'
- xmlns:ows='http://www.opengis.net/ows/1.1'
- xmlns:wcs='http://www.opengis.net/wcs/2.0'
- xmlns:gml='http://www.opengis.net/gml/3.2'
- xmlns='http://www.opengis.net/ows/1.1'
- xmlns:xlink='http://www.w3.org/1999/xlink'
- xsi:schemaLocation='http://www.opengis.net/wcs/2.0 http://localhost:8080/PetaScope/schemas/wcsAll.xsd' version="2.0.0">
- <ServiceIdentification>
- <Title>WCS 2.0 Coverage Server @ Jacobs University</Title>
- <Abstract>WCS 2.0 Server developed at jacobs University</Abstract>
- <ServiceType>OGC WCS</ServiceType>
- <ServiceTypeVersion>2.0.0</ServiceTypeVersion>
- <Profile>urn:ogc:def:extension:OGC-WCS:2.0:protocol:post</Profile>
-
- <Profile>urn:ogc:def:extension:OGC-WCS:2.0:serviceModel:wcps:1.0</Profile>
- <Profile>urn:ogc:def:extension:OGC-WCS:2.0:serviceModel:wcst:1.0</Profile>
- </ServiceIdentification>
- <ServiceProvider>
- <ProviderName>Jacobs University Bremen</ProviderName>
- <ows:ProviderSite xlink:href="http://www.petascope.org/"/>
- <ServiceContact>
-
- <ows:IndividualName>Prof. Dr. Peter Baumann</ows:IndividualName>
- <ows:ContactInfo>
- <ows:Address>
- <ows:City>Bremen</ows:City>
- <ows:PostalCode>28717</ows:PostalCode>
- <ows:Country>Germany</ows:Country>
- <ows:ElectronicMailAddress>p.baumann@jacobs-university.de</ows:ElectronicMailAddress>
-
- </ows:Address>
- </ows:ContactInfo>
- <ows:Role>Project Leader</ows:Role>
- </ServiceContact>
- </ServiceProvider>
- <OperationsMetadata>
- <Operation name="GetCapabilities">
- <DCP>
-
- <HTTP>
- <Get xlink:href="http://localhost:8080/PetaScope/earthlook"/>
- </HTTP>
- </DCP>
- <Parameter name="Format">
- <AllowedValues>
- <Value>text/xml</Value>
- </AllowedValues>
-
- </Parameter>
- <Constraint name="PostEncoding">
- <AllowedValues>
- <Value>XML</Value>
- </AllowedValues>
- </Constraint>
- </Operation>
- <Operation name="DescribeCoverage">
-
- <DCP>
- <HTTP>
- <Get xlink:href="http://localhost:8080/PetaScope/earthlook"/>
- </HTTP>
- </DCP>
- <Parameter name="Format">
- <AllowedValues>
- <Value>text/xml</Value>
-
- </AllowedValues>
- </Parameter>
- <Constraint name="PostEncoding">
- <AllowedValues>
- <Value>XML</Value>
- </AllowedValues>
- </Constraint>
- </Operation>
-
- <Operation name="GetCoverage">
- <DCP>
- <HTTP>
- <Get xlink:href="http://localhost:8080/PetaScope/earthlook"/>
- </HTTP>
- </DCP>
- <Parameter name="Format">
- <AllowedValues>
- <Value>text/xml</Value>
-
- </AllowedValues>
- </Parameter>
- <Constraint name="PostEncoding">
- <AllowedValues>
- <Value>XML</Value>
- </AllowedValues>
- </Constraint>
- </Operation>
-
- </OperationsMetadata>
- <wcs:Contents>
- <wcs:id gml:id="NIR"/>
- <wcs:id gml:id="Waha_SEGY"/>
- <wcs:id gml:id="mr"/>
- <wcs:id gml:id="climate_clouds"/>
- <wcs:id gml:id="rgb"/>
- <wcs:id gml:id="climate_earth"/>
- <wcs:id gml:id="climate_temperature"/>
- <wcs:id gml:id="Modis"/>
- <wcs:id gml:id="TP"/>
- <wcs:id gml:id="whatevereeeee"/>
- <wcs:id gml:id="Boonsville_SEGY"/>
- <wcs:id gml:id="mowglie"/>
- <wcs:id gml:id="NN3_2"/>
- <wcs:id gml:id="NN3_3"/>
- <wcs:id gml:id="NN3_1"/>
- <wcs:id gml:id="NN3_6"/>
- <wcs:id gml:id="NN3_7"/>
- <wcs:id gml:id="NN3_4"/>
- <wcs:id gml:id="NN3_10"/>
- <wcs:id gml:id="NN3_5"/>
- <wcs:id gml:id="nrg"/>
- <wcs:id gml:id="NN3_11"/>
- <wcs:id gml:id="NN3_8"/>
- <wcs:id gml:id="NN3_9"/>
- </wcs:Contents>
- <wcs:WcsServiceMetadata />
-
-</wcs:Capabilities>
diff --git a/petascope/src/petascope/wcs2/schemas/Examples/wcsGetCoverage.xml b/petascope/src/petascope/wcs2/schemas/Examples/wcsGetCoverage.xml
deleted file mode 100644
index 371a714..0000000
--- a/petascope/src/petascope/wcs2/schemas/Examples/wcsGetCoverage.xml
+++ /dev/null
@@ -1,57 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<gmlwcs:GridCoverage xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'
- xmlns:gml='http://www.opengis.net/gml/3.2'
- xmlns='http://www.opengis.net/gml/3.2'
- xmlns:gmlwcs='http://www.opengis.net/wcs/2.0/gml'
- xsi:schemaLocation='http://www.opengis.net/wcs/2.0/gml http://kahlua.eecs.jacobs-university.de:8080/petascope/schemas/gml/gmlwcsAll.xsd' gml:id="rgb0.2964005133273092">
- <domainSet>
- <Grid dimension="2" gml:id="grid-rgb">
- <limits>
- <GridEnvelope>
- <low>200 200</low>
- <high>219 209</high>
- </GridEnvelope>
-
- </limits>
- <axisLabels>x y</axisLabels>
- </Grid>
- </domainSet>
- <rangeSet>
- <DataBlock>
- <rangeParameters/>
- <tupleList>
-
- 242,27,103 242,27,103 242,27,103 242,27,103 242,27,103 242,27,103 242,27,103 242,27,103 204,0,88 242,27,103 242,27,103 242,27,103 242,27,103 242,27,103 242,27,103 242,27,103 242,27,103 204,0,88 242,27,103 242,27,103 242,27,103 242,27,103 242,27,103 242,27,103 242,27,103 242,27,103 204,0,88 242,27,103 242,27,103 242,27,103 242,27,103 242,27,103 242,27,103 242,27,103 242,27,103 204,0,88 242,27,103 242,27,103 242,27,103 242,27,103 242,27,103 242,27,103 242,27,103 242,27,103 204,0,88 242,27,103 242,27,103 242,27,103 242,27,103 242,27,103 242,27,103 242,27,103 242,27,103 204,0,88 242,27,103 242,27,103 242,27,103 242,27,103 242,27,103 242,27,103 242,27,103 242,27,103 204,0,88 242,27,103 242,27,103 242,27,103 242,27,103 242,27,103 242,27,103 204,0,88 242,27,103 204,0,88 242,27,103 242,27,103 242,27,103 242,27,103 242,27,103 242,27,103 242,27,103 204,0,88 204,0,88 242,27,103 242,27,103 242,27,103 242,27,103 242,27,103 242,27,103 242,27,103 204,0,88 242,27,103 242,27,103 242,27,103 242,27,103 242,27,103 242,27,103 242,27,103 242,27,103 204,0,88 204,0,88 242,27,103 242,27,103 242,27,103 242,27,103 242,27,103 242,27,103 242,27,103 204,0,88 204,0,88 242,27,103 242,27,103 242,27,103 242,27,103 242,27,103 242,27,103 242,27,103 204,0,88 204,0,88 242,27,103 242,27,103 242,27,103 242,27,103 242,27,103 242,27,103 242,27,103 204,0,88 204,0,88 242,27,103 242,27,103 242,27,103 242,27,103 242,27,103 242,27,103 242,27,103 204,0,88 204,0,88 242,27,103 242,27,103 242,27,103 242,27,103 242,27,103 242,27,103 242,27,103 204,0,88 204,0,88 242,27,103 242,27,103 242,27,103 242,27,103 242,27,103 204,0,88 242,27,103 204,0,88 204,0,88 242,27,103 242,27,103 242,27,103 242,27,103 242,27,103 242,27,103 204,0,88 204,0,88 204,0,88 242,27,103 242,27,103 242,27,103 242,27,103 242,27,103 242,27,103 204,0,88 242,27,103 204,0,88 242,27,103 242,27,103 242,27,103 242,27,103 242,27,103 242,27,103 204,0,88 204,0,88 242,27,103 242,27,103 242,27,103 242,27,103 242,27,103 242,27,103 242,27,103 204,0,88 204,0,88 242,27,103 242,27,103 242,27,103 242,27,103 242,27,103 242,27,103 242,27,103 204,0,88 204,0,88 242,27,103 242,27,103 242,27,10
- </tupleList>
- </DataBlock>
- </rangeSet>
- <gmlwcs:rangeStructure>
- <gmlwcs:RangeStructure gml:id="rangeStructure-1">
- <gmlwcs:rangeField>
- <gmlwcs:RangeField gml:id="range-1-red">
- <gml:name>red</gml:name>
-
- <gmlwcs:dataType>urn:ogc:def:dataType:OGC:1.1:unsigned int</gmlwcs:dataType>
- <gmlwcs:nilValueList>0</gmlwcs:nilValueList>
- </gmlwcs:RangeField>
- </gmlwcs:rangeField>
- <gmlwcs:rangeField>
- <gmlwcs:RangeField gml:id="range-1-green">
- <gml:name>green</gml:name>
- <gmlwcs:dataType>urn:ogc:def:dataType:OGC:1.1:unsigned int</gmlwcs:dataType>
-
- <gmlwcs:nilValueList>0</gmlwcs:nilValueList>
- </gmlwcs:RangeField>
- </gmlwcs:rangeField>
- <gmlwcs:rangeField>
- <gmlwcs:RangeField gml:id="range-1-blue">
- <gml:name>blue</gml:name>
- <gmlwcs:dataType>urn:ogc:def:dataType:OGC:1.1:unsigned int</gmlwcs:dataType>
- <gmlwcs:nilValueList>0</gmlwcs:nilValueList>
-
- </gmlwcs:RangeField>
- </gmlwcs:rangeField>
-
- </gmlwcs:RangeStructure>
- </gmlwcs:rangeStructure>
-</gmlwcs:GridCoverage>
diff --git a/petascope/src/petascope/wcs2/schemas/SchemaServlet.java b/petascope/src/petascope/wcs2/schemas/SchemaServlet.java
deleted file mode 100644
index f2c874f..0000000
--- a/petascope/src/petascope/wcs2/schemas/SchemaServlet.java
+++ /dev/null
@@ -1,97 +0,0 @@
-/*
- * This file is part of rasdaman community.
- *
- * Rasdaman community is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * Rasdaman community is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with rasdaman community. If not, see <http://www.gnu.org/licenses/>.
- *
- * Copyright 2003, 2004, 2005, 2006, 2007, 2008, 2009 Peter Baumann /
- rasdaman GmbH.
- *
- * For more information please see <http://www.rasdaman.org>
- * or contact Peter Baumann via <baumann@rasdaman.com>.
- */
-package petascope.wcs2.schemas;
-
-import java.io.File;
-import java.io.FileReader;
-import java.io.IOException;
-import java.io.PrintWriter;
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServlet;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import org.apache.commons.io.IOUtils;
-
-/** Servlet that handles GET requests for the WCS 2.0 schema files.
- *
- * @author Andrei Aiordachioaie
- */
-public class SchemaServlet extends HttpServlet {
-
- /**
- * Processes requests for both HTTP <code>GET</code> and <code>POST</code> methods.
- * @param request servlet request
- * @param response servlet response
- * @throws ServletException if a servlet-specific error occurs
- * @throws IOException if an I/O error occurs
- */
- protected void processRequest(HttpServletRequest request, HttpServletResponse response)
- throws ServletException, IOException {
- response.setContentType("application/xml;charset=UTF-8");
- PrintWriter out = response.getWriter();
- try {
- String schemaFile = request.getPathInfo();
- String pathPrefix = "/xml/ogc/wcs/2.0.0/";
- File file = new File(getServletContext().getRealPath(pathPrefix + schemaFile));
- String fileContents = IOUtils.toString(new FileReader(file));
- out.write(fileContents);
- } finally {
- out.close();
- }
- }
-
- /**
- * Handles the HTTP <code>GET</code> method.
- * @param request servlet request
- * @param response servlet response
- * @throws ServletException if a servlet-specific error occurs
- * @throws IOException if an I/O error occurs
- */
- @Override
- protected void doGet(HttpServletRequest request, HttpServletResponse response)
- throws ServletException, IOException {
- processRequest(request, response);
- }
-
- /**
- * Handles the HTTP <code>POST</code> method.
- * @param request servlet request
- * @param response servlet response
- * @throws ServletException if a servlet-specific error occurs
- * @throws IOException if an I/O error occurs
- */
- @Override
- protected void doPost(HttpServletRequest request, HttpServletResponse response)
- throws ServletException, IOException {
- processRequest(request, response);
- }
-
- /**
- * Returns a short description of the servlet.
- * @return a String containing servlet description
- */
- @Override
- public String getServletInfo() {
- return "Short description";
- }
-}
diff --git a/petascope/src/petascope/wcs2/schemas/gml/Examples/2dIdentityConversion.xml b/petascope/src/petascope/wcs2/schemas/gml/Examples/2dIdentityConversion.xml
deleted file mode 100644
index 994917e..0000000
--- a/petascope/src/petascope/wcs2/schemas/gml/Examples/2dIdentityConversion.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<Conversion xmlns="http://www.opengis.net/gml/3.2"
- xmlns:gml="http://www.opengis.net/gml/3.2"
- xmlns:xlink="http://www.w3.org/1999/xlink"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.opengis.net/gml/3.2 http://schemas.opengis.net/gml/3.2.1/gml.xsd"
- gml:id="IdentityConversion2D">
- <!-- Example for a 2-D CRS identity conversion as defined in the GML 3.2.1 Application Schema for WCS 2.0 -->
- <!-- Last updated 2010-01-11 -->
- <!-- =============================================== -->
- <identifier codeSpace="urn:ogc:def:method:WCS-SWG:2.0:">IdentityConversion2D</identifier>
- <name>Identity Conversion 2D</name>
- <remarks>none provided </remarks>
- <scope>not known</scope>
- <method xlink:href="urn:ogc:def:method:WCS-SWG:2.0:IdentityMethod2D"/>
-</Conversion>
diff --git a/petascope/src/petascope/wcs2/schemas/gml/Examples/2dIdentityMethod.xml b/petascope/src/petascope/wcs2/schemas/gml/Examples/2dIdentityMethod.xml
deleted file mode 100644
index 949036f..0000000
--- a/petascope/src/petascope/wcs2/schemas/gml/Examples/2dIdentityMethod.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<OperationMethod xmlns="http://www.opengis.net/gml/3.2"
- xmlns:gml="http://www.opengis.net/gml/3.2"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.opengis.net/gml/3.2 http://schemas.opengis.net/gml/3.2.1/gml.xsd"
- gml:id="IdentityMethod2D">
- <!-- Example for a 2-D CRS identity transformation as defined in the GML 3.2.1 Application Schema for WCS 2.0 -->
- <!-- Last updated 2010-01-11 -->
- <!-- =============================================== -->
- <identifier codeSpace="urn:ogc:def:method:WCS-SWG:2.0:">IdentityMethod2D</identifier>
- <name>Identity Method 2D</name>
- <remarks>Method for use by a Coordinate Conversion for the identity transformation of two coordinates </remarks>
- <methodFormula>This coordinate converion shall be as specified by the equations:
- BaseX = DerivedX
- BaseY = DerivedY
-where
- DerivedX, DerivedY are position coordinates in the derived 2D CRS
- BaseX, BaseY are position coordinates in the 2D base CRS
- </methodFormula>
- <sourceDimensions>2</sourceDimensions>
- <targetDimensions>2</targetDimensions>
-</OperationMethod>
diff --git a/petascope/src/petascope/wcs2/schemas/gml/Examples/exampleRangeStructure.xml b/petascope/src/petascope/wcs2/schemas/gml/Examples/exampleRangeStructure.xml
deleted file mode 100644
index 519a5a5..0000000
--- a/petascope/src/petascope/wcs2/schemas/gml/Examples/exampleRangeStructure.xml
+++ /dev/null
@@ -1,35 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<gmlwcs:rangeStructure
- xmlns:gmlwcs="http://www.opengis.net/wcs/2.0/gml"
- xmlns:gml="http://www.opengis.net/gml/3.2"
- xmlns="http://www.w3.org/2001/XMLSchema"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.opengis.net/wcs/2.0/gml ../gmlwcsAll.xsd">
- <!-- Example for a coverage range structure as defined in the GML 3.2.1 Application Schema for WCS 2.0 -->
- <!-- It models the red, green, and blue channel of a Landsat scene. Pixels are defined as unsigned 8-bit quantities where 0 and 255 denote null values. -->
- <!-- Last updated 2010-01-11 -->
- <!-- =============================================== -->
- <gmlwcs:RangeStructure gml:id="RGB">
- <gmlwcs:rangeField >
- <gmlwcs:RangeField gml:id="Red" uom="W/cm^2">
- <gml:name>red</gml:name>
- <gmlwcs:dataType>UnsignedChar</gmlwcs:dataType>
- <gmlwcs:nilValueList>000 255</gmlwcs:nilValueList>
- </gmlwcs:RangeField>
- </gmlwcs:rangeField>
- <gmlwcs:rangeField >
- <gmlwcs:RangeField gml:id="Green" uom="W/cm^2">
- <gml:name>green</gml:name>
- <gmlwcs:dataType>UnsignedChar</gmlwcs:dataType>
- <gmlwcs:nilValueList>000 255</gmlwcs:nilValueList>
- </gmlwcs:RangeField>
- </gmlwcs:rangeField>
- <gmlwcs:rangeField >
- <gmlwcs:RangeField gml:id="Blue" uom="W/cm^2">
- <gml:name>blue</gml:name>
- <gmlwcs:dataType>UnsignedChar</gmlwcs:dataType>
- <gmlwcs:nilValueList>000 255</gmlwcs:nilValueList>
- </gmlwcs:RangeField>
- </gmlwcs:rangeField>
- </gmlwcs:RangeStructure>
-</gmlwcs:rangeStructure>
diff --git a/petascope/src/petascope/wcs2/schemas/gml/Examples/exampleRectifiedGridCoverage.xml b/petascope/src/petascope/wcs2/schemas/gml/Examples/exampleRectifiedGridCoverage.xml
deleted file mode 100644
index 9514ae7..0000000
--- a/petascope/src/petascope/wcs2/schemas/gml/Examples/exampleRectifiedGridCoverage.xml
+++ /dev/null
@@ -1,56 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<gmlwcs:RectifiedGridCoverage
- xmlns:gmlwcs="http://www.opengis.net/wcs/2.0/gml"
- xmlns:gml="http://www.opengis.net/gml/3.2"
- xmlns:xlink="http://www.w3.org/1999/xlink"
- xmlns="http://www.w3.org/2001/XMLSchema"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.opengis.net/wcs/2.0/gml ../gmlwcsAll.xsd"
- gml:id="Coverage1">
- <!-- Example for a domain set for a rectified grid coverage as defined in the GML 3.2.1 Application Schema for WCS 2.0 -->
- <!-- Last updated 2010-01-11 -->
- <!-- =============================================== -->
- <gml:domainSet>
- <gml:RectifiedGrid gml:id="RectifiedGrid1" dimension="2" srsName="urn:ogc:def:crs:EPSG::4326">
- <gml:limits>
- <gml:GridEnvelope>
- <gml:low>0 0</gml:low>
- <gml:high>9999 9999</gml:high>
- </gml:GridEnvelope>
- </gml:limits>
- <gml:axisLabels>column row</gml:axisLabels>
- <gml:origin>
- <gml:Point gml:id="Origin1" srsName="urn:ogc:def:crs:EPSG::4326">
- <gml:pos>99.9 99.9</gml:pos>
- </gml:Point>
- </gml:origin>
- <gml:offsetVector>1 0</gml:offsetVector>
- <gml:offsetVector>0 1</gml:offsetVector>
- </gml:RectifiedGrid>
- </gml:domainSet>
- <gml:rangeSet>
- <gml:File>
- <gml:rangeParameters xlink:href="TBDurl"/>
- <gml:fileReference>TBDurlOfFile</gml:fileReference>
- <gml:fileStructure>TBD</gml:fileStructure>
- </gml:File>
- </gml:rangeSet>
- <gmlwcs:rangeStructure>
- <gmlwcs:RangeStructure gml:id="RangeStructure1">
- <gmlwcs:rangeField >
- <gmlwcs:RangeField gml:id="White" uom="W/cm^2">
- <gml:name>white</gml:name>
- <gmlwcs:dataType>UnsignedChar</gmlwcs:dataType>
- <gmlwcs:nilValueList>000 255</gmlwcs:nilValueList>
- </gmlwcs:RangeField>
- </gmlwcs:rangeField>
- </gmlwcs:RangeStructure>
- </gmlwcs:rangeStructure>
- <gml:coverageFunction>
- <gml:GridFunction>
- <gml:sequenceRule axisOrder="+1 +2">Linear</gml:sequenceRule>
- <gml:startPoint>0 0</gml:startPoint>
- </gml:GridFunction>
- </gml:coverageFunction>
-</gmlwcs:RectifiedGridCoverage>
-
diff --git a/petascope/src/petascope/wcs2/schemas/gml/Examples/exampleReferenceablGridCoverage.xml b/petascope/src/petascope/wcs2/schemas/gml/Examples/exampleReferenceablGridCoverage.xml
deleted file mode 100644
index bc9de96..0000000
--- a/petascope/src/petascope/wcs2/schemas/gml/Examples/exampleReferenceablGridCoverage.xml
+++ /dev/null
@@ -1,60 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<gmlwcs:ReferenceableGridCoverage
- xmlns:gmlwcs="http://www.opengis.net/wcs/2.0/gml"
- xmlns:gml="http://www.opengis.net/gml/3.2"
- xmlns:xlink="http://www.w3.org/1999/xlink"
- xmlns="http://www.w3.org/2001/XMLSchema"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.opengis.net/wcs/2.0/gml ../gmlwcsAll.xsd"
- gml:id="Coverage1">
- <!-- Example for a domain set for a rectified grid coverage containing a ReferencedGridByTransformation as defined in the GML 3.2.1 Application Schema for WCS 2.0 -->
- <!-- Last updated 2010-01-11 -->
- <!-- =============================================== -->
- <gml:domainSet>
- <gmlwcs:ReferencedGridByTransformation gml:id="ReferencedGrid1" dimension="2" srsName="InternalCRS1">
- <gml:limits>
- <gml:GridEnvelope>
- <gml:low>0 0</gml:low>
- <gml:high>9999 9999</gml:high>
- </gml:GridEnvelope>
- </gml:limits>
- <gml:axisLabels>Column Row</gml:axisLabels>
- <gmlwcs:gridCRS>
- <gml:DerivedCRS gml:id="InternalCRS1">
- <gml:identifier codeSpace="">InternalCRS1</gml:identifier>
- <gml:scope>not known</gml:scope>
- <gml:definedByConversion xlink:href="urn:ogc:coordinateOperation:WCS:2.0:IdentityConversion2D"/>
- <gml:baseCRS xlink:href="urn:ogc:crs:OGC:1.0:Image:AAA999"/>
- <gml:derivedCRSType codeSpace="">image</gml:derivedCRSType>
- <gml:usesCS xlink:href="urn:ogc:def:cs:OGC:1.0:GridCS2d"/>
- </gml:DerivedCRS>
- </gmlwcs:gridCRS>
- <gmlwcs:transformation xlink:href="TBDurl"/>
- </gmlwcs:ReferencedGridByTransformation>
- </gml:domainSet>
- <gml:rangeSet>
- <gml:File>
- <gml:rangeParameters xlink:href="TBDurl"/>
- <gml:fileReference>TBDurlOfFile</gml:fileReference>
- <gml:fileStructure>TBD</gml:fileStructure>
- </gml:File>
- </gml:rangeSet>
- <gmlwcs:rangeStructure>
- <gmlwcs:RangeStructure gml:id="Panchromatic">
- <gmlwcs:rangeField >
- <gmlwcs:RangeField gml:id="White" uom="w/cm^2">
- <gml:name>white</gml:name>
- <gmlwcs:dataType>unsignedInteger</gmlwcs:dataType>
- <gmlwcs:nilValueList>000 255</gmlwcs:nilValueList>
- </gmlwcs:RangeField>
- </gmlwcs:rangeField>
- </gmlwcs:RangeStructure>
- </gmlwcs:rangeStructure>
- <gml:coverageFunction>
- <gml:GridFunction>
- <gml:sequenceRule axisOrder="+1 +2">Linear</gml:sequenceRule>
- <gml:startPoint>0 0</gml:startPoint>
- </gml:GridFunction>
- </gml:coverageFunction>
-</gmlwcs:ReferenceableGridCoverage>
-
diff --git a/petascope/src/petascope/wcs2/schemas/gml/gmlwcsAll.xsd b/petascope/src/petascope/wcs2/schemas/gml/gmlwcsAll.xsd
deleted file mode 100644
index ae0d949..0000000
--- a/petascope/src/petascope/wcs2/schemas/gml/gmlwcsAll.xsd
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<schema targetNamespace="http://www.opengis.net/wcs/2.0/gml"
- xmlns:wcsgml="http://www.opengis.net/wcs/2.0/gml"
- xmlns="http://www.w3.org/2001/XMLSchema"
- xmlns:gml="http://www.opengis.net/gml/3.2"
- elementFormDefault="qualified" version="1.0.0">
- <annotation>
- <appinfo>gmlwcsAll.xsd</appinfo>
- <documentation>This is the XML Schema for the GML 3.2.1 Application schema for WCS 2.0.
- This XML Schema Document includes, directly and indirectly, all the XML Schema Documents defined by the GML 3.2.1 Application schema for WCS 2.0.
- Last updated: 2010-jan-11
- Copyright (c) 2010 Open Geospatial Consortium, Inc, All Rights Reserved.
- To obtain additional rights of use, visit http://www.opengeospatial.org/legal/.
- </documentation>
- </annotation>
- <!-- ========================================================= -->
- <!-- Includes and imports -->
- <!-- ========================================================= -->
- <include schemaLocation="wcsCoverage.xsd"/>
- <include schemaLocation="wcsGrids.xsd"/>
-</schema>
diff --git a/petascope/src/petascope/wcs2/schemas/gml/wcsCoverage.xsd b/petascope/src/petascope/wcs2/schemas/gml/wcsCoverage.xsd
deleted file mode 100644
index 5643a1d..0000000
--- a/petascope/src/petascope/wcs2/schemas/gml/wcsCoverage.xsd
+++ /dev/null
@@ -1,160 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<schema targetNamespace="http://www.opengis.net/wcs/2.0/gml"
- xmlns:gmlwcs="http://www.opengis.net/wcs/2.0/gml"
- xmlns:gml="http://www.opengis.net/gml/3.2"
- xmlns:xlink="http://www.w3.org/1999/xlink"
- xmlns="http://www.w3.org/2001/XMLSchema"
- elementFormDefault="qualified" version="1.0.0">
- <annotation>
- <appinfo source="urn:x-ogc:specification:wcs:gml-app-schema:schema-xsd:coverage:3.2.1">coverage.xsd</appinfo>
- <documentation>Part of GML 3.2.1 Application schema for WCS 2.0.
- Last updated: 2010-jan-11
- Copyright (c) 2010 Open Geospatial Consortium, Inc. All Rights Reserved.
- To obtain additional rights of use, visit http://www.opengeospatial.org/legal/.
- </documentation>
- </annotation>
- <!-- ============================= -->
- <!-- Includes and imports -->
- <!-- ============================= -->
- <import namespace="http://www.opengis.net/gml/3.2" schemaLocation="http://schemas.opengis.net/gml/3.2.1/gml.xsd"/>
- <!-- ============================= -->
- <!-- Body of this schema -->
- <!-- ============================= -->
- <element name="AbstractCoverage" type="gmlwcs:CoverageType" abstract="true" substitutionGroup="gml:AbstractCoverage">
- <annotation>
- <documentation>Extends gml:AbstractCoverage as needed for WCS 2.0, by adding a rangeStructure property. </documentation>
- </annotation>
- </element>
- <!-- ============================================================= -->
- <complexType name="CoverageType">
- <annotation>
- <documentation>The gml:coverageFunction property is included here, because it is included in both discrete and continuous coverages. This permits coverages in the gmlwcs:AbstractCoverage substitutionGroup to be used for either discrete and continuous coverages, in preparation for expected future elimination of this distinction. </documentation>
- </annotation>
- <complexContent>
- <extension base="gml:AbstractCoverageType">
- <sequence>
- <element ref="gmlwcs:rangeStructure"/>
- <element ref="gml:coverageFunction" minOccurs="0"/>
- </sequence>
- </extension>
- </complexContent>
- </complexType>
- <!-- ============================================================= -->
- <element name="GridCoverage" type="gmlwcs:CoverageType" substitutionGroup="gmlwcs:AbstractCoverage">
- <annotation>
- <documentation>A GridCoverage is a discrete point coverage in which the domain is a geometric grid of points.
-Note that this is the same as the MultiPointCoverage except that we have a gml:Grid to describe the domain.
-This simple grid coverage is not geometrically referenced to the earth, and hence no geometric positions are assignable to the points in the grid. Such geometric positioning is introduced in the RectifiedGridCoverage.
-Redefinition needed in order to benefit from the changes to the abstract ancestor AbstractCoverage.
- </documentation>
- <documentation>Since this GridCoverage uses the gmlwcs:CoverageType, it can be used for both discrete and continuous coverages. </documentation>
- </annotation>
- </element>
- <!-- ============================================================= -->
- <element name="RectifiedGridCoverage" type="gmlwcs:CoverageType" substitutionGroup="gmlwcs:AbstractCoverage">
- <annotation>
- <documentation>A RectifiedGridCoverage is a discrete point coverage based on a rectified grid. It is similar to the grid coverage except that the points of the grid are geometrically referenced. The rectified grid coverage has a domain that is a gml:RectifiedGrid geometry.
- Redefinition needed in order to benefit from the changes to the abstract ancestor AbstractCoverage.
- </documentation>
- <documentation>Since this RectifiedGridCoverage uses the gmlwcs:CoverageType, it can be used for both discrete and continuous coverages. </documentation>
- </annotation>
- </element>
- <!-- ============================================================= -->
- <element name="ReferenceableGridCoverage" type="gmlwcs:CoverageType" substitutionGroup="gmlwcs:AbstractCoverage">
- <annotation>
- <documentation>A ReferenceableGridCoverage is an implementation of ISO 19123 CV_DiscreteGridPointCoverage for a CV_ReferenceableGrid domain. It is a coverage based on a referenceable grid and has a domain geometry that is in the substitution group of AbstractReferenceableGrid.</documentation>
- <documentation>This equivalent of this element is being added to GML 3.2.1 by approved Change Request 07-112r3. </documentation>
- <documentation>Since this ReferenceableGridCoverage uses the gmlwcs:CoverageType, it can be used for both discrete and continuous coverages. </documentation>
- </annotation>
- </element>
- <!-- =============================================================
- RangeStructure defines the structure of a coverage in WCS 2.0
- ============================================================= -->
- <element name="rangeStructure" type="gmlwcs:RangeStructurePropertyType">
- <annotation>
- <documentation>The rangeStructure property includes or references the RangeStructure, introduced for coverage definitions used by WCS 2.0. </documentation>
- </annotation>
- </element>
- <!-- ============================================================= -->
- <complexType name="RangeStructurePropertyType">
- <sequence minOccurs="0">
- <element ref="gmlwcs:RangeStructure"/>
- </sequence>
- <attributeGroup ref="gml:OwnershipAttributeGroup"/>
- <attributeGroup ref="gml:AssociationAttributeGroup"/>
- </complexType>
- <!-- ============================================================= -->
- <element name="RangeStructure" type="gmlwcs:RangeStructureType" substitutionGroup="gml:AbstractGML">
- <annotation>
- <documentation>The RangeStructure element describes the structure of a coverage's range, introduced for coverage definitions used by WCS 2.0. </documentation>
- </annotation>
- </element>
- <!-- ============================================================= -->
- <complexType name="RangeStructureType">
- <complexContent>
- <extension base="gml:AbstractGMLType">
- <sequence>
- <element ref="gmlwcs:rangeField" maxOccurs="unbounded"/>
- </sequence>
- </extension>
- </complexContent>
- </complexType>
- <!-- ============================================================= -->
- <element name="rangeField" type="gmlwcs:RangeFieldPropertyType">
- <annotation>
- <documentation>The RangeField property includes or references one RangeField element. </documentation>
- </annotation>
- </element>
- <!-- ============================================================= -->
- <complexType name="RangeFieldPropertyType">
- <sequence minOccurs="0">
- <element name="RangeField" type="gmlwcs:RangeFieldType"/>
- </sequence>
- <attributeGroup ref="gml:OwnershipAttributeGroup"/>
- <attributeGroup ref="gml:AssociationAttributeGroup"/>
- </complexType>
- <!-- ============================================================= -->
- <element name="RangeField" type="gmlwcs:RangeFieldType" substitutionGroup="gml:AbstractGML">
- <annotation>
- <documentation>The RangeField element describes the structure of one Field of a coverage's range. </documentation>
- </annotation>
- </element>
- <!-- ============================================================= -->
- <complexType name="RangeFieldType">
- <complexContent>
- <extension base="gml:AbstractGMLType">
- <annotation>
- <documentation>The gml:name should be used for the unique identifier of this RangeField. </documentation>
- </annotation>
- <sequence>
- <element name="dataType" type="gmlwcs:DataType"/>
- <element ref="gmlwcs:nilValueList"/>
- </sequence>
- <attribute name="uom" type="gml:UomIdentifier" use="optional">
- <annotation>
- <documentation>Identifier of the Unit of Measure applicable to values of this RangeField. </documentation>
- </annotation>
- </attribute>
- </extension>
- </complexContent>
- </complexType>
- <!-- ============================================================= -->
- <complexType name="DataType">
- <simpleContent>
- <restriction base="gml:CodeType">
- <attribute name="codeSpace" type="anyURI" use="optional" default="http://schemas.opengis.net/wcs/2.0/gml/wcsDataTypeIdentifiers.xml">
- <annotation>
- <documentation>This element will contain an URN that identifies the datatype of this field. The default gml:Dictionary of allowed values of this dataType is wcsDataTypeIdentifiers.xml. </documentation>
- </annotation>
- </attribute>
- </restriction>
- </simpleContent>
- </complexType>
- <!-- ============================================================= -->
- <element name="nilValueList" type="gml:doubleList">
- <annotation>
- <documentation>List of the specific values of this RangeField that are used to designate non-valid values. </documentation>
- </annotation>
- </element>
- <!-- ============================================================= -->
-</schema>
diff --git a/petascope/src/petascope/wcs2/schemas/gml/wcsDataTypeIdentifiers.xml b/petascope/src/petascope/wcs2/schemas/gml/wcsDataTypeIdentifiers.xml
deleted file mode 100644
index bf10663..0000000
--- a/petascope/src/petascope/wcs2/schemas/gml/wcsDataTypeIdentifiers.xml
+++ /dev/null
@@ -1,111 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<Dictionary xmlns="http://www.opengis.net/gml/3.2"
- xmlns:gml="http://www.opengis.net/gml/3.2"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.opengis.net/gml/3.2 http://schemas.opengis.net/gml/3.2.1/gml.xsd"
- gml:id="DataTypeIdentifiers">
- <description>This dictionary specifies the standard values for dataType, specified in the WCS 2.0 GML 3.2.1 application schema. This dataType is for values of a RangeField. In addition, this dictionary specifies definition URNs in the "ogc" URN namespace for these values. This dictionary uses a currently unspecified simple dictionary profile of GML 3.2.1.
- Definitions are compatible with XML Schema as of 28 October 2004 [http://www.w3.org/TR/2004/REC-xmlschema-2-20041028/].
- Identifiers do not have an associated unit of measure.
- Last updated: 2010-jan-11
- Copyright (c) 2010 Open Geospatial Consortium, Inc. All Rights Reserved.
- To obtain additional rights of use, visit http://www.opengeospatial.org/legal/.
- </description>
- <identifier codeSpace="">DataTypeIdentifiers</identifier>
- <!-- ===================================================== -->
- <dictionaryEntry>
- <Definition gml:id="boolean">
- <description>Logical value; admissible values are "true" and "false" (in whatever case), as well as 0 (which shall represent "false") and 1 (which shall represent "true"). </description>
- <identifier codeSpace="urn:ogc:def:dataType:OGC:1.1">boolean</identifier>
- </Definition>
- </dictionaryEntry>
- <!-- ===================================================== -->
- <!-- ===================================================== -->
- <dictionaryEntry>
- <Definition gml:id="integer">
- <description>Positive or negative integer number without any limitation on maximum and minimum values. For expressing certain value range limitations the specialized types byte, shortInteger, int, and LongInteger are available. </description>
- <identifier codeSpace="urn:ogc:def:dataType:OGC:1.1">long</identifier>
- </Definition>
- </dictionaryEntry>
- <!-- ===================================================== -->
- <dictionaryEntry>
- <Definition gml:id="unsignedInteger">
- <description>Non-negative integer number without any limitation on minimum values. For expressing certain value range limitations the specialized types unsignedByte, unsignedShort, unsignedInt, and unsignedLong are available. </description>
- <identifier codeSpace="urn:ogc:def:dataType:OGC:1.1">unsignedInteger</identifier>
- </Definition>
- </dictionaryEntry>
- <!-- ===================================================== -->
- <!-- ===================================================== -->
- <dictionaryEntry>
- <Definition gml:id="byte">
- <description>Positive or negative integer number with values between -128 anf 127. </description>
- <identifier codeSpace="urn:ogc:def:dataType:OGC:1.1">byte</identifier>
- </Definition>
- </dictionaryEntry>
- <!-- ===================================================== -->
- <dictionaryEntry>
- <Definition gml:id="unsignedByte">
- <description>Non-negative integer number with values between 0 and 255. </description>
- <identifier codeSpace="urn:ogc:def:dataType:OGC:1.1">unsignedByte</identifier>
- </Definition>
- </dictionaryEntry>
- <!-- ===================================================== -->
- <dictionaryEntry>
- <Definition gml:id="short">
- <description>Positive or negative integer number with values between -32768 and 32767, which allows for a representation with 16 bits. </description>
- <identifier codeSpace="urn:ogc:def:dataType:OGC:1.1">short</identifier>
- </Definition>
- </dictionaryEntry>
- <!-- ===================================================== -->
- <dictionaryEntry>
- <Definition gml:id="unsignedShort">
- <description>Non-negative integer number with values between 0 and 65535, which allows for a representation with 16 bits. </description>
- <identifier codeSpace="urn:ogc:def:dataType:OGC:1.1">unsignedShort</identifier>
- </Definition>
- </dictionaryEntry>
- <!-- ===================================================== -->
- <dictionaryEntry>
- <Definition gml:id="int">
- <description>Positive or negative integer number with values between -2147483648 and 2147483647, which allows for a representation with 32 bits. </description>
- <identifier codeSpace="urn:ogc:def:dataType:OGC:1.1">int</identifier>
- </Definition>
- </dictionaryEntry>
- <!-- ===================================================== -->
- <dictionaryEntry>
- <Definition gml:id="unsignedInt">
- <description>Non-negative integer number with values between 0 and 4294967295, which allows for a representation with 32 bits. </description>
- <identifier codeSpace="urn:ogc:def:dataType:OGC:1.1">unsignedInt</identifier>
- </Definition>
- </dictionaryEntry>
- <!-- ===================================================== -->
- <dictionaryEntry>
- <Definition gml:id="long">
- <description>Positive or negative integer number with values between -9223372036854775808 and 9223372036854775807, which allows for a representation with 64 bits. </description>
- <identifier codeSpace="urn:ogc:def:dataType:OGC:1.1">long</identifier>
- </Definition>
- </dictionaryEntry>
- <!-- ===================================================== -->
- <dictionaryEntry>
- <Definition gml:id="unsignedLong">
- <description>Non-negative integer number with values between 0 and 18446744073709551616, which allows for a representation with 64 bits. </description>
- <identifier codeSpace="urn:ogc:def:dataType:OGC:1.1">unsignedLong</identifier>
- </Definition>
- </dictionaryEntry>
- <!-- ===================================================== -->
- <!-- ===================================================== -->
- <dictionaryEntry>
- <Definition gml:id="float">
- <description>Single-precision floating point number according to IEEE 754-1985. </description>
- <identifier codeSpace="urn:ogc:def:dataType:OGC:1.1">double</identifier>
- </Definition>
- </dictionaryEntry>
- <!-- ===================================================== -->
- <dictionaryEntry>
- <Definition gml:id="double">
- <description>Double-precision floating point number according to IEEE 754-1985. </description>
- <identifier codeSpace="urn:ogc:def:dataType:OGC:1.1">double</identifier>
- </Definition>
- </dictionaryEntry>
- <!-- ===================================================== -->
-</Dictionary>
-
diff --git a/petascope/src/petascope/wcs2/schemas/gml/wcsGrids.xsd b/petascope/src/petascope/wcs2/schemas/gml/wcsGrids.xsd
deleted file mode 100644
index 587e25d..0000000
--- a/petascope/src/petascope/wcs2/schemas/gml/wcsGrids.xsd
+++ /dev/null
@@ -1,156 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<schema targetNamespace="http://www.opengis.net/wcs/2.0/gml"
- xmlns:gmlwcs="http://www.opengis.net/wcs/2.0/gml"
- xmlns:gml="http://www.opengis.net/gml/3.2"
- xmlns:xsd="http://www.w3.org/2001/XMLSchema"
- xmlns="http://www.w3.org/2001/XMLSchema"
- elementFormDefault="qualified" version="1.0.0" xml:lang="en">
- <annotation>
- <appinfo>wcsGrids.xsd</appinfo>
- <documentation>This XML Schema Document encodes extensions to GML 3.2.1 for grids that are referenced by a Transformation, named "ReferencedGridByTransformation". This document also extends the alternatives allowed in gml:ParameterValueType as expected to be needed by such Transformations.
- Last updated: 2010-jan-11
- Copyright (c) 2010 Open Geospatial Consortium, Inc. All Rights Reserved.
- To obtain additional rights of use, visit http://www.opengeospatial.org/legal/.
- </documentation>
- </annotation>
- <!-- ============================================================== -->
- <!-- Includes and imports -->
- <!-- ============================================================== -->
- <import namespace="http://www.opengis.net/gml/3.2" schemaLocation="http://schemas.opengis.net/gml/3.2.1/gml.xsd"/>
- <!-- ============================================================== -->
- <!-- Elements and types -->
- <!-- ============================================================== -->
- <element name="AbstractReferenceableGrid" type="gmlwcs:AbstractReferenceableGridType" abstract="true" substitutionGroup="gml:Grid">
- <annotation>
- <documentation>AbstractReferenceableGrid is an encoding of CV_ReferenceableGrid in ISO 19123. AbstractReferenceableGrid is the head of a substitution group that may include multiple concrete implementations.
-
-A referenceable grid is a grid associated with a transformation that can be used to convert grid coordinate values to values of coordinates referenced to an external coordinate reference system [ISO 19123]. The transformation between grid coordinates and ‘external’ coordinates is usually non-affine, and may take different forms. It may be described analytically (e.g., through parametrised mathematical image rectification models); or it may provided in a table, for instance, relating the grid points to coordinates in the external coordinate reference system [ISO 19123, §8.2.1].
-
-The inherited attribute group gml:SRSReferenceGroup shall link the referenceable grid to the internal coordinate reference system of the grid.
- </documentation>
- <documentation>This element and its type are copied from approved Change Request 07-112r3, which adds them to GML 3.2.1. </documentation>
- </annotation>
- </element>
- <!-- =========================================================== -->
- <complexType name="AbstractReferenceableGridType" abstract="true">
- <complexContent>
- <extension base="gml:GridType"/>
- </complexContent>
- </complexType>
- <!-- =========================================================== -->
- <element name="referenceableGridProperty" type="gmlwcs:ReferenceableGridPropertyType">
- <annotation>
- <documentation>This element and its type are copied from approved Change Request 07-112r3, which adds them to GML 3.2.1. </documentation>
- </annotation>
- </element>
- <!-- =========================================================== -->
- <complexType name="ReferenceableGridPropertyType">
- <sequence>
- <element ref="gmlwcs:AbstractReferenceableGrid"/>
- </sequence>
- <attributeGroup ref="gml:AssociationAttributeGroup"/>
- <attributeGroup ref="gml:OwnershipAttributeGroup"/>
- </complexType>
- <!-- =========================================================== -->
- <element name="ReferencedGridByTransformation" type="gmlwcs:ReferencedGridByTransformationType" substitutionGroup="gmlwcs:AbstractReferenceableGrid">
- <annotation>
- <documentation>ReferencedGridByTransformation encodes one type of CV_ReferenceableGrid as defined in ISO 19123, using a gml:Transformation or gml:ConcatenatedOperation to specify the relationship between positions in the grid and corresponding positions in another CRS. This encoding also generalises CV_ReferenceableGrid to allow including more than one referencing Transformation. </documentation>
- <documentation>This element and its type are copied from Change Request 09-091r1, which adds them to GML 3.2.1. </documentation>
- </annotation>
- </element>
- <!-- =========================================================== -->
- <complexType name="ReferencedGridByTransformationType">
- <complexContent>
- <extension base="gmlwcs:AbstractReferenceableGridType">
- <sequence>
- <element ref="gmlwcs:gridCRS" minOccurs="0">
- <annotation>
- <documentation>The gridCRS is a composition association to the definition of the internal CRS for this extended gml:Grid. This definition shall be the one referenced by the gml:srsName attribute in the gml:GridType. This CRS definition shall be included here if its definition is needed by some data receivers and is not otherwise available using that gml:srsName value. </documentation>
- </annotation>
- </element>
- <choice maxOccurs="unbounded">
- <annotation>
- <documentation>This choice encodes an unordered list of associations to coordinate Transformations or Concatenated Operations that each (geo)reference this ReferenceableGrid. Each of these Transformations or Concatenated Operations shall reference the internal CRS for this extended gml:Grid, as either its sourceCRS or targetCRS. This transformation association may be repeated when this ReferencedGridByTransformation is referenced to more than one other CRS, and/or is referenced to the same other CRS by multiple Transformation versions. </documentation>
- </annotation>
- <element name="transformation" type="gml:TransformationPropertyType"/>
- <element name="concatenatedOperation" type="gml:ConcatenatedOperationPropertyType"/>
- </choice>
- </sequence>
- </extension>
- </complexContent>
- </complexType>
- <!-- =========================================================== -->
- <element name="gridCRS" type="gmlwcs:GridCRSPropertyType">
- <annotation>
- <documentation>The gridCRS is a composition association to the definition of the internal CRS for this extended gml:Grid. This internal CRS may be a DerivedCRS, EngineeringCRS, ImageCRS, or CompoundCRS. However, proposed OGC Best Practices Paper 09-085r1 recommends that this internal CRS always be a DerivedCRS. </documentation>
- <documentation>This element and its type are copied from Change Request 09-091r1, which adds them to GML 3.2.1. </documentation>
- </annotation>
- </element>
- <!-- =========================================================== -->
- <complexType name="GridCRSPropertyType">
- <sequence>
- <element ref="gml:AbstractCRS"/>
- </sequence>
- </complexType>
- <!-- =========================================================== -->
- <!-- =========================================================== -->
- <element name="ParameterValue" type="gmlwcs:ParameterValueType" substitutionGroup="gml:AbstractGeneralParameterValue">
- <annotation>
- <documentation>Extends gml:ParameterValue to also allow values that are a gml:Geometry or a gml:vector. </documentation>
- <documentation>This element and its type are copied from Change Request 09-091r1, which adds them to GML 3.2.1. </documentation>
- </annotation>
- </element>
- <!-- =========================================================== -->
- <complexType name="ParameterValueType">
- <complexContent>
- <extension base="gml:AbstractGeneralParameterValueType">
- <sequence>
- <choice>
- <element ref="gml:value"/>
- <element ref="gml:dmsAngleValue"/>
- <element ref="gml:stringValue"/>
- <element ref="gml:integerValue"/>
- <element ref="gml:booleanValue"/>
- <element ref="gml:valueList"/>
- <element ref="gml:integerValueList"/>
- <element ref="gml:valueFile"/>
- <element ref="gmlwcs:geometryValue"/>
- <element ref="gmlwcs:vectorValue"/>
- </choice>
- <element ref="gml:operationParameter"/>
- </sequence>
- </extension>
- </complexContent>
- </complexType>
- <!-- =========================================================== -->
- <element name="geometryValue" type="gml:GeometryPropertyType">
- <annotation>
- <documentation>A geometry used as a coordinate operation parameter value, which contains any type of geometry element, with a reference to its associated coordinate reference system. </documentation>
- <documentation>This element and its type are copied from Change Request 09-091r1, which adds them to GML 3.2.1. </documentation>
- </annotation>
- </element>
- <!-- =========================================================== -->
- <element name="vectorValue" type="gml:VectorType">
- <annotation>
- <documentation>Vector value of a coordinate operation parameter. A vectorValue can represent a distance in a direction (when the magnitude of the vector is significant) or just a direction (when the magnitude of the vector is not considered significant). This vectorValue shall use the coordinate axes directions and units of the coordinate system in the referenced coordinate reference system. This coordinate reference system will often be the same as referenced by an associated geometryValue coordinate operation parameter. </documentation>
- </annotation>
- </element>
- <!-- =========================================================== -->
- <!-- =========================================================== -->
- <element name="SimpleMultiPoint" type="gmlwcs:SimpleMultiPointType" substitutionGroup="gml:AbstractGeometricAggregate">
- <annotation>
- <documentation>gml:SimpleMultiPoint implements, and provides a simplified encoding for, ISO 19107 GM_MultiPoint (see ISO 19107:2003, 6.5.4). A gml:SimpleMultiPoint consists of a list of DirectPositions. </documentation>
- </annotation>
- </element>
- <!-- =========================================================== -->
- <complexType name="SimpleMultiPointType">
- <complexContent>
- <extension base="gml:AbstractGeometricAggregateType">
- <sequence>
- <element name="positions" type="gml:DirectPositionListType"/>
- </sequence>
- </extension>
- </complexContent>
- </complexType>
- <!-- =========================================================== -->
-</schema>
diff --git a/petascope/src/petascope/wcs2/schemas/wcsAll.xsd b/petascope/src/petascope/wcs2/schemas/wcsAll.xsd
deleted file mode 100644
index 21f0e83..0000000
--- a/petascope/src/petascope/wcs2/schemas/wcsAll.xsd
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<schema targetNamespace="http://www.opengis.net/wcs/2.0"
- xmlns:wcs="http://www.opengis.net/wcs/2.0"
- xmlns="http://www.w3.org/2001/XMLSchema"
- elementFormDefault="qualified" version="2.0.0" xml:lang="en">
- <annotation>
- <appinfo>wcsAll.xsd</appinfo>
- <documentation>This XML Schema Document includes, directly and indirectly, all the XML Schema Documents defined by the OGC Web Coverage Service (WCS).
- Last updated: 2010-jan-11
- Copyright (c) 2010 Open Geospatial Consortium, Inc, All Rights Reserved.
- To obtain additional rights of use, visit http://www.opengeospatial.org/legal/.
- </documentation>
- </annotation>
- <!-- ============================================================== -->
- <!-- includes and imports -->
- <!-- ============================================================== -->
- <import namespace="http://www.opengis.net/wcs/2.0/gml" schemaLocation="gml/gmlwcsAll.xsd"/>
- <include schemaLocation="wcsGetCoverage.xsd"/>
- <include schemaLocation="wcsDescribeCoverage.xsd"/>
- <include schemaLocation="wcsGetCapabilities.xsd"/>
-</schema>
diff --git a/petascope/src/petascope/wcs2/schemas/wcsCommon.xsd b/petascope/src/petascope/wcs2/schemas/wcsCommon.xsd
deleted file mode 100644
index c1d5b33..0000000
--- a/petascope/src/petascope/wcs2/schemas/wcsCommon.xsd
+++ /dev/null
@@ -1,87 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<schema targetNamespace="http://www.opengis.net/wcs/2.0"
- xmlns:wcs="http://www.opengis.net/wcs/2.0"
- xmlns:ows="http://www.opengis.net/ows/1.1"
- xmlns:gml="http://www.opengis.net/gml/3.2"
- xmlns="http://www.w3.org/2001/XMLSchema"
- elementFormDefault="qualified" version="2.0.0" xml:lang="en">
- <annotation>
- <appinfo>wcsContents.xsd</appinfo>
- <appinfo>
- <GMLProfileSchema>http://schemas.opengis.net/wcs/2.0/gml/gmlwcsAll.xsd</GMLProfileSchema>
- </appinfo>
- <documentation>This XML Schema Document encodes the elements and types that are shared by multiple WCS operations.
- Last updated: 2010-jan-11
- Copyright (c) 2010 Open Geospatial Consortium, Inc, All Rights Reserved.
- To obtain additional rights of use, visit http://www.opengeospatial.org/legal/.
- </documentation>
- </annotation>
- <!-- ============================================================== -->
- <!-- includes and imports -->
- <!-- ============================================================== -->
- <import namespace="http://www.opengis.net/gml/3.2" schemaLocation="http://schemas.opengis.net/gml/3.2.1/gml.xsd"/>
- <import namespace="http://www.opengis.net/ows/1.1" schemaLocation="http://schemas.opengis.net/ows/1.1.0/owsAll.xsd"/>
- <!-- ============================================================== -->
- <!-- elements and types -->
- <!-- ============================================================== -->
- <complexType name="RequestBaseType">
- <annotation>
- <documentation>XML encoded WCS operation request base, for all operations except GetCapabilities. In this XML encoding, no "request" parameter is included, since the element name specifies the specific operation. </documentation>
- </annotation>
- <sequence/>
- <attribute name="service" type="string" use="required" fixed="WCS">
- <annotation>
- <documentation>Service type identifier, where the value is the OWS type abbreviation. For WCS operation requests, the value is "WCS". </documentation>
- </annotation>
- </attribute>
- <attribute name="version" type="wcs:VersionStringType" use="required">
- <annotation>
- <documentation>Specification version for WCS version and operation. See Version parameter Subclause 7.3.1 of OWS Common for more information. </documentation>
- </annotation>
- </attribute>
- </complexType>
- <simpleType name="VersionStringType">
- <restriction base="string">
- <pattern value="2\.0\.\d+"/>
- </restriction>
- </simpleType>
- <!-- =========================================================== -->
- <element name="id" type="wcs:CoverageIdType">
- <annotation>
- <documentation>This element is a wrapper for the gml:id attribute. Needed to allow lists of identifiers. </documentation>
- </annotation>
- </element>
- <complexType name="CoverageIdType">
- <attribute ref="gml:id"/>
- </complexType>
- <!-- =========================================================== -->
- <element name="ServiceParameters" type="wcs:ServiceParametersType"/>
- <complexType name="ServiceParametersType">
- <sequence>
- <element name="supportedCrsList" type="wcs:CrsListType"/>
- <element name="supportedFormatList" type="wcs:FormatListType"/>
- </sequence>
- </complexType>
-
- <simpleType name="CrsListType">
- <list itemType="anyURI"/>
- </simpleType>
- <simpleType name="FormatListType">
- <list itemType="ows:MimeType"/>
- </simpleType>
- <!-- =========================================================== -->
- <element name="WcsServiceMetadata" type="wcs:ServiceMetadataType"/>
- <complexType name="ServiceMetadataType">
- <sequence>
- <!-- nothing defined here, it is a container for potential additions done by extensions -->
- </sequence>
- </complexType>
- <!-- =========================================================== -->
- <element name="Contents" type="wcs:ContentsType"/>
- <complexType name="ContentsType">
- <sequence>
- <element ref="wcs:id" minOccurs="0" maxOccurs="unbounded"/>
- </sequence>
- </complexType>
-</schema>
-
diff --git a/petascope/src/petascope/wcs2/schemas/wcsDescribeCoverage.xsd b/petascope/src/petascope/wcs2/schemas/wcsDescribeCoverage.xsd
deleted file mode 100644
index c3c4ec3..0000000
--- a/petascope/src/petascope/wcs2/schemas/wcsDescribeCoverage.xsd
+++ /dev/null
@@ -1,73 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<schema targetNamespace="http://www.opengis.net/wcs/2.0"
- xmlns:wcs="http://www.opengis.net/wcs/2.0"
- xmlns:gml="http://www.opengis.net/gml/3.2"
- xmlns:gmlwcs="http://www.opengis.net/wcs/2.0/gml"
- xmlns="http://www.w3.org/2001/XMLSchema"
- elementFormDefault="qualified" version="2.0.0" xml:lang="en">
- <annotation>
- <appinfo>wcsDescribeCoverage.xsd</appinfo>
- <appinfo>
- <GMLProfileSchema>http://schemas.opengis.net/wcs/2.0/gml/gmlwcsAll.xsd</GMLProfileSchema>
- </appinfo>
- <documentation>This XML Schema Document defines the DescribeCoverage operation request and response XML elements and types, used by the OGC Web Coverage Service (WCS).
- Last updated: 2010-jan-11
- Copyright (c) 2010 Open Geospatial Consortium, Inc, All Rights Reserved.
- To obtain additional rights of use, visit http://www.opengeospatial.org/legal/.
- </documentation>
- </annotation>
- <!-- ============================================================== -->
- <!-- includes and imports -->
- <!-- ============================================================== -->
- <import namespace="http://www.opengis.net/gml/3.2" schemaLocation="http://schemas.opengis.net/gml/3.2.1/gml.xsd"></import>
- <import namespace="http://www.opengis.net/wcs/2.0/gml" schemaLocation="gml/gmlwcsAll.xsd"/>
- <include schemaLocation="wcsCommon.xsd"/>
- <!-- ============================================================== -->
- <!-- elements and types -->
- <!-- ============================================================== -->
- <element name="DescribeCoverage" type="wcs:DescribeCoverageType">
- <annotation>
- <documentation>Request to a WCS to perform the DescribeCoverage operation. This operation allows a client to retrieve descriptions of one or more coverages. In this XML encoding, no "request" parameter is included, since the element name specifies the specific operation. </documentation>
- </annotation>
- </element>
- <complexType name="DescribeCoverageType">
- <complexContent>
- <extension base="wcs:RequestBaseType">
- <sequence>
- <element ref="wcs:id" maxOccurs="unbounded">
- <annotation>
- <documentation>Unordered list of identifiers of desired coverages. A client can obtain identifiers by a prior GetCapabilities request, or from a third-party source. </documentation>
- </annotation>
- </element>
- </sequence>
- <attribute name="request" type="string" fixed="DescribeCoverage"/>
- </extension>
- </complexContent>
- </complexType>
- <!-- =========================================================== -->
- <element name="CoverageDescriptions" type="wcs:CoverageDescriptionsType">
- <annotation>
- <documentation>Response from a WCS DescribeCoverage operation, containing one or more coverage descriptions. </documentation>
- </annotation>
- </element>
- <complexType name="CoverageDescriptionsType">
- <sequence>
- <element name="CoverageDescription" type="wcs:CoverageDescriptionType" minOccurs="0" maxOccurs="unbounded"/>
- </sequence>
- </complexType>
- <!-- =========================================================== -->
- <complexType name="CoverageDescriptionType">
- <annotation>
- <documentation>Full description of coverages available from a WCS server. This description shall include sufficient information to allow all valid GetCoverage operation requests to be prepared by a WCS client. </documentation>
- </annotation>
- <complexContent>
- <extension base="gml:AbstractFeatureType">
- <sequence>
- <element ref="gml:domainSet"/>
- <element ref="gmlwcs:rangeStructure"/>
- <element ref="wcs:ServiceParameters"/>
- </sequence>
- </extension>
- </complexContent>
- </complexType>
-</schema>
diff --git a/petascope/src/petascope/wcs2/schemas/wcsExtensions.xml b/petascope/src/petascope/wcs2/schemas/wcsExtensions.xml
deleted file mode 100644
index eff982d..0000000
--- a/petascope/src/petascope/wcs2/schemas/wcsExtensions.xml
+++ /dev/null
@@ -1,125 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<Dictionary
- xmlns:wcs="http://www.opengis.net/wcs/2.0"
- xmlns:gml="http://www.opengis.net/gml/3.2"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns="http://www.opengis.net/gml/3.2"
- xsi:schemaLocation="http://www.opengis.net/gml/3.2 http://schemas.opengis.net/gml/3.2.1/gml.xsd"
- gml:id="WcsExtensions">
- <description>
- This dictionary specifies URNs and identifiers for WCS 2.0 extensions, to be communicated as part of a WCS GetCapabilities response. The dictionary is situated in the "ogc" namespace and uses a currently unspecified simple dictionary profile of GML 3.2.1.
-
- Last updated: 2010-jan-11
- Copyright (c) 2010 Open Geospatial Consortium, Inc. All Rights Reserved.
- To obtain additional rights of use, visit http://www.opengeospatial.org/legal/.
- </description>
- <identifier codeSpace="">WcsExtensions</identifier>
- <!-- ===================================================== -->
- <!-- data model extensions -->
- <!-- ===================================================== -->
- <dictionaryEntry>
- <Definition gml:id="wcs_dataModel_nilValues">
- <description>WCS 2.0 extension defining handling of nil values in a coverage. </description>
- <identifier codeSpace="urn:ogc:def:extension:OGC-WCS:2.0:dataModel:nilValues">1.0</identifier>
- </Definition>
- </dictionaryEntry>
- <!-- ===================================================== -->
- <dictionaryEntry>
- <Definition gml:id="wcs_dataModel_uncertainty">
- <description>WCS 2.0 extension defining handling of uncertainty in a coverage. </description>
- <identifier codeSpace="urn:ogc:def:extension:OGC-WCS:2.0:dataModel:uncertainty">1.0</identifier>
- </Definition>
- </dictionaryEntry>
- <!-- ===================================================== -->
- <!-- service model extensions -->
- <!-- ===================================================== -->
- <dictionaryEntry>
- <Definition gml:id="wcs_serviceModel_metadata">
- <description>WCS 2.0 extension defining advanced service metadata concepts. </description>
- <identifier codeSpace="urn:ogc:def:extension:OGC-WCS:2.0:serviceModel:metadata">1.0</identifier>
- </Definition>
- </dictionaryEntry>
- <!-- ===================================================== -->
- <dictionaryEntry>
- <Definition gml:id="wcs_serviceModel_scaling">
- <description>WCS 2.0 extension defining scaling and interpolation of coverages. </description>
- <identifier codeSpace="urn:ogc:def:extension:OGC-WCS:2.0:serviceModel:scaling">1.0</identifier>
- </Definition>
- </dictionaryEntry>
- <!-- ===================================================== -->
- <dictionaryEntry>
- <Definition gml:id="wcs_serviceModel_crs">
- <description>WCS 2.0 extension defining coordinate reference system (CRS) handling within coverages. </description>
- <identifier codeSpace="urn:ogc:def:extension:OGC-WCS:2.0:serviceModel:crs">1.0</identifier>
- </Definition>
- </dictionaryEntry>
- <!-- ===================================================== -->
- <dictionaryEntry>
- <Definition gml:id="wcs_serviceModel_wcst">
- <description>WCS 2.0 extension defining transactional (ie, update) services. </description>
- <identifier codeSpace="urn:ogc:def:extension:OGC-WCS:2.0:serviceModel:wcst">1.0</identifier>
- </Definition>
- </dictionaryEntry>
- <!-- ===================================================== -->
- <dictionaryEntry>
- <Definition gml:id="wcs_serviceModel_wcps">
- <description>WCS 2.0 extension defining coverage processing services. </description>
- <identifier codeSpace="urn:ogc:def:extension:OGC-WCS:2.0:serviceModel:wcps">1.0</identifier>
- </Definition>
- </dictionaryEntry>
- <!-- ===================================================== -->
- <!-- protocol binding extensions -->
- <!-- ===================================================== -->
- <dictionaryEntry>
- <Definition gml:id="wcs_protocol_get">
- <description>WCS 2.0 extension defining the HTTP GET / KVP protocol encoding. </description>
- <identifier codeSpace="urn:ogc:def:extension:OGC-WCS:2.0:protocol:get">1.0</identifier>
- </Definition>
- </dictionaryEntry>
- <!-- ===================================================== -->
- <dictionaryEntry>
- <Definition gml:id="wcs_protocol_post">
- <description>WCS 2.0 extension defining the HTTP POST / XML protocol encoding. </description>
- <identifier codeSpace="urn:ogc:def:extension:OGC-WCS:2.0:protocol:post">1.0</identifier>
- </Definition>
- </dictionaryEntry>
- <!-- ===================================================== -->
- <dictionaryEntry>
- <Definition gml:id="wcs_protocol_soap">
- <description>WCS 2.0 extension defining the SOAP protocol encoding. </description>
- <identifier codeSpace="urn:ogc:def:extension:OGC-WCS:2.0:protocol:soap">1.0</identifier>
- </Definition>
- </dictionaryEntry>
- <!-- ===================================================== -->
- <!-- coverage encoding format extensions -->
- <!-- ===================================================== -->
- <dictionaryEntry>
- <Definition gml:id="wcs_coverageFormat_gml">
- <description>WCS 2.0 extension defining use of the GML coverage encoding format. </description>
- <identifier codeSpace="urn:ogc:def:extension:OGC-WCS:2.0:coverageFormat:gml">1.0</identifier>
- </Definition>
- </dictionaryEntry>
- <!-- ===================================================== -->
- <dictionaryEntry>
- <Definition gml:id="wcs_coverageFormat_geotiff">
- <description>WCS 2.0 extension defining use of the GeoTIFF coverage encoding format. </description>
- <identifier codeSpace="urn:ogc:def:extension:OGC-WCS:2.0:coverageFormat:geotiff">1.0</identifier>
- </Definition>
- </dictionaryEntry>
- <!-- ===================================================== -->
- <dictionaryEntry>
- <Definition gml:id="wcs_coverageFormat_netcdf">
- <description>WCS 2.0 extension defining use of the NetCDF coverage encoding format. </description>
- <identifier codeSpace="urn:ogc:def:extension:OGC-WCS:2.0:coverageFormat:netcdf">1.0</identifier>
- </Definition>
- </dictionaryEntry>
- <!-- ===================================================== -->
- <!-- usability extensions -->
- <!-- ===================================================== -->
- <dictionaryEntry>
- <Definition gml:id="wcs_usability_multilinguality">
- <description>WCS 2.0 extension defining multilingual access to a WCS. </description>
- <identifier codeSpace="urn:ogc:def:extension:OGC-WCS:2.0:usability:multilinguality">1.0</identifier>
- </Definition>
- </dictionaryEntry>
-</Dictionary>
diff --git a/petascope/src/petascope/wcs2/schemas/wcsGetCapabilities.xsd b/petascope/src/petascope/wcs2/schemas/wcsGetCapabilities.xsd
deleted file mode 100644
index 9996063..0000000
--- a/petascope/src/petascope/wcs2/schemas/wcsGetCapabilities.xsd
+++ /dev/null
@@ -1,56 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<schema targetNamespace="http://www.opengis.net/wcs/2.0"
- xmlns:wcs="http://www.opengis.net/wcs/2.0"
- xmlns:ows="http://www.opengis.net/ows/1.1"
- xmlns:gml="http://www.opengis.net/gml/3.2"
- xmlns="http://www.w3.org/2001/XMLSchema"
- elementFormDefault="qualified" version="2.0.0" xml:lang="en">
- <annotation>
- <appinfo>wcsGetCapabilities.xsd</appinfo>
- <documentation>This XML Schema Document encodes the GetCapabilities operation request and response used by the OGC Web Coverage Service (WCS).
- Last updated: 2010-jan-11
- Copyright (c) 2010 Open Geospatial Consortium, Inc, All Rights Reserved.
- To obtain additional rights of use, visit http://www.opengeospatial.org/legal/.
- </documentation>
- </annotation>
- <!-- ============================================================== -->
- <!-- includes and imports -->
- <!-- ============================================================== -->
- <import namespace="http://www.opengis.net/ows/1.1" schemaLocation="http://schemas.opengis.net/ows/1.1.0/owsAll.xsd"/>
- <import namespace="http://www.opengis.net/gml/3.2" schemaLocation="http://schemas.opengis.net/gml/3.2.1/gml.xsd"/>
- <include schemaLocation="wcsCommon.xsd"/>
- <!-- ============================================================== -->
- <!-- elements and types -->
- <!-- ============================================================== -->
- <element name="GetCapabilities" type="wcs:GetCapabilitiesType">
- <annotation>
- <documentation>Request to a WCS server to perform the GetCapabilities operation. This operation allows a client to retrieve a Capabilities XML document providing metadata for the specific WCS server. In this XML encoding, no "request" parameter is included, since the element name specifies the specific operation. </documentation>
- </annotation>
- </element>
- <complexType name="GetCapabilitiesType">
- <complexContent>
- <extension base="ows:GetCapabilitiesType">
- <sequence/>
- <attribute name="request" type="string" fixed="GetCapabilities"/>
- <attribute name="service" type="ows:ServiceType" use="required" fixed="WCS"/>
- <attribute name="version" type="wcs:VersionStringType" use="required"/>
- </extension>
- </complexContent>
- </complexType>
- <!-- =========================================================== -->
- <element name="Capabilities" type="wcs:CapabilitiesType">
- <annotation>
- <documentation>XML encoded WCS GetCapabilities operation response. The Capabilities document provides clients with service metadata about a specific service instance, including metadata about the coverages served. If the server does not implement the updateSequence parameter, the server shall always return the Capabilities document, without the updateSequence parameter. When the server implements the updateSequence parameter and the GetCapabilities operation request included the updateSequence parameter with the current value, the server shall return this element with only the "version" and "updateSequence" attributes. Otherwise, all optional sections shall be included or not depending on the actual value of the Contents parameter in the GetCapabilities operation request. </documentation>
- </annotation>
- </element>
- <complexType name="CapabilitiesType">
- <complexContent>
- <extension base="ows:CapabilitiesBaseType">
- <sequence>
- <element ref="wcs:Contents"/>
- <element ref="wcs:WcsServiceMetadata" minOccurs="0"/>
- </sequence>
- </extension>
- </complexContent>
- </complexType>
-</schema>
diff --git a/petascope/src/petascope/wcs2/schemas/wcsGetCoverage.xsd b/petascope/src/petascope/wcs2/schemas/wcsGetCoverage.xsd
deleted file mode 100644
index 57ef8ed..0000000
--- a/petascope/src/petascope/wcs2/schemas/wcsGetCoverage.xsd
+++ /dev/null
@@ -1,88 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<schema targetNamespace="http://www.opengis.net/wcs/2.0"
- xmlns:wcs="http://www.opengis.net/wcs/2.0"
- xmlns:gml="http://www.opengis.net/gml/3.2"
- xmlns:gmlwcs="http://www.opengis.net/wcs/2.0/gml"
- xmlns="http://www.w3.org/2001/XMLSchema"
- elementFormDefault="qualified" version="2.0.0" xml:lang="en">
- <annotation>
- <appinfo>wcsGetCoverage.xsd</appinfo>
- <documentation>This XML Schema Document defines the GetCoverage operation request elements and types, for the OGC Web Coverage Service (WCS).
- The GetCoverage request element is GetCoverage. The GetCoverage response element is a specialization of gmlwcs:AbstractCoverage.
- Last updated: 2010-jan-11
- Copyright (c) 2007 Open Geospatial Consortium, Inc. All Rights Reserved.
- To obtain additional rights of use, visit http://www.opengeospatial.org/legal/.
- </documentation>
- </annotation>
- <!-- ============================================================== -->
- <!-- includes and imports -->
- <!-- ============================================================== -->
- <import namespace="http://www.opengis.net/wcs/2.0/gml" schemaLocation="gml/gmlwcsAll.xsd"/>
- <include schemaLocation="wcsCommon.xsd"/>
- <!-- ============================================================== -->
- <!-- elements and types -->
- <!-- ============================================================== -->
- <element name="GetCoverage" type="wcs:GetCoverageType">
- <annotation>
- <documentation>Request to a WCS to perform the GetCoverage operation. This operation allows a client to retrieve a subset of one coverage. </documentation>
- </annotation>
- </element>
- <complexType name="GetCoverageType">
- <complexContent>
- <extension base="wcs:RequestBaseType">
- <sequence>
- <element ref="wcs:id">
- <annotation>
- <documentation>Identifier of the coverage that this GetCoverage operation request shall draw from. </documentation>
- </annotation>
- </element>
- <choice minOccurs="0" maxOccurs="unbounded">
- <element name="trimDimension" type="wcs:DimensionTrimType"/>
- <element name="sliceDimension" type="wcs:DimensionSliceType"/>
- </choice>
- </sequence>
- <attribute name="request" type="string" fixed="GetCoverage"/>
- </extension>
- </complexContent>
- </complexType>
- <!-- ======================================================= -->
- <!-- Domain subset types and elements -->
- <!-- ======================================================= -->
- <complexType name="DimensionSubsetType" abstract="true">
- <annotation>
- <documentation>Definition of the desired subset of the domain of the coverage. This is either a Trim operation, or a Slice operation.</documentation>
- </annotation>
- <sequence>
- <element name="dimension" type="NCName"/>
- </sequence>
- </complexType>
- <!-- ======================================================= -->
- <complexType name="DimensionTrimType">
- <annotation>
- <documentation>Describes the trimming of a coverage's domain axis, between two values.</documentation>
- </annotation>
- <complexContent>
- <extension base="wcs:DimensionSubsetType">
- <sequence>
- <element name="trimLow" type="double" minOccurs="0"/>
- <element name="trimHigh" type="double" minOccurs="0"/>
- </sequence>
- </extension>
- </complexContent>
- </complexType>
- <!-- ======================================================= -->
- <complexType name="DimensionSliceType">
- <annotation>
- <documentation>Describes the slicing of a coverage's domain axis at a particular point.</documentation>
- </annotation>
- <complexContent>
- <extension base="wcs:DimensionSubsetType">
- <sequence>
- <element name="slicePoint" type="double"/>
- </sequence>
- </extension>
- </complexContent>
- </complexType>
- <!-- ======================================================= -->
-</schema>
-
diff --git a/petascope/src/petascope/wcs2/server/Wcs2Server.java b/petascope/src/petascope/wcs2/server/Wcs2Server.java
deleted file mode 100644
index cb5f6f9..0000000
--- a/petascope/src/petascope/wcs2/server/Wcs2Server.java
+++ /dev/null
@@ -1,120 +0,0 @@
-/*
- * This file is part of rasdaman community.
- *
- * Rasdaman community is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * Rasdaman community is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with rasdaman community. If not, see <http://www.gnu.org/licenses/>.
- *
- * Copyright 2003, 2004, 2005, 2006, 2007, 2008, 2009 Peter Baumann /
- rasdaman GmbH.
- *
- * For more information please see <http://www.rasdaman.org>
- * or contact Peter Baumann via <baumann@rasdaman.com>.
- */
-package petascope.wcs2.server;
-
-//~--- non-JDK imports --------------------------------------------------------
-import javax.servlet.ServletException;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import petascope.ConfigManager;
-
-import petascope.wcps.server.core.DbMetadataSource;
-
-import petascope.wcs.server.exceptions.WCSException;
-
-import petascope.wcs2.server.ops.DescribeCoverage;
-import petascope.wcs2.server.ops.GetCapabilities;
-import petascope.wcs2.server.ops.GetCoverage;
-
-//~--- JDK imports ------------------------------------------------------------
-/**
- * The Web Coverage Service (WcsServer)
- * This class provides methods for each of the WCS operations:
- * - GetCapabilities
- * - DescribeCoverage
- * - GetCoverage
- *
- * @author Andrei Aiordachioaie
- */
-public class Wcs2Server {
-
- private static Logger LOG = LoggerFactory.getLogger(Wcs2Server.class);
-
- /* The Operations to delegate to */
- private GetCapabilities capa;
- private DescribeCoverage desc;
- private GetCoverage getcov;
-
- /* Globals */
- private DbMetadataSource meta;
-
- /**
- * constructor
- * @param settingsPath path to the "settings.properties" file
- */
- public Wcs2Server(String settingsPath, DbMetadataSource source) throws ServletException {
- ConfigManager.getInstance(settingsPath, null);
- meta = source;
-
- try {
- capa = new GetCapabilities(meta);
- desc = new DescribeCoverage(meta);
- getcov = new GetCoverage(meta);
- } catch (Exception e) {
- LOG.error("Could not init WCS 2.0");
-
- throw new RuntimeException("Could not initialize WCS 2.0", e);
- }
- }
-
- /**
- * WcsServer GetCapabilities operation
- */
- public String GetCapabilities(String stringXml) throws WCSException {
- LOG.trace("Received input:\n{}", stringXml);
- LOG.info("Executing operation GetCapabilities...");
- String result = capa.execute(stringXml);
-
- LOG.info("GetCapabilities finished");
-
- return result;
- }
-
- /**
- * WcsServer DescribeCoverage operation
- */
- public String DescribeCoverage(String stringXml) throws WCSException {
- LOG.trace("Received input:\n{}", stringXml);
- LOG.info("Executing operation DescribeCoverage...");
- String result = desc.execute(stringXml);
-
- LOG.info("DescribeCoverage finished");
-
- return result;
- }
-
- /**
- * WcsServer GetCoverage operation
- */
- public String GetCoverage(String stringXml) throws WCSException {
- LOG.trace("Received input:\n{}", stringXml);
- LOG.info("Executing operation GetCoverage...");
- String result = getcov.execute(stringXml);
-
- LOG.info("GetCoverage finished");
-
- return result;
- }
-}
diff --git a/petascope/src/petascope/wcs2/server/ops/DescribeCoverage.java b/petascope/src/petascope/wcs2/server/ops/DescribeCoverage.java
deleted file mode 100644
index 6f4e752..0000000
--- a/petascope/src/petascope/wcs2/server/ops/DescribeCoverage.java
+++ /dev/null
@@ -1,204 +0,0 @@
-/*
- * This file is part of rasdaman community.
- *
- * Rasdaman community is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * Rasdaman community is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with rasdaman community. If not, see <http://www.gnu.org/licenses/>.
- *
- * Copyright 2003, 2004, 2005, 2006, 2007, 2008, 2009 Peter Baumann /
- rasdaman GmbH.
- *
- * For more information please see <http://www.rasdaman.org>
- * or contact Peter Baumann via <baumann@rasdaman.com>.
- */
-package petascope.wcs2.server.ops;
-
-//~--- non-JDK imports --------------------------------------------------------
-import java.util.HashSet;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import petascope.ConfigManager;
-
-import petascope.wcps.server.core.CellDomainElement;
-import petascope.wcps.server.core.DbMetadataSource;
-import petascope.wcps.server.core.DomainElement;
-import petascope.wcps.server.core.Metadata;
-import petascope.wcps.server.core.RangeElement;
-
-import petascope.wcs.server.exceptions.WCSException;
-
-//~--- JDK imports ------------------------------------------------------------
-
-import java.util.Iterator;
-import java.util.List;
-import java.util.Set;
-import petascope.wcps.server.core.SDU;
-import petascope.wcs.server.exceptions.InvalidParameterValueException;
-import petascope.wcs.server.exceptions.InvalidServiceConfigurationException;
-import petascope.wcs.server.exceptions.NoApplicableCodeException;
-
-/**
- * Describe Coverage operation for WCS 2.0
- *
- * @author Andrei Aiordachioaie
- */
-public class DescribeCoverage implements WcsOperation {
-
- public static String DATATYPE_URN_PREFIX = "urn:ogc:def:dataType:OGC:1.1:";
- private static Logger LOG = LoggerFactory.getLogger(DescribeCoverage.class);
- /* Template XMLs for response types */
- private String DescribeCoverageResponse;
- /* Other useful stuff */
- private String coverageDescriptionTemplate;
- private String listOfFormats;
- private String low, high, axisLabels;
- private DbMetadataSource meta;
- private String rangeComponentTemplate;
- private String rangeComponents, gridDimension, gridId;
-
- public DescribeCoverage(DbMetadataSource metadata) throws InvalidServiceConfigurationException {
- meta = metadata;
-
- DescribeCoverageResponse = ConfigManager.WCS2_DESCRIBE_COVERAGE_TEMPLATE;
- if (DescribeCoverageResponse == null) {
- throw new InvalidServiceConfigurationException("Could not find template file.");
- }
- listOfFormats = "application/xml";
-
- /* Find the CoverageDescription template string */
- String starttag = "<wcs:CoverageDescription ", endtag = "</wcs:CoverageDescription>";
- int start = DescribeCoverageResponse.indexOf(starttag);
- int end = DescribeCoverageResponse.indexOf(endtag);
-
- coverageDescriptionTemplate = DescribeCoverageResponse.substring(start, end + endtag.length());
- String newResponse = DescribeCoverageResponse.substring(0, start - 1) + DescribeCoverageResponse.substring(end + endtag.length());
-
- DescribeCoverageResponse = newResponse;
-
- /* Find the RangeComponent template string */
- starttag = "<gmlwcs:rangeField";
- endtag = "</gmlwcs:rangeField>";
- start = coverageDescriptionTemplate.indexOf(starttag);
- end = coverageDescriptionTemplate.indexOf(endtag);
- rangeComponentTemplate = coverageDescriptionTemplate.substring(start, end + endtag.length());
- String newTemplate = coverageDescriptionTemplate.substring(0, start - 1) + coverageDescriptionTemplate.substring(end + endtag.length());
-
- coverageDescriptionTemplate = newTemplate;
- }
-
- @Override
- public String execute(String stringXml) throws WCSException {
- String output;
- String desc = "";
-
- String listOfCoverageDescriptions = "";
- int start, end;
-
- start = stringXml.indexOf("gml:id=\"");
- while (start != -1) {
- end = stringXml.substring(start + 8).indexOf("\"");
- String coverageId = stringXml.substring(start + 8, start + 8 + end);
-
- stringXml = stringXml.substring(start + 8 + end + 1);
- start = stringXml.indexOf("gml:id=\"");
-
- // Describe "coverageId"
- if (meta.existsCoverageName(coverageId)) {
- Metadata cov = null;
-
- // Read in coverage metadata
- try {
- cov = meta.read(coverageId);
- } catch (Exception e) {
- e.printStackTrace();
-
- throw new NoApplicableCodeException("Metadata for coverage '" + coverageId + "' is not valid.");
- }
-
- // Analyze the grid components and their values
- Iterator<DomainElement> it = cov.getDomainIterator();
- Iterator<CellDomainElement> it2 = cov.getCellDomainIterator();
-
- low = "";
- high = "";
- axisLabels = "";
- while (it.hasNext() && it2.hasNext()) {
- DomainElement dom = it.next();
- CellDomainElement cell = it2.next();
-
- axisLabels += dom.getName() + " ";
- low += cell.getLo() + " ";
- high += cell.getHi() + " ";
- }
-
- // Build the range components data structure
- Iterator<RangeElement> it3 = cov.getRangeIterator();
- Iterator<String> nilIterator = cov.getNullSetIterator();
-
-
- rangeComponents = "";
- int i = -1;
- while (it3.hasNext()) {
- String component = rangeComponentTemplate;
- RangeElement range = it3.next();
- i++;
- String rangeId = "range-" + cov.getCoverageId() + "-" + range.getName();
-
- component = component.replaceAll("\\{rangeFieldId\\}", rangeId);
- component = component.replaceAll("\\{fieldName\\}", range.getName());
- component = component.replaceAll("\\{datatype\\}", DATATYPE_URN_PREFIX + range.getType());
-
- // Compute the null values for this range field
- Set<String> nullVals = new HashSet<String>();
- Iterator<String> it4 = cov.getNullSetIterator();
- while (it4.hasNext()) {
- List<String> nilVal = SDU.str2string(it4.next());
- nullVals.add(nilVal.get(i));
- }
- StringBuffer nullValsString = new StringBuffer();
- it4 = nullVals.iterator();
- while (it4.hasNext()) {
- nullValsString.append(" " + it4.next());
- }
- component = component.replaceAll("\\{nilValues\\}", nullValsString.toString().substring(1));
-
- // And add this range field to the range structure
- rangeComponents += component;
- }
-
- desc = coverageDescriptionTemplate.replaceAll("\\{coverageId\\}", coverageId);
- gridId = "grid" + coverageId;
- desc = desc.replaceAll("\\{gridId\\}", gridId);
- gridDimension = String.valueOf(cov.getDimension());
- desc = desc.replaceAll("\\{gridDimension\\}", gridDimension);
- desc = desc.replaceAll("\\{low\\}", low);
- desc = desc.replaceAll("\\{high\\}", high);
- desc = desc.replaceAll("\\{axisLabels\\}", axisLabels);
- desc = desc.replaceAll("\\{rangeFields\\}", rangeComponents);
- desc = desc.replaceAll("\\{rangeStructureId\\}", "rangeStructure-" + coverageId);
- desc = desc.replaceAll("\\{supportedFormats\\}", listOfFormats);
-
- listOfCoverageDescriptions += desc;
- } else {
- throw new InvalidParameterValueException("gml:id");
- }
- }
-
- output = DescribeCoverageResponse.replaceAll("\\{listOfCoverageDescriptions\\}",
- listOfCoverageDescriptions);
-
- output = output.replaceAll("\\{wcsSchemaUrl\\}", ConfigManager.WCS2_SCHEMA_URL);
-
- return output;
- }
-}
diff --git a/petascope/src/petascope/wcs2/server/ops/GetCapabilities.java b/petascope/src/petascope/wcs2/server/ops/GetCapabilities.java
deleted file mode 100644
index b64d3f2..0000000
--- a/petascope/src/petascope/wcs2/server/ops/GetCapabilities.java
+++ /dev/null
@@ -1,85 +0,0 @@
-/*
- * This file is part of rasdaman community.
- *
- * Rasdaman community is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * Rasdaman community is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with rasdaman community. If not, see <http://www.gnu.org/licenses/>.
- *
- * Copyright 2003, 2004, 2005, 2006, 2007, 2008, 2009 Peter Baumann /
- rasdaman GmbH.
- *
- * For more information please see <http://www.rasdaman.org>
- * or contact Peter Baumann via <baumann@rasdaman.com>.
- */
-package petascope.wcs2.server.ops;
-
-//~--- non-JDK imports --------------------------------------------------------
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import petascope.ConfigManager;
-
-import petascope.wcps.server.core.DbMetadataSource;
-import petascope.wcps.server.exceptions.ResourceException;
-
-//~--- JDK imports ------------------------------------------------------------
-
-import java.util.Iterator;
-import petascope.wcs.server.exceptions.InvalidServiceConfigurationException;
-
-/**
- * GetCapabilities operation for The Web Coverage Service 2.0
- *
- * @author Andrei Aiordachioaie
- */
-public class GetCapabilities implements WcsOperation {
-
- private static Logger LOG = LoggerFactory.getLogger(GetCapabilities.class);
- /* Template XMLs for response types */
- private String GetCapabilitiesResponse;
- private DbMetadataSource meta;
- /* Other useful vars */
- private String xmlListOfCoverages;
-
- public GetCapabilities(DbMetadataSource metadata) throws InvalidServiceConfigurationException {
- meta = metadata;
-
- GetCapabilitiesResponse = ConfigManager.WCS2_GET_CAPABILITIES_TEMPLATE;
- if (GetCapabilitiesResponse == null) {
- throw new InvalidServiceConfigurationException("Could not find template file.");
- }
- }
-
- @Override
- public String execute(String input) {
- String output;
-
- // Create the output by replacing placeholders
- output = GetCapabilitiesResponse.replaceAll("\\{URL\\}",
- ConfigManager.PETASCOPE_SERVLET_URL);
- Iterator<String> it;
-
- try {
- it = meta.coverages().iterator();
- xmlListOfCoverages = "";
- while (it.hasNext()) {
- xmlListOfCoverages += "<wcs:id gml:id=\"" + it.next() + "\"/>";
- }
- } catch (ResourceException ex) {
- ex.printStackTrace();
- }
- output = output.replaceAll("\\{Coverages\\}", xmlListOfCoverages);
- output = output.replaceAll("\\{wcsSchemaUrl\\}", ConfigManager.WCS2_SCHEMA_URL);
-
- return output;
- }
-}
diff --git a/petascope/src/petascope/wcs2/server/ops/GetCoverage.java b/petascope/src/petascope/wcs2/server/ops/GetCoverage.java
deleted file mode 100644
index a6ddcff..0000000
--- a/petascope/src/petascope/wcs2/server/ops/GetCoverage.java
+++ /dev/null
@@ -1,529 +0,0 @@
-/*
- * This file is part of rasdaman community.
- *
- * Rasdaman community is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * Rasdaman community is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with rasdaman community. If not, see <http://www.gnu.org/licenses/>.
- *
- * Copyright 2003, 2004, 2005, 2006, 2007, 2008, 2009 Peter Baumann /
- rasdaman GmbH.
- *
- * For more information please see <http://www.rasdaman.org>
- * or contact Peter Baumann via <baumann@rasdaman.com>.
- */
-package petascope.wcs2.server.ops;
-
-//~--- non-JDK imports --------------------------------------------------------
-import org.apache.commons.io.IOUtils;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import org.w3c.dom.Document;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-
-import org.xml.sax.SAXException;
-
-import petascope.ConfigManager;
-
-import petascope.wcps.server.core.DbMetadataSource;
-import petascope.wcps.server.core.Metadata;
-
-import petascope.wcs.server.exceptions.WCSException;
-
-//~--- JDK imports ------------------------------------------------------------
-
-import java.io.IOException;
-
-import java.math.BigInteger;
-import java.util.HashSet;
-import java.util.Iterator;
-
-import java.util.List;
-import java.util.Set;
-import javax.xml.parsers.DocumentBuilder;
-import javax.xml.parsers.DocumentBuilderFactory;
-import javax.xml.xpath.XPath;
-import javax.xml.xpath.XPathConstants;
-import javax.xml.xpath.XPathExpressionException;
-import javax.xml.xpath.XPathFactory;
-import org.odmg.DBag;
-import org.odmg.Database;
-import org.odmg.Implementation;
-import org.odmg.ODMGException;
-import org.odmg.OQLQuery;
-import org.odmg.QueryException;
-import org.odmg.Transaction;
-import rasj.RasGMArray;
-import rasj.RasImplementation;
-import petascope.wcps.server.core.CellDomainElement;
-import petascope.wcps.server.core.DomainElement;
-import petascope.wcps.server.core.RangeElement;
-import petascope.wcps.server.core.SDU;
-import petascope.wcs.server.exceptions.InputOutputException;
-import petascope.wcs.server.exceptions.InternalComponentException;
-import petascope.wcs.server.exceptions.InvalidParameterValueException;
-import petascope.wcs.server.exceptions.InvalidServiceConfigurationException;
-import petascope.wcs.server.exceptions.NoApplicableCodeException;
-import petascope.wcs.server.exceptions.WcsRuntimeException;
-import petascope.wcs.server.exceptions.XmlNotValidException;
-import petascope.wcs2.server.templates.WcsNamespaceContext;
-
-/**
- * Get Coverage operation for WCS 2.0
- *
- * @author Andrei Aiordachioaie
- */
-public class GetCoverage implements WcsOperation {
-
- private static Logger LOG = LoggerFactory.getLogger(GetCoverage.class);
- private DocumentBuilder builder = null;
- private XPathFactory xpathFactory = XPathFactory.newInstance();
- /* Template XMLs for response types */
- private String GetCoverageResponse;
- private String rangeComponentTemplate;
- /* Xml request */
- private Document doc;
- /* for Metadata */
- private DbMetadataSource meta;
- /* The new coverage domain */
- private String lowPoint, highPoint, newAxesLabels;
-
- public GetCoverage(DbMetadataSource metadata) throws WCSException {
- meta = metadata;
- GetCoverageResponse = ConfigManager.WCS2_GET_COVERAGE_TEMPLATE;
- if (GetCoverageResponse == null) {
- throw new InvalidServiceConfigurationException("Could not find template file.");
- }
-
- /* Find the RangeField template string */
- String starttag = "<gmlwcs:rangeField", endtag = "</gmlwcs:rangeField>";
- int start = GetCoverageResponse.indexOf(starttag);
- int end = GetCoverageResponse.indexOf(endtag);
- rangeComponentTemplate = GetCoverageResponse.substring(start, end + endtag.length());
- String newTemplate = GetCoverageResponse.substring(0, start - 1) + GetCoverageResponse.substring(end + endtag.length());
- GetCoverageResponse = newTemplate;
-
- /* init XML parser */
- DocumentBuilderFactory domFactory = DocumentBuilderFactory.newInstance();
- domFactory.setNamespaceAware(true); // never forget this!
- try {
- builder = domFactory.newDocumentBuilder();
- } catch (Exception e) {
- throw new NoApplicableCodeException("Error initializing XML parser", e);
- }
- }
-
- @Override
- public String execute(String stringXml) throws WCSException {
- String output;
- Metadata cov;
-
- try {
- doc = builder.parse(IOUtils.toInputStream(stringXml));
- cov = readCoverageMetadata();
- } catch (SAXException e) {
- throw new XmlNotValidException("Could not parse input request.", e);
- } catch (IOException e) {
- throw new InputOutputException("Could not read input request", e);
- } catch (XPathExpressionException e) {
- throw new InternalComponentException("Invalid XPath expression", e);
- }
-
- // Analyze input and build trim/slice info structures
- String subsetting = computeRequestSubsettingLimits(cov);
- String coverageName = cov.getCoverageName();
-
- // Evaluate all bands and then perform string processing to get coverage data
- String coverageData = buildCoverageData(cov, subsetting);
-
- // Build response xml document
- output = buildOutputXml(coverageData, cov);
-
- return output;
- }
-
- private NodeList evalXPathList(String query, Object context) throws WCSException {
- try {
- LOG.debug("Evaluating XPath: {}", query);
- XPath xpath = xpathFactory.newXPath();
-
- xpath.setNamespaceContext(new WcsNamespaceContext());
- NodeList result = (NodeList) xpath.evaluate(query, context, XPathConstants.NODESET);
-
- for (int i = 0; i < result.getLength(); i++) {
- LOG.trace("Result {}: {}", i, result.item(i).getNodeValue());
- }
-
- return (NodeList) result;
- } catch (XPathExpressionException e) {
- LOG.error("Could not execute XPath expression '{}'", query);
-
- throw new WcsRuntimeException("Could not execute XPath expression", e);
- }
- }
-
- private String getCoverageName(Document doc) throws WCSException {
- NodeList nodes = evalXPathList("//wcs:id/@gml:id", doc);
-
- if (nodes.getLength() != 1) {
- LOG.error("Could not retrieve coverage name from XML document.");
-
- return null;
- }
-
- return nodes.item(0).getNodeValue();
- }
-
- private Metadata readCoverageMetadata() throws WCSException, XPathExpressionException {
- String coverageId = getCoverageName(doc);
-
- if (meta.existsCoverageName(coverageId)) {
- try {
- Metadata cov = meta.read(coverageId);
-
- return cov;
- } catch (Exception e) {
- e.printStackTrace();
-
- throw new NoApplicableCodeException("Metadata for coverage '"
- + coverageId + "' is not valid.");
- }
- } else {
- throw new InvalidParameterValueException("gml:id");
- }
- }
-
- /** Computes the domain of the new coverage, and returns a string that can be
- * used to do subsetting on the original coverage. Also computes the low, high
- * and the axis labels for the new coverage.
- *
- * @param coverage
- * @return
- * @throws WCSException
- */
- private String computeRequestSubsettingLimits(Metadata coverage) throws WCSException {
- int dims = coverage.getDimension(), i = 0;
- String[] limits = new String[dims];
- BigInteger[] high = new BigInteger[dims];
- BigInteger[] low = new BigInteger[dims];
- String[] axesLabels = new String[dims];
- boolean[] sliced = new boolean[dims];
- boolean[] trimmed = new boolean[dims];
-
- Iterator<CellDomainElement> it = coverage.getCellDomainIterator();
- Iterator<DomainElement> it2 = coverage.getDomainIterator();
- i = 0;
- while (it.hasNext() && it2.hasNext()) {
- CellDomainElement cell = it.next();
- DomainElement dom = it2.next();
- LOG.trace(cell.toString());
- LOG.trace(dom.toString());
- high[i] = cell.getHi();
- low[i] = cell.getLo();
- axesLabels[i] = dom.getName();
- limits[i] = low[i] + ":" + high[i];
- sliced[i] = false;
- trimmed[i] = false;
- i++;
- }
-
- NodeList list = null;
- int axisIndex;
- String axis, root;
- NodeList trims, slices;
-
- trims = evalXPathList("//wcs:trimDimension", doc);
- for (i = 0; i < trims.getLength(); i++) {
- Node trim = trims.item(i);
-
- list = evalXPathList("wcs:dimension/text()", trim);
- axis = list.item(0).getNodeValue();
- axisIndex = coverage.getDomainIndexByName(axis);
- if (axisIndex == -1) {
- throw new InvalidParameterValueException("dimension. Explanation: Unknown axis: " + axis);
- }
- if (trimmed[axisIndex] || sliced[axisIndex]) {
- throw new NoApplicableCodeException("Already performed one subsetting operation on axis: " + axis);
- }
-
- list = evalXPathList("wcs:trimLow/text()", trim);
- if (list.getLength() > 0) {
- try {
- long val = Long.parseLong(list.item(0).getNodeValue());
- low[axisIndex] = BigInteger.valueOf(val);
- } catch (NumberFormatException e) {
- throw new InvalidParameterValueException("trimLow. Explanation: invalid integer number: " + list.item(0).getNodeValue());
- }
- }
- list = evalXPathList("wcs:trimHigh/text()", trim);
- if (list.getLength() > 0) {
- try {
- long val = Long.parseLong(list.item(0).getNodeValue());
- high[axisIndex] = BigInteger.valueOf(val);
- } catch (NumberFormatException e) {
- throw new InvalidParameterValueException("trimHigh. Explanation: invalid integer number: " + list.item(0).getNodeValue());
- }
- }
-
- trimmed[axisIndex] = true;
- limits[axisIndex] = low[axisIndex] + ":" + high[axisIndex];
- LOG.debug("New limits for axis {}: {}", axis, limits[axisIndex]);
- }
-
- slices = evalXPathList("//wcs:sliceDimension", doc);
- for (i = 0; i < slices.getLength(); i++) {
- Node slice = slices.item(i);
-
- list = evalXPathList("wcs:dimension/text()", slice);
- axis = list.item(0).getNodeValue();
- axisIndex = coverage.getDomainIndexByName(axis);
- if (axisIndex == -1) {
- throw new InvalidParameterValueException("dimension. Explanation: Unknown axis name: " + axis);
- }
- if (trimmed[axisIndex] || sliced[axisIndex]) {
- throw new NoApplicableCodeException("Already performed one subsetting operation on axis: " + axis);
- }
-
- list = evalXPathList("wcs:slicePoint/text()", slice);
- if (list.getLength() > 0) {
- try {
- long point = Long.parseLong(list.item(0).getNodeValue());
- low[axisIndex] = BigInteger.valueOf(point);
- } catch (NumberFormatException e) {
- throw new InvalidParameterValueException("slicePoint. Explanation: invalid integer number: " + list.item(0).getNodeValue());
- }
- high[axisIndex] = low[axisIndex];
- limits[axisIndex] = list.item(0).getNodeValue();
- }
-
- sliced[axisIndex] = true;
- LOG.debug("New limits for axis {}: {}", axis, limits[axisIndex]);
- }
-
- // Compute the lowest, highest point and the labels
- lowPoint = "";
- highPoint = "";
- newAxesLabels = "";
- int first = 0;
- for (i = 0; i < dims; i++) {
- if (sliced[i] == false) {
- if (first == 0) {
- lowPoint = low[i].toString();
- highPoint = high[i].toString();
- newAxesLabels = axesLabels[i];
- first++;
- } else {
- lowPoint += " " + low[i];
- highPoint += " " + high[i];
- newAxesLabels += " " + axesLabels[i];
- }
- }
- }
-
- // Concatenate all limits into a single string
- String result = limits[0];
-
- for (i = 1; i < dims; i++) {
- result += ", " + limits[i];
- }
-
- return result;
- }
-
- public String executeRasqlQuery(String query) throws WCSException {
- byte[] result = null;
-
- Implementation impl = new RasImplementation(ConfigManager.RASDAMAN_URL);
- Database db = impl.newDatabase();
-
- try {
- db.open(ConfigManager.RASDAMAN_DATABASE, Database.OPEN_READ_ONLY);
- } catch (ODMGException odmge) {
- try {
- db.close();
- } catch (ODMGException e) {
- }
-
- throw new InternalComponentException("Could not connect to rasdaman server at " + ConfigManager.RASDAMAN_URL + ", database " + ConfigManager.RASDAMAN_DATABASE, odmge);
- }
-
- Transaction tr = impl.newTransaction();
-
- tr.begin();
- OQLQuery q = impl.newOQLQuery();
- DBag resultSet;
-
- try {
- q.create(query);
- resultSet = (DBag) q.execute();
-
- if (resultSet != null) {
- Iterator resultIterator = resultSet.iterator();
-
- if (resultIterator.hasNext()) {
- Object current = resultIterator.next();
-
- try {
- RasGMArray resultArray = (RasGMArray) current;
- result = resultArray.getArray();
- } catch (ClassCastException e) {
- LOG.error("result=" + current.toString());
- result = current.toString().getBytes();
- }
- }
- }
- } catch (QueryException qe) {
- tr.commit();
-
- try {
- db.close();
- } catch (ODMGException odmge) {
- }
-
- throw new InternalComponentException("Could not evaluate rasdaman query: '" + query + "'. Cause: " + qe.getMessage(), qe);
- }
-
- tr.commit();
-
- try {
- db.close();
- } catch (ODMGException odmge) {
- }
-
- return new String(result);
- }
-
- /** Creates a string with the contents of the GetCoverage response XML */
- private String buildOutputXml(String coverageData, Metadata coverage) {
- String xml = GetCoverageResponse;
- xml = xml.replaceAll("\\{coverageId\\}", coverage.getCoverageName() + Math.random());
- xml = xml.replaceAll("\\{gridDimension\\}", String.valueOf(coverage.getDimension()));
- xml = xml.replaceAll("\\{gridId\\}", "grid-" + coverage.getCoverageName());
- // low
- xml = xml.replaceAll("\\{low\\}", lowPoint);
- // high
- xml = xml.replaceAll("\\{high\\}", highPoint);
- // axisLabels
- xml = xml.replaceAll("\\{axisLabels\\}", newAxesLabels);
- // coverageData
- xml = xml.replaceAll("\\{coverageData\\}", coverageData);
-
-
-
- // Build the range structure
- Iterator<RangeElement> it3 = coverage.getRangeIterator();
- int i = -1;
- String rangeComponents = "";
- while (it3.hasNext()) {
- String component = rangeComponentTemplate;
- RangeElement range = it3.next();
- i++;
- String rangeId = "range-" + coverage.getCoverageId() + "-" + range.getName();
- LOG.trace(range.toString());
-
- component = component.replaceAll("\\{rangeFieldId\\}", rangeId);
- component = component.replaceAll("\\{fieldName\\}", range.getName());
- component = component.replaceAll("\\{datatype\\}", DescribeCoverage.DATATYPE_URN_PREFIX + range.getType());
-
- // Compute the null values for this range field
- Set<String> nullVals = new HashSet<String>();
- Iterator<String> it = coverage.getNullSetIterator();
- while (it.hasNext()) {
- List<String> nilVal = SDU.str2string(it.next());
- nullVals.add(nilVal.get(i));
- }
- StringBuffer nullValsString = new StringBuffer();
- it = nullVals.iterator();
- while (it.hasNext()) {
- nullValsString.append(" " + it.next());
- }
- component = component.replaceAll("\\{nilValues\\}", nullValsString.toString().substring(1));
-
- // And add this range field to the range structure
- rangeComponents += component;
- }
-
- xml = xml.replaceAll("\\{rangeFields\\}", rangeComponents);
- xml = xml.replaceAll("\\{rangeStructureId\\}", "rangeStructure-" + coverage.getCoverageId());
-
- xml = xml.replaceAll("\\{wcsSchemaUrl\\}", ConfigManager.WCS2_SCHEMA_URL);
-
- return xml;
- }
-
- /**
- * Retrieve the coverage data for a multi-band coverage,
- * with particular subsetting parameters.
- * @param coverage metadata for the coverage we want
- * @param subsetting subsetting string, to be used in the RasQL query
- * @return a string of space-separated values, where various bands of one
- * pixel are comma-separated. For example, the string "1,2 3,4 5,6" can
- * be the coverage data of a 1-by-3 coverage, with two bands
- */
- private String buildCoverageData(Metadata coverage, String subsetting) throws WCSException {
- String coverageName = coverage.getCoverageName();
- Iterator<RangeElement> it = coverage.getRangeIterator();
- int bandcount = 0;
- while (it.hasNext()) {
- it.next();
- bandcount++;
- }
- LOG.debug("Coverage {} has {} bands", coverageName, bandcount);
- String[][] pixels = new String[bandcount][];
- String currentBand = "";
- /* For all bands of the coverage, execute a rasql query */
- for (int band = 0; band < bandcount; band++) {
- LOG.trace("Processing band {}", band);
- // Construct rasql query
- currentBand = "." + band;
- // If this is a one-band image, then band-subsetting would result in an error
- if (bandcount == 1) {
- currentBand = "";
- }
- String rasqlQuery = "select csv(cov[" + subsetting + "]" + currentBand + ") "
- + "from " + coverageName + " as cov";
-
- // Execute RasQl query => coverage data
- LOG.trace("Executing query {}", rasqlQuery);
- String output = executeRasqlQuery(rasqlQuery);
-
- // Remove the curly braces from the rasql output
- LOG.trace("Removing curly braces...");
- output = output.replaceAll("\\{", "");
- output = output.replaceAll("\\}", "");
-
- // Tokenize the input to get the pixel values of the current band
- LOG.trace("Splitting values with comma...");
- pixels[band] = output.split(",");
-
- LOG.trace("Done processing band {}.", band);
- }
-
- /* Combine all bands into one single string */
- int pixelcount = pixels[0].length;
- StringBuilder data = new StringBuilder(pixelcount * bandcount);
- LOG.debug("Going to combine {} pixels with {} bands...", pixelcount, bandcount);
- for (int pix = 0; pix < pixelcount; pix++) {
- if (pixelcount > 20 && pix % (pixelcount / 20) == 0) {
- LOG.debug("Processing Pixel {} of " + pixelcount + " - {}%", pix, pix * 100 / (pixelcount - 1));
- }
- for (int b = 0; b < bandcount - 1; b++) {
- data.append(pixels[b][pix] + ",");
- }
- data.append(pixels[bandcount - 1][pix]);
- data.append(" ");
- }
- return data.substring(0, data.length() - 2);
- }
-}
diff --git a/petascope/src/petascope/wcs2/server/ops/WcsOperation.java b/petascope/src/petascope/wcs2/server/ops/WcsOperation.java
deleted file mode 100644
index 1ad8eae..0000000
--- a/petascope/src/petascope/wcs2/server/ops/WcsOperation.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * This file is part of rasdaman community.
- *
- * Rasdaman community is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * Rasdaman community is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with rasdaman community. If not, see <http://www.gnu.org/licenses/>.
- *
- * Copyright 2003, 2004, 2005, 2006, 2007, 2008, 2009 Peter Baumann /
- rasdaman GmbH.
- *
- * For more information please see <http://www.rasdaman.org>
- * or contact Peter Baumann via <baumann@rasdaman.com>.
- */
-package petascope.wcs2.server.ops;
-
-//~--- non-JDK imports --------------------------------------------------------
-import petascope.wcs.server.exceptions.WCSException;
-
-/**
- * Interface for all WCS Operations.
- * @author Andrei Aiordachioaie
- */
-public interface WcsOperation {
-
- /** Execute the operation */
- public String execute(String input) throws WCSException;
-}
diff --git a/petascope/src/petascope/wcs2/server/templates/DescribeCoverageTemplate.xml b/petascope/src/petascope/wcs2/server/templates/DescribeCoverageTemplate.xml
deleted file mode 100644
index c431723..0000000
--- a/petascope/src/petascope/wcs2/server/templates/DescribeCoverageTemplate.xml
+++ /dev/null
@@ -1,38 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<wcs:CoverageDescriptions xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'
- xmlns:gmlwcs='http://www.opengis.net/wcs/2.0/gml'
- xmlns:gml='http://www.opengis.net/gml/3.2'
- xmlns:wcs='http://www.opengis.net/wcs/2.0'
- xmlns='http://www.opengis.net/gml/3.2'
- xsi:schemaLocation='http://www.opengis.net/wcs/2.0 {wcsSchemaUrl}/wcsAll.xsd'>
- {listOfCoverageDescriptions}
- <wcs:CoverageDescription gml:id="{coverageId}">
- <domainSet>
- <Grid dimension="{gridDimension}" gml:id="{gridId}">
- <limits>
- <GridEnvelope>
- <low>{low}</low>
- <high>{high}</high>
- </GridEnvelope>
- </limits>
- <axisLabels>{axisLabels}</axisLabels>
- </Grid>
- </domainSet>
- <gmlwcs:rangeStructure>
- <gmlwcs:RangeStructure gml:id="{rangeStructureId}">
- {rangeFields}
- <gmlwcs:rangeField>
- <gmlwcs:RangeField gml:id="{rangeFieldId}">
- <gml:name>{fieldName}</gml:name>
- <gmlwcs:dataType>{datatype}</gmlwcs:dataType>
- <gmlwcs:nilValueList>{nilValues}</gmlwcs:nilValueList>
- </gmlwcs:RangeField>
- </gmlwcs:rangeField>
- </gmlwcs:RangeStructure>
- </gmlwcs:rangeStructure>
- <wcs:ServiceParameters>
- <wcs:supportedCrsList/>
- <wcs:supportedFormatList>{supportedFormats}</wcs:supportedFormatList>
- </wcs:ServiceParameters>
- </wcs:CoverageDescription>
-</wcs:CoverageDescriptions>
diff --git a/petascope/src/petascope/wcs2/server/templates/GetCapabilitiesTemplate.xml b/petascope/src/petascope/wcs2/server/templates/GetCapabilitiesTemplate.xml
deleted file mode 100644
index 86631bf..0000000
--- a/petascope/src/petascope/wcs2/server/templates/GetCapabilitiesTemplate.xml
+++ /dev/null
@@ -1,92 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<wcs:Capabilities xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'
- xmlns:ows='http://www.opengis.net/ows/1.1'
- xmlns:wcs='http://www.opengis.net/wcs/2.0'
- xmlns:gml='http://www.opengis.net/gml/3.2'
- xmlns='http://www.opengis.net/ows/1.1'
- xmlns:xlink='http://www.w3.org/1999/xlink'
- xsi:schemaLocation='http://www.opengis.net/wcs/2.0 {wcsSchemaUrl}/wcsAll.xsd' version="2.0.0">
- <ServiceIdentification>
- <Title>WCS 2.0 Coverage Server @ Jacobs University</Title>
- <Abstract>WCS 2.0 Server developed at jacobs University</Abstract>
- <ServiceType>OGC WCS</ServiceType>
- <ServiceTypeVersion>2.0.0</ServiceTypeVersion>
- <Profile>urn:ogc:def:extension:OGC-WCS:2.0:protocol:post</Profile>
- <Profile>urn:ogc:def:extension:OGC-WCS:2.0:serviceModel:wcps:1.0</Profile>
- <Profile>urn:ogc:def:extension:OGC-WCS:2.0:serviceModel:wcst:1.0</Profile>
- </ServiceIdentification>
- <ServiceProvider>
- <ProviderName>Jacobs University Bremen</ProviderName>
- <ows:ProviderSite xlink:href="http://www.petascope.org/"/>
- <ServiceContact>
- <ows:IndividualName>Prof. Dr. Peter Baumann</ows:IndividualName>
- <ows:ContactInfo>
- <ows:Address>
- <ows:City>Bremen</ows:City>
- <ows:PostalCode>28717</ows:PostalCode>
- <ows:Country>Germany</ows:Country>
- <ows:ElectronicMailAddress>p.baumann@jacobs-university.de</ows:ElectronicMailAddress>
- </ows:Address>
- </ows:ContactInfo>
- <ows:Role>Project Leader</ows:Role>
- </ServiceContact>
- </ServiceProvider>
- <OperationsMetadata>
- <Operation name="GetCapabilities">
- <DCP>
- <HTTP>
- <Get xlink:href="{URL}"/>
- </HTTP>
- </DCP>
- <Parameter name="Format">
- <AllowedValues>
- <Value>text/xml</Value>
- </AllowedValues>
- </Parameter>
- <Constraint name="PostEncoding">
- <AllowedValues>
- <Value>XML</Value>
- </AllowedValues>
- </Constraint>
- </Operation>
- <Operation name="DescribeCoverage">
- <DCP>
- <HTTP>
- <Get xlink:href="{URL}"/>
- </HTTP>
- </DCP>
- <Parameter name="Format">
- <AllowedValues>
- <Value>text/xml</Value>
- </AllowedValues>
- </Parameter>
- <Constraint name="PostEncoding">
- <AllowedValues>
- <Value>XML</Value>
- </AllowedValues>
- </Constraint>
- </Operation>
- <Operation name="GetCoverage">
- <DCP>
- <HTTP>
- <Get xlink:href="{URL}"/>
- </HTTP>
- </DCP>
- <Parameter name="Format">
- <AllowedValues>
- <Value>text/xml</Value>
- </AllowedValues>
- </Parameter>
- <Constraint name="PostEncoding">
- <AllowedValues>
- <Value>XML</Value>
- </AllowedValues>
- </Constraint>
- </Operation>
- </OperationsMetadata>
- <wcs:Contents>
- {Coverages}
- </wcs:Contents>
- <wcs:WcsServiceMetadata />
-
-</wcs:Capabilities>
diff --git a/petascope/src/petascope/wcs2/server/templates/GetCoverageTemplate.xml b/petascope/src/petascope/wcs2/server/templates/GetCoverageTemplate.xml
deleted file mode 100644
index 9b76cc9..0000000
--- a/petascope/src/petascope/wcs2/server/templates/GetCoverageTemplate.xml
+++ /dev/null
@@ -1,38 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<gmlwcs:GridCoverage xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'
- xmlns:gml='http://www.opengis.net/gml/3.2'
- xmlns='http://www.opengis.net/gml/3.2'
- xmlns:gmlwcs='http://www.opengis.net/wcs/2.0/gml'
- xsi:schemaLocation='http://www.opengis.net/wcs/2.0/gml {wcsSchemaUrl}/gml/gmlwcsAll.xsd' gml:id="{coverageId}">
- <domainSet>
- <Grid dimension="{gridDimension}" gml:id="{gridId}">
- <limits>
- <GridEnvelope>
- <low>{low}</low>
- <high>{high}</high>
- </GridEnvelope>
- </limits>
- <axisLabels>{axisLabels}</axisLabels>
- </Grid>
- </domainSet>
- <rangeSet>
- <DataBlock>
- <rangeParameters/>
- <tupleList>
- {coverageData}
- </tupleList>
- </DataBlock>
- </rangeSet>
- <gmlwcs:rangeStructure>
- <gmlwcs:RangeStructure gml:id="{rangeStructureId}">
- {rangeFields}
- <gmlwcs:rangeField>
- <gmlwcs:RangeField gml:id="{rangeFieldId}">
- <gml:name>{fieldName}</gml:name>
- <gmlwcs:dataType>{datatype}</gmlwcs:dataType>
- <gmlwcs:nilValueList>{nilValues}</gmlwcs:nilValueList>
- </gmlwcs:RangeField>
- </gmlwcs:rangeField>
- </gmlwcs:RangeStructure>
- </gmlwcs:rangeStructure>
-</gmlwcs:GridCoverage>
diff --git a/petascope/src/petascope/wcs2/server/templates/WcsNamespaceContext.java b/petascope/src/petascope/wcs2/server/templates/WcsNamespaceContext.java
deleted file mode 100644
index 1f713e4..0000000
--- a/petascope/src/petascope/wcs2/server/templates/WcsNamespaceContext.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- * This file is part of rasdaman community.
- *
- * Rasdaman community is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * Rasdaman community is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with rasdaman community. If not, see <http://www.gnu.org/licenses/>.
- *
- * Copyright 2003, 2004, 2005, 2006, 2007, 2008, 2009 Peter Baumann /
- rasdaman GmbH.
- *
- * For more information please see <http://www.rasdaman.org>
- * or contact Peter Baumann via <baumann@rasdaman.com>.
- */
-package petascope.wcs2.server.templates;
-
-import java.util.Iterator;
-import javax.xml.XMLConstants;
-import javax.xml.namespace.NamespaceContext;
-
-/**
- *
- * @author Andrei Aiordachioaie
- */
-public class WcsNamespaceContext implements NamespaceContext {
-
- @Override
- public String getNamespaceURI(String prefix) {
- if (prefix == null) {
- throw new NullPointerException("Null prefix");
- } else if ("wcs".equals(prefix)) {
- return "http://www.opengis.net/wcs/2.0";
- } else if ("gml".equals(prefix)) {
- return "http://www.opengis.net/gml/3.2";
- }
-
- return XMLConstants.NULL_NS_URI;
- }
-
- // This method isn't necessary for XPath processing.
- @Override
- public String getPrefix(String uri) {
- throw new UnsupportedOperationException();
- }
-
- // This method isn't necessary for XPath processing either.
- @Override
- public Iterator getPrefixes(String uri) {
- throw new UnsupportedOperationException();
- }
-}