# Web Coverage Service

Der Open Geospatial Consortium Web Coverage Service-Schnittstellenstandard (WCS) definiert die web-basierte Abfrage von digitalen Geoinformationen, die raum- und/oder zeitvariierende Phänomene darstellen.

## Überblick

WCS gewährt Zugang zu Coverage-Daten in Formen, die für die client-seitige Verarbeitung nutzbar sind, beispielsweise für wissenschaftliche Modelle. Der WCS ist verwandt mit OGC Web Feature Service (WFS) und Web Map Service (WMS). Als Service-Instanz des WMS und des WFS erlaubt ein WCS, Klienten Teile der Informationsbestände eines Servers basierend auf räumlichen Bedingungen und anderen Abfragekriterien zu wählen.
Im Gegensatz zum Web Map Service (WMS), der Geo-Daten als Kartenbilder liefert, stellt der WCS verfügbare Daten zusammen mit ihren detaillierten Beschreibungen (Metadaten) bereit und definiert eine reiche Syntax für Anfragen auf diesen Daten und Metadaten. Insbesondere werden Daten mit ihrer vollen Semantik zurückgegeben ausgeliefert; im Gegensatz zu den lediglich für Menschen geeigneten Bildern des WMS lassen sich WCS-Daten deshalb auch maschinell weiter auswerten.
Im Gegensatz zum Web Feature Service (WFS), der einzelne räumliche Datenelemente liefert, gibt WCS multidimensionale Daten zurück, die einen Ausschnitt der Raum-Zeit-Eigenschaften in beliebige Beziehungen bringt. Als solches fokussiert WCS auf Coverages als eine spezialisierte Klasse von Features (nämlich Mengen von Features) und bietet dementsprechende Funktionalität.
WCS basiert auf dem Coverage-Modell des OGC GML Application Schema for Coverages und unterstützt alle Coverage-Typen daraus. Insbesondere ist die aktuelle Version 2.0 nicht mehr eingeschränkt auf reguläre Gitter wie frühere WCS-Versionen.

## WCS Core, Erweiterungen und Anwendungsprofile

Die WCS-Suite ist untergliedert in einen Kern („Core“), den jede WCS-Implementierung unterstützen muss, plus eine Reihe von Erweiterungen („Extensions“) mit zusätzlichen Dienste-Facetten. Bei der Implementierung kann gewählt werden, welche Erweiterung unterstützt werden soll. Nur einige grundlegende Regeln sind zu erfüllen: Jede WCS-Implementierung muss zumindest ein Kommunikationsprotokoll und ein Datenabgabe-Format unterstützen. Um den Überblick zu erleichtern sind die Erweiterungen in fünf Kategorien gruppiert: Datenmodell, Kodierungen, Servicemodell, Protokolle und Bedienbarkeit.
Um den Implementierern die Auswahl von Extensions zu erleichtern, wurden Anwendungsprofile („Application Profiles“) als domänenorientierte „Bündel“ der WCS-Suite etabliert. Sie dienen als Richtlinie bei der Realisierung von WCS-Diensten für spezifische Anwendungsgebiete.
Ausgewählte Spezifikationen werden weiter unten kurz vorgestellt.
Die Dokumente des WCS-Standards sind auf der OGC-WCS-Seite verfügbar.

### WCS Core

Der WCS Core bietet grundlegende räumliche und zeitliche Datenextraktion. Es gibt zwei Arten der Extraktion, die kombiniert werden können: Trimming extrahiert einen Ausschnitt einer Coverage, definiert durch eine Bounding Box; das Ergebnis hat die gleiche Dimension (d. h. die Anzahl der Achsen), wie die ursprüngliche Coverage. Slicing führt einen Schnitt an der angegebenen Position durch und reduziert dadurch die Dimension der Ergebnis-Coverage.
Aus technischer Sicht bietet der WCS-Kern drei Anfragetypen, entsprechend der OGC-Webservice-Definition:
* GetCapabilities: liefert eine XML-Beschreibung der Serviceeigenschaften und Datenbestände, die vom angefragten Server angeboten werden,
* DescribeCoverage: liefert XML-Beschreibungen der Coverages (z. B. ihre Position in Raum und Zeit),
* GetCoverage: liefert eine Coverage (oder einen Teil davon), entweder als Originaldaten oder konvertiert in ein geeignetes Datenformat.

### WCS Protokollerweiterungen

WCS-Anfragen und Antworten können die folgende Protokolle benutzen:
* GET/KVP: benutzt HTTP GET für das Senden von Anfragen in Form von Schlüssel-Wert-Paaren (key value pair, KVP) und empfängt XML-Metadaten und binäre Coverage-Daten.
* POST/XML: benutzt HTTP POST für die Übertragung von XML-Daten und binärer Coverage-Daten.
* SOAP/XML: benutzt SOAP für die Übertragung von XML-Daten und binärer Coverage-Daten.
* REST: Diese Protokoll-Variante ist derzeit in Entwicklung.

### WCS Erweiterungen für Datenformate

WCS-Erweiterungen für Formate erlauben die Rückgabe von Coverages in unterschiedlichen Datenformaten wie z. B. GML, GeoTIFF, HDF-EOS oder NITF. Derzeit (Stand Juni 2013) liegt eine Reihe dieser Spezifikationen als Candidate Standard vor.

### WCS Range Subsetting

Range subsetting (nicht zu verwechseln mit dem Domain Subsetting des WCS Core) erlaubt die Extraktion von Komponenten („Bändern“, „Kanälen“) aus Zellen („Pixel“, „Voxel“) einer Coverage.
Zum Beispiel kann aus einem 7-Band Landsat Satellitenbild eine Range Subsetting-Anfrage die nah-infraroten, roten und grünen Komponenten extrahieren. Der räumliche Umfang bleibt unverändert.

### WCS-T Erweiterung

WCS-T (T steht für Transaktion) definiert, wie neue Coverages auf einen Server hochgeladen werden können bzw. bereits vorhandene Coverages geändert werden können.

### WCS Processing Erweiterung

Web Coverage Processing Service (WCPS) definiert flexible Ad-hoc-Verarbeitung und Filterung auf Coverage-Mengen. Die Processing Extension bindet die abstrakte WCPS-Anfragesprache in die Protokolle der WCS-Suite ein.

### WCS CRS Erweiterung

Die WCS CRS (Coordinate Reference System) Extension erlaubt es, Coverages in Koordinatenreferenzsystemen anzusprechen, welche sich vom ursprünglichen Koordinatensystem, in dem die Coverages auf dem Server gespeichert sind, unterscheiden. Diese Erweiterung erlaubt also eine CRS-Transformation bzw. Reprojektion.

## Softwareunterstützung für WCS
### OGC Compliance Testing

OGC stellt die freie, quelloffene Compliance und Interoperabilität Test Engine (CITE) bereit, damit für eine gegebene Implementierung die Übereinstimmung mit einer gegebenen OGC-Spezifikation getestet werden kann. Eine Liste aller Spezifikationstests, die von der OGC verfügbar sind, ist auf der OGC-Compliance-Seite zu finden.

### WCS-Implementierungen

Eine Liste von Implementierungen, denen die OGC Standard-Konformität offiziell bestätigt wurde, ist auf der OGC-Website veröffentlicht. Siehe auch die Diskussion “compliant vs implementing”.
Dies ist eine inoffizielle, nicht geprüfte und nicht von OGC bestätigte Liste von Implementierungen, die WCS als Client bzw. Server unterstützen:
* WCS 2.0:
** Rasdaman - Server und Client (read/write); Referenzimplementierung für WCS 2.0, Referenzimplementierung für WCPS
** MapServer - Server
** PYXIS WorldView - Freier Client, integriert verschiedene Datenquellen auf einem hexagonalen diskreten globalen Grid
* WCS 1.x:
** GeoServer - Referenzimplementierung für WCS 1.x (Server)
** QGIS - Server und Client
** APOLLO - Server und Client
** GDAL - Client (read)
** Geomatica Web Server Suite - Client und Server
** GeoMedia - Client (read) und Server (GeoMedia WebMap)
** gvSIG - Client (read)
** ArcGIS Server - Server und Client
** PYXIS WorldView - Freier Client, integriert verschiedene Datenquellen auf einem hexagonalen diskreten globalen Grid
** CARIS Spatial Fusion Enterprise - Server und Client
** Unidata TDS (THREDDS OPeNDAP data server) - Server