Die Geodateninfrastruktur Deutschland (GDI-DE) hat das Ziel, Geodaten von Bund, Ländern und Kommunen für Wirtschaft, Wissenschaft, Verwaltung und Bürger interoperabel und zukunftsfähig bereitzustellen. Dabei wird auf offene Standards und genormte Schnittstellen gesetzt. Diese bilden auch die Grundvoraussetzung für die Integration von Geodaten in E-Governmentprozesse und Applikationen. Innerhalb der GDI-DE erfolgt der standardisierte Zugriff auf die verteilten Geodaten in der Regel über sogenannte Downloaddienste. Der Begriff selbst stammt aus dem europäischen Kontext (INSPIRE [[INSPIRE Directive]]) und hat sich seit 2007 etabliert. Im internationalen Kontext wird von Data Access Services gesprochen.
Das vorliegende Dokument beinhaltet Anforderungen und Empfehlungen, die für eine interoperable
Bereitstellung von Downloaddiensten innerhalb Deutschlands notwendig sind bzw. eine solche verbessern.
Dabei wird eine größtmögliche Interoperabilität mit INSPIRE gewährleistet. Viele der hier definierten Vorgaben basieren
auf den, insbesondere im Rahmen der Umsetzung von INSPIRE, gesammelten Erfahrungen der vergangenen Jahre.
Um eine nahtlose Integration von INSPIRE und GDI-DE zu ermöglichen, gelten die hier aufgeführten
Anforderungen und Empfehlungen auch für die INSPIRE-Downloaddienste.
Sie bauen auf den internationalen Standards und Normen des W3C, des OGC,
sowie der ISO auf. Anforderungen aus diesen
Standards und Normen, die für alle Downloaddienste ohnehin verpflichtend sind, werden im vorliegenden
Dokument nicht wiederholt aufgeführt.
Für INSPIRE-Downloaddienste gelten in der Regel zusätzliche Anforderungen aus INSPIRE-Durchführungsbestimmungen, die nicht Bestandteil des vorliegenden Dokumentes sind. GDI-DE Downloadienste sind zwar kompatibel zu INSPIRE, müssen aber nicht alle Anforderungen der EU-Gesetzgebung erfüllen.
Das vorliegende Dokument ist in ein Kapitel zu Anforderungen an die Bereitstellung von Downloaddiensten und ein Kapitel mit Erläuterungen und Hintergrundinformationen untergliedert. Diese Aufteilung dient dazu, einerseits einen prägnanten Überblick über Implementierungsanforderungen zu geben und andererseits Hintergrundinformationen und Begründungen für Interessierte vorzuhalten.
Liste der Dienste mit zugehörigen Normen und Spezifikationen
WxS steht stellvertretend für die allgemein bekannten und weltweit verbreiteten OGC-Spezifikationen für den Austausch von und Zugriff auf Geodaten. Die Entwicklung dieser Spezifikationen begann schon Mitte der 90er Jahre und sie bilden heute noch die Basis für den Betrieb der meisten Geodateninfrastrukturen. Prinzipiell handelt es sich um spezielle Webservices mit XML-Binding. Eine Verallgemeinerung der maschinenlesbaren Service-Beschreibung findet sich in der OWS Common Spezifikation [[OGC OWS Common]]. Bei der Nutzung dieser Dienste wird grundsätzlich zunächst ein sogennantes OGC-Capabilities-Dokument abgefragt. Dieses beinhaltet unter anderem Metadaten über den Dienstprovider, eine Liste der Operationen sowie Informationen über die vom Dienst bereitgestellten Daten. Mithilfe der maschinenlesbaren Beschreibung lässt sich die Informationsquelle in andere IT-Systeme integrieren.
Bei der Erarbeitung der EU INSPIRE-Richtlinie hat man die Standard OGC Architektur für den Aufbau von Geodateninfrastrukturen als Vorbild verwendet. Die Richtlinie selbst und die zugehörigen Rechtsverordnungen referenzieren jedoch nicht direkt konkrete OGC-Spezifikationen, sondern sprechen von sogenannten Download- und Darstellungsdiensten. Es wird gefordert, dass Geodaten über Downloaddienste herunterladbar sein müssen. Die Downloaddienste müssen dabei mindestens folgende Operationen unterstützen, um den Anforderungen der EU zu genügen:
Das OGC hat Ende 2019 begonnen seine Architektur neu auszurichten. Die speziellen WxS mit ihrem XML-Binding wurden als nicht mehr zeitgemäß erachtet und sollen sukzessive durch moderne REST APIs ersetzt werden. Die erste Spezifikation aus dieser neuen Reihe ist die im Jahr 2020 publizierte ISO19168:1. Sie definiert ein REST-Interface für den Zugriff auf Vektordaten und bietet eine moderne Alternative zur WFS-Schnittstelle. Allgemeine Anforderungen für diese REST-Interfaces sind in der OGC-API Common Spezifikation [[OGC-API Common - Part 1: Core]] definiert.
In einer Geodateninfrastruktur verfügen Dienste in der Regel über eine Selbstbeschreibung der möglichen Operationen, sowie
des zur Verfügung gestellten Contents (Daten). Um beispielsweise Downloaddienste nutzen zu können, benötigt man die URL
auf die Selbstbeschreibung des jeweiligen Dienstes.
Die aktuelle GDI-Architektur basiert darauf, dass sowohl die Daten als auch die Dienste jeweils mit standardisierten
Metadaten (aktuelles Encoding [[ISO 19139:2007]]) beschrieben sind. Diese werden in Katalogen gesammelt und bis auf die europäische Ebene aggregiert. Der
Zugriff auf die Kataloge der verschiedenen Verwaltungsebenen erfolgt über eine einheitliche Schnittstelle,
den OGC Catalog Service [[OGC CAT 2.0.2]].
Der typische Prozess, um die Zugriffsadresse eines Dienstes zu erhalten, geht in der Regel von den Datensatz-Metadaten aus.
Jeder Datensatz wird dabei über eine möglichst persistente URI identifiziert (Datensatzidentifikator). Diese URI wird vom Datenanbieter festgelegt
und ist Bestandteil der Metadaten zum Datensatz.
sequenceDiagram
participant Nutzer
participant Katalog (CSW)
participant Dienst
Nutzer ->> Katalog (CSW): csw:GetRecords (Suche nach Datensätzen)
Katalog (CSW)->>Nutzer: Liste von Datensatz-Metadaten (ISO19139)
Nutzer->>Nutzer: wähle Datensatz / extrahiere Datensatzidentifikator
Nutzer->>Katalog (CSW): csw:GetRecords (Suche Dienste für Datensatzidentifikator)
Katalog (CSW)->>Nutzer: Liste von Dienst-Metadaten (ISO19139)
Nutzer->>Nutzer: wähle Dienst / extrahiere Zugriffsadresse
Nutzer->>Dienst: Aufruf Zugriffsadresse
Dienst->>Nutzer: Liefert Selbstbeschreibung
Nutzer->>Nutzer: Auswertung der Selbstbeschreibung
Nutzer->>Dienst: Nutzung des Dienstes
Da ein Dienst in der Regel den Zugriff auf mehrere Datensätze ermöglicht, ist es zusätzlich notwendig, die eindeutige Zuordnung zwischen den vom
Dienst bereitgestellten Content und den jeweiligen Datensätzen in der Selbstbeschreibung (Capabilities-Dokument) des Dienstes zu hinterlegen. Die Art und Weise wie
dies zu erfolgen hat, wurde von den Arbeitsgruppen auf europäischer Ebene zur Umsetzung von INSPIRE festgelegt. Die Beziehungen der einzelnen
Objekte untereinander ist nicht trivial und wird durch das folgende Diagramm verdeutlicht.
flowchart TB
subgraph Daten-Dienste-Kopplung
direction BT
subgraph service["fa:fa-network-wired Dienst"]
subgraph service-description[fa:fa-file-code Selbstbeschreibung / Capabilities]
direction LR
A[Dienst-Metadaten]
B[Operationen]
C[Content]
end
end
subgraph metadata["Metadaten (ISO19139)"]
direction BT
E[fa:fa-file-code Dienst-Metadaten] & F[fa:fa-file-code Datensatz-Metadaten]
end
end
subgraph Daten
direction LR
G[(Datensatz)] & H["Datensatzidentifikator {codesspace}/{code}"]
end
F-- beschreibt -->G
C-- "fa:fa-link href [1..n]" -->F
E-- beschreibt -->service
E-- fa:fa-link href -->service-description
F-- beinhaltet -->H
C-. "referenziert [1..n]" .->H
E-. "referenziert [1..n]" .->H
E-- "fa:fa-link href [1..n]" -->F
service-- liest -->G
H-- identifiziert -->G
%%{init: {"flowchart": {"htmlLabels": false}} }%%
flowchart LR
A[Rasterdaten] --> B[WCS]
A --> F[ATOM-Feed]
D[Vektordaten] --> F
D --> E[WFS]
D --> G[OGC API - Features]
H[Sensordaten] --> I[OGC SensorThings API]
Erläuterung
Im Rahmen der Umsetzung der INSPIRE-Richtlinie wurde eine Rechtsverordnung [INS VO Netzdienste] erlassen, die eine Verfügbarkeit von 99% für die Netzdienste der europäischen Geodateninfrastruktur vorgibt. Erst mit einer hohen Verfügbarkeit können die Ziele einer GDI erreicht werden. Die Nutzer sollen direkt über das Internet auf die verteilten Geodaten zugreifen, womit die Notwendigkeit des Vorhaltens von Sekundärdaten (offline) in den meisten Fällen entfallen kann. Die für INSPIRE geltende Anforderung wird für die GDI-DE als Empfehlung übernommen.
Die Downloaddienste SOLLEN eine Verfügbarkeit von mindestens 99% gewährleisten.
Erläuterung
Die Inhalte von Rückgaben in der Antwort auf die Anfragen an die Downloaddienste werden grundsätzlich in deutscher Sprache ausgegeben. Sollen weitere Sprachen bereitgestellt werden, ist der von INSPIRE vorgesehene, zusätzliche Parameter LANGUAGE zu nutzen.
In den Responses auf die Anfragen an die Downloaddienste MUSS Deutsch verwendet werden, wenn die Spezifikation nichts anderes fordert.
Werden weitere Sprachen angeboten, so SOLL dies analog zu den Handlungsempfehlungen für INSPIRE-Downloaddienste [[?GDI-DE HE INS Downloaddienste]] erfolgen.
Erläuterung
Bei der Verwendung unterschiedlicher Werkzeuge für die Nutzung von Downloaddiensten ist es notwendig, sich auf eine einheitliche Zeichenkodierung zu einigen.
Textbasierte Rückgabewerte MÜSSEN UTF-8 kodiert sein.
Erläuterung
Geodaten lassen sich nur dann miteinander kombinieren, wenn sie in einem einheitlichen Koordinatenreferenzsystem (CRS) vorliegen. Die meisten Downloaddienste bieten die Möglichkeit, Daten in verschiedenen CRS abzufragen. Die Transformation erfolgt dabei oft serverseitig und der Aufwand für den Nutzer wird reduziert. Die Koordinatenreferenzsysteme selbst haben in der Regel einen spezifischen räumlichen Bezug oder Kontext.
EPSG-Code | Bezeichnung | räumlicher Kontext |
---|---|---|
4326 | WGS 84 - WGS84 - World Geodetic System 1984, used in GPS | Global |
3857 | WGS 84 / Pseudo-Mercator for web mapping- WGS84 - World Geodetic System 1984 | Global |
25832 | ETRS89 / UTM Zone 32N - ETRS89 - European Terrestrial Reference System 1989 | Europäisch |
25833 | ETRS89 / UTM Zone 33N - ETRS89 - European Terrestrial Reference System 1989 | Europäisch |
3035 | ETRS89-extended / LAEA Europe - ETRS89 LAEA - European Terrestrial Reference System 1989 | Europäisch |
4258 | ETRS89 - ETRS89 - European Terrestrial Reference System 1989 | Europäisch |
Im Hinblick auf eine internationale Interoperabilität ist es eigentlich sinnvoll, ein globales CRS festzulegen, das alle Downloaddienste unterstützen müssen. Leider geht eine Transformation zwischen zwei verschiedenen CRS in einigen Fällen mit der Verschlechterung der Lagegenauigkeit einher. Unter diesen Umständen kann es notwendig sein, die Daten nur in dem System anzubieten, in dem sie auch erfasst bzw. verwaltet werden. Die Verantwortung für einen Genauigkeitsverlust durch eine Transformation übernimmt in diesem Fall der Nutzer. Da es aus den genannten Gründen nicht möglich ist, ein globales CRS zu fordern, wird an dieser Stelle nur eine abgestufte Liste von Empfehlungen aufgeführt.
Zur Einhaltung internationaler Interoperabilität SOLLEN Download-Dienste Anfragen im folgenden Koordinatenreferenzsystem unterstützen: EPSG:4326.
Bei Ausgabe des Formats GeoJSON ist zu beachten, dass die GeoJSON-Spezifikation [[RFC7946]] eine spezielles Koordinatenreferenzsystem (CRS84) vorgibt. Das sich dieses System nur in der Achsreihenfolge vom EPSG:4326 unterscheidet, wird es hier nicht explizit aufgeführt.
Download-Dienste, die Daten für einen deutschlandweiten Kontext bereitstellen, SOLLEN zusätzlich die Koordinatenreferenzsysteme EPSG:25832 und EPSG:25833 unterstützen.
Download-Dienste, die Daten für einen europäischen Kontext bereitstellen, SOLLEN zusätzlich die Koordinatenreferenzsysteme EPSG:4258 und EPSG:3035 unterstützen.
Um eine möglichst breite Nutzbarkeit zu gewährleisten, SOLLEN Anfragen auch für das folgende Koordinatenreferenzsystem möglich sein: EPSG:3857.
Bei der Bereitstellung von Daten über einen Downloaddienst SOLLEN möglichst einfache Datenmodelle angeboten werden.
Erläuterung
Die Nutzung von standardisierten Diensten in Webapplikationen erfolgt größtenteils unter Zuhilfenahme von JavaScript-Bibliotheken, wie z.B. OpenLayers oder Leaflet. Diese Bibliotheken ermöglichen eine einfache Integration der Dienste in Webanwendungen. Die Datenquellen werden dabei in der Regel direkt vom Browser des jeweiligen Nutzers angefragt (verteilte Architektur auf Basis des HTTP). In manchen Fällen ist es dabei notwendig, dass die Webanwendung die verteilten Server direkt anfragen muss (z. B. Abruf von Metadaten, Capabilities-Dokumenten oder geometrischen Objekten). Aufgrund der Same-Origin Policy - einer Sicherheitseinstellung von Browsern - wird das Aufrufen von verteilten Ressourcen grundsätzlich verhindert. Abhilfe schafft hier die Empfehlung des W3C zum Cross-Origin Resource Sharing (CORS).
Der HTTP-Header (serverseitig) SOLL bei den jeweils bereitgestellten Operationen zusätzlich folgenden Eintrag enthalten: Access-Control-Allow-Origin: *
Aufgrund möglicher Längenbeschränkungen der URL bei der Verwendung der HTTP GET Methode, SOLLEN die Serverkomponenten der betroffenen Schnittstellen auch HTTP POST unterstützen.
Erläuterung
Soll ein Downloaddienst nur einem ausgewählten Nutzerkreis zur Verfügung gestellt werden, so muss dieser zur Übermittlung der Authentifizierungsinformationen mindestens das Standardverfahren für HTTP unterstützen.
Zur Absicherung von Downloaddiensten MUSS mindestens das Standardverfahren zur Authentifizierung von HTTP (RFC2617 - HTTP-Authentication) angeboten werden.
Erläuterung
Es gibt zwei häufig verwendete Versionen des WFS-Standards mit unterschiedlichem Verbreitungsgrad: WFS Version 1.1.0 [[OGC WFS 1.1.0]] und WFS Version 2.0.0 [[iso-19142-2010]]. Die meisten Softwarekomponenten, die über eine WFS-Schnittstelle verfügen, unterstützen auch die neuere WFS-Version 2.0.0. Ein Vorteil der neueren Version ist der native Support für Paging. Mithilfe dieser Funktion lassen sich auch sehr umfangreiche Datensätze automatisiert herunterladen. Manche Softwarekomponenten bietet diese Funktion auch schon bei der WFS Version 1.1.0 an.
Wird ein Downloaddienst auf Basis von WFS angeboten, so SOLL dieser die Version 2.0.0, 1.1.0 oder beide Versionen unterstützen.
Erläuterung
Bei einer SOA (service-oriented architecture) ist es systemrelevant, dass die Datenquellen dauerhaft referenzierbar sind. Im Falle von Downloaddiensten auf Basis von WFS gibt es für jeden Service eine URL, über die weitere Informationen zum Dienst in Form von Capabilities-Dokumenten verfügbar gemacht werden. Diese Capabilities-Dokumente beinhalten zum einen die Zugriffsadressen (URLs) zu den jeweiligen technischen Operationen (DescribeFeatureType, GetFeature etc.), zum anderen enthalten sie Metadaten über den Inhalt, welcher über den Dienst publiziert wird (Schema des FeatureTypes, Liste des FeatureTypes, etc.).
Downloaddienste können über die URL zum Capabilities-Dokument in Geschäftsprozesse und Applikationen eingebunden werden. Die Anwendung kommuniziert selbständig über das Netzwerk mit der jeweiligen Datenquelle und erhält als Antwort die benötigten Informationen bzw. Objekte.
Die eindeutige Referenzierung des Contents (FeatureType) erfolgt dabei durch eine Kombination der URL des
Servers mit dem <Name>
- Element des jeweiligen FeatureType. Dienst-URL und <Name>
von FeatureTypes sollen
nach Veröffentlichung eines Dienstes nicht mehr verändert werden. Die Änderung des Wertes hätte zur Folge, dass
alle abhängigen Prozesse und Applikationen angepasst werden müssten. Für den Betrieb und die Funktionsfähigkeit
einer Geodateninfrastruktur (GDI) ist die Persistenz dieser Identifikatoren von hoher Bedeutung.
Um die Nutzer in die Lage zu versetzen, sich über Änderungen von verteilten Diensten zu informieren, sehen die zugrundeliegenden Spezifikationen den optionalen Parameter UPDATESEQUENCE bei einem GetCapabilities Request vor, dessen Unterstützung aus dem zuvor genannten Grund empfohlen wird.
Der UPDATESEQUENCE Parameter der GetCapabilities Operation SOLL unterstützt werden.
Der Wert des UPDATESEQUENCE Parameters SOLL als String in Form eines ISO 8601:2004 Zeitstempels - CCYY-MM-DDThh:mm:ss.sssZ - implementiert werden.
Erläuterung
Das FeatureType <Name>
- Element beim WFS ist ein Identifikator, der grundsätzlich von Software genutzt wird
(Maschine-Maschine-Kommunikation). Um Fehler beim Auslesen eines Capabilities-Dokumentes auszuschließen,
sollten sich diese Identifikatoren nur aus Zeichen zusammensetzen, deren Verwendung in unterschiedlichen
Programmiersprachen unbedenklich ist. Außerdem sollte die Zahl der verwendeten Zeichen nicht zu groß sein, da es
sonst bei Clients, die Datenanfragen nur über HTTP GET umsetzen, zu Fehlern bei der Übertragung der Anfragen
kommen kann.
FeatureType-Namen MÜSSEN innerhalb eines Dienstes eindeutig sein und folgendem regulären Ausdruck entsprechen: [0-9a-zA-Z\.\-_:+]
Die Länge der Zeichenkette des FeatureType-Namens bzw. -Identifikators SOLL möglichst kurz sein.
Werden umfangreiche Daten publiziert, die sich nicht mit einem einzelnen Request herunterladen lassen, so MUSS die WFS-Schnittstelle Paging unterstützen.
Zur Vermeidung von Überlastungen von Client und Server soll die maximal auslieferbare Zahl von Objekten mit einem Request beschränkt werden. Die Obergrenze ist dabei abhängig von der Leistungsfähigkeit des Servers und der Komplexität der Objekte.
Bei einfachen Objekten, wie z.B. Flurstücken, sind 100.0000 Objekte pro Request in der Regel kein Problem.
Die Information über die maximale Zahl der abfragbaren Objekte eines WFS SOLL im Capabilities-Dokument in Form eines Constraints angegeben werden.
Bei den Metadaten des Dienstes (Capabilities-Dokument) wird zwischen Service Level und Content Level unterschieden. Die Service Level Informationen beziehen sich auf Informationen zum Dienst und zum Dienstanbieter, die Content Level Informationen beschreiben die bereitgestellten FeatureTypes. Zusätzlich zu den Metadaten in den Capabilities-Dokumenten des Dienstes ist ein ISO 19139-Dokument zu erstellen und im Internet zu publizieren. Das Mapping zwischen den Elementen des Capabilities-Dokumentes und des ISO-Dokumentes wird im Folgenden dargelegt.
flowchart LR subgraph WFS 1.1.0 / 2.0.0 subgraph Capabilities A[INSPIRE Extension] B[FeatureType 1] C[FeatureType n] end end direction LR subgraph Geodaten D[Datensatz 1] E[Datensatz n] end subgraph CSW 2.0.2 F[Dienste-Metadatensatz] G[Daten-Metadatensatz 1] H[Daten-Metadatensatz n] end A-- MetadataURL -->F F-- connectPoint -->A A-- SpatialDataSetIdentifier 1 -->D A-- SpatialDataSetIdentifier 2 -->E B-- MetadataURL -->G C-- MetadataURL -->H G-- MD_Identifier -->D H-- MD_Identifier -->E F-- operatesOn -->G F-- operatesOn -->H
Erläuterung
Die Metadaten im Service Level der Capabilities beschreiben den kompletten Dienst, nicht die Datenquellen des Dienstes.
Für die bereitzustellenden Service-Metadatenelemente in den Capabilities- und jeweiligen ISO-Dokumenten gilt die nachfolgende Tabelle.
Grau unterlegte Felder sind verpflichtend.
WFS (1.1.0 / 2.0.0) | Erläuterung | ISO19139 XPATH |
---|---|---|
/wfs:WFS_Capabilities/ows:ServiceIdentification/ows:Title | Titel des Dienstes | /gmd:MD_Metadata/gmd:identificationInfo/srv:SV_ServiceIdentification/gmd:citation/gmd:CI_Citation/gmd:title/gco:CharacterString |
/wfs:WFS_Capabilities/ows:ServiceIdentification/ows:Abstract | Beschreibung des Dienstes | /gmd:MD_Metadata/gmd:identificationInfo/srv:SV_ServiceIdentification/gmd:citation/gmd:CI_Citation/gmd:abstract/gco:CharacterString |
/wfs:WFS_Capabilities/ows:ServiceIdentification/ows:Keywords | Liste der Schlüsselwörter | /gmd:MD_Metadata/gmd:identificationInfo/srv:SV_ServiceIdentification/gmd:descriptiveKeywords/gmd:MD_Keywords |
/wfs:WFS_Capabilities/ows:ServiceIdentification/ows:Fees | Angaben zu Nutzungseinschränkungen und Nutzungsbedingungen (Kosten, Gebühren, Lizenzen, Quellenangabe, etc.) | /gmd:MD_Metadata/gmd:identificationInfo/srv:SV_ServiceIdentification/gmd:resourceConstraints/gmd:MD_LegalConstraints[gmd:useConstraints/gmd:MD_RestrictionCode/@codeListValue="otherRestrictions"]/gmd:otherConstraints/gmx:Anchor/text() |
/wfs:WFS_Capabilities/ows:ServiceIdentification/ows:AccessConstraints | Angaben zu Einschränkungen des öffentlichen Zugangs | /gmd:MD_Metadata/gmd:identificationInfo/srv:SV_ServiceIdentification/gmd:resourceConstraints/gmd:MD_LegalConstraints[gmd:accessConstraints/gmd:MD_RestrictionCode/@codeListValue="otherRestrictions"]/gmd:otherConstraints/gmx:Anchor/text() |
/wfs:WFS_Capabilities/ows:ServiceProvider/ows:ProviderName | Kontaktorganisation | /gmd:MD_Metadata/gmd:identificationInfo/srv:SV_ServiceIdentification/gmd:pointOfContact/gmd:CI_ResponsibleParty/gmd:organisationName/gco:CharacterString |
/wfs:WFS_Capabilities/ows:ServiceProvider/ows:ProviderSite/@xlink:href | Link zur Webseite des Diensteanbieters | /gmd:MD_Metadata/gmd:identificationInfo/srv:SV_ServiceIdentification/gmd:pointOfContact/gmd:CI_ResponsibleParty/gmd:contactInfo/gmd:CI_Contact/gmd:onlineResource/gmd:CI_OnlineResource/gmd:linkage/gmd:URL |
/wfs:WFS_Capabilities/ows:ServiceProvider/ows:ServiceContact/ows:IndividualName | Kontaktperson | /gmd:MD_Metadata/gmd:identificationInfo/srv:SV_ServiceIdentification/gmd:pointOfContact/gmd:CI_ResponsibleParty/gmd:individualName/gco:CharacterString |
/wfs:WFS_Capabilities/ows:ServiceProvider/ows:ServiceContact/ows:PositionName | Position der Kontaktperson | /gmd:MD_Metadata/gmd:contact/gmd:CI_ResponsibleParty/gmd:positionName/gco:CharacterString |
/wfs:WFS_Capabilities/ows:ServiceProvider/ows:ServiceContact/ows:ContactInfo/ows:Address/ows:City | Ort | /gmd:MD_Metadata/gmd:identificationInfo/srv:SV_ServiceIdentification/gmd:pointOfContact/gmd:CI_ResponsibleParty/gmd:contactInfo/gmd:CI_Contact/gmd:address/gmd:CI_Address/gmd:city/gco:CharacterString |
/wfs:WFS_Capabilities/ows:ServiceProvider/ows:ServiceContact/ows:ContactInfo/ows:Address/ows:DeliveryPoint | Straße und Hausnummer | /gmd:MD_Metadata/gmd:identificationInfo/srv:SV_ServiceIdentification/gmd:pointOfContact/gmd:CI_ResponsibleParty/gmd:contactInfo/gmd:CI_Contact/gmd:address/gmd:CI_Address/gmd:deliveryPoint/gco:CharacterString |
/wfs:WFS_Capabilities/ows:ServiceProvider/ows:ServiceContact/ows:ContactInfo/ows:Address/ows:AdministrativeArea | Bundesland der postalischen Kontaktadresse. Angaben erfolgen per ISO3166-2Code (Bsp.: "DE-RP") zur Unterstützung automatischer Auswertungen. | /gmd:MD_Metadata/gmd:identificationInfo/srv:SV_ServiceIdentification/gmd:pointOfContact/gmd:CI_ResponsibleParty/gmd:contactInfo/gmd:CI_Contact/gmd:address/gmd:CI_Address/gmd:administrativeArea/gco:CharacterString |
/wfs:WFS_Capabilities/ows:ServiceProvider/ows:ServiceContact/ows:ContactInfo/ows:Address/ows:PostalCode | Postleitzahl | /gmd:MD_Metadata/gmd:identificationInfo/srv:SV_ServiceIdentification/gmd:pointOfContact/gmd:CI_ResponsibleParty/gmd:contactInfo/gmd:CI_Contact/gmd:address/gmd:CI_Address/gmd:postalCode/gco:CharacterString |
/wfs:WFS_Capabilities/ows:ServiceProvider/ows:ServiceContact/ows:ContactInfo/ows:Address/ows:Country | Staat, Angaben erfolgen per ISO3166-1 Code ("DE") | /gmd:MD_Metadata/gmd:identificationInfo/srv:SV_ServiceIdentification/gmd:pointOfContact/gmd:CI_ResponsibleParty/gmd:contactInfo/gmd:CI_Contact/gmd:address/gmd:CI_Address/gmd:country/gco:CharacterString |
/wfs:WFS_Capabilities/ows:ServiceProvider/ows:ServiceContact/ows:ContactInfo/ows:Address/ows:ElectronicMailAddress | E-Mailadresse der Kontaktorganisation | /gmd:MD_Metadata/gmd:identificationInfo/srv:SV_ServiceIdentification/gmd:pointOfContact/gmd:CI_ResponsibleParty/gmd:contactInfo/gmd:CI_Contact/gmd:address/gmd:CI_Address/gmd:electronicMailAddress/gco:CharacterString |
/wfs:WFS_Capabilities/ows:ServiceProvider/ows:ServiceContact/ows:ContactInfo/ows:OnlineResource/@xlink:href | Homepage des Datenbereitstellers |
|
/wfs:WFS_Capabilities/ows:ServiceProvider/ows:ServiceContact/ows:ContactInfo/ows:Phone/ows:Voice | Telefonnummer der Kontaktorganisation | /gmd:MD_Metadata/gmd:identificationInfo/srv:SV_ServiceIdentification/gmd:pointOfContact/gmd:CI_ResponsibleParty/gmd:contactInfo/gmd:CI_Contact/gmd:phone/gmd:CI_Telephone/gmd:voice/gco:CharacterString |
/wfs:WFS_Capabilities/ows:ServiceProvider/ows:ServiceContact/ows:ContactInfo/ows:Phone/ows:Facsimile | Faxnummer der Kontaktorganisation |
|
Erläuterung
Die notwendige Verlinkung eines Service-Metadatensatzes im Capabilities-Dokument erfolgt auf dem zur Umsetzung von INSPIRE gewählten Weg über die Nutzung einer Extension. Die Erweiterung kann über die Angabe von zusätzlichen Namensräumen oder die Verlinkung eines Schemas im Header des XML erfolgen. Da nicht sichergestellt werden kann, dass das Schema dauerhaft auf Seiten der EU gehostet wird, soll der Weg über die Angabe der notwendigen Namensräume verwendet werden.
Zur Erweiterung der Capabilities-Dokumente mit den notwendigen Informationen SOLL der Header um folgende Namensräume ergänzt werden: xmlns:inspire_common="http://inspire.ec.europa.eu/schemas/common/1.0", xmlns:inspire_dls="http://inspire.ec.europa.eu/schemas/inspire_dls/1.0"
Im Capabilities-Dokument ist ein Dienst-Metadatensatz zu verlinken. Die Verlinkung MUSS entsprechend den INSPIRE-Vorgaben erfolgen (siehe [[GDI-DE HE INS Downloaddienste]]). Es ist dabei freigestellt, ob der Link direkt auf einen Metadatensatz verweist oder es sich um einen GetRecordById-Request handelt. Wichtig ist nur, dass der richtige MimeType angegeben wird.
Je nach Dokumententyp SOLL als MediaType entweder application/vnd.ogc.csw.GetRecordByIdResponse_xml oder application/vnd.iso.19139+xml angegeben werden.
Für die bereitzustellenden Content (FeatureType)-Metadatenelemente in den Capabilities-Dokumenten gilt nachfolgende Tabelle.
Grau unterlegte Felder sind verpflichtend.
WFS (1.1.0 / 2.0.0) | Erläuterung |
---|---|
/wfs:WFS_Capabilities/FeatureTypeList/FeatureType/Title | Titel des FeatureTypes |
/wfs:WFS_Capabilities/FeatureTypeList/FeatureType/Abstract | Beschreibung des FeatureTypes |
/wfs:WFS_Capabilities/FeatureTypeList/FeatureType/MetadataURL/@xlink:href | Link zu einem ISO19139-kodierten Metadatensatz der Datengrundlage dieses FeatureTypes. (Hinweis: Die genaue Umsetzung der Daten-Dienste-Kopplung wird in einem eigenen Abschnitt erläutert.) |
Erläuterungen
Die Daten-Dienste-Kopplung erfolgt in den Capabilities-Dokumenten über die Angabe eines oder mehrerer MetadataURL-Einträge je FeatureType. Jeder MetadataURL-Eintrag verlinkt auf die Metadaten des zugehörigen Datensatzes, der durch den jeweiligen FeatureType bereitgestellt wird. Um den Nutzern das „Information Retrieval“ über die Kataloge der Geodateninfrastrukturen zu erleichtern, soll des Weiteren der von INSPIRE vorgesehene Ansatz Verwendung finden (siehe [[GDI-DE HE INS Downloaddienste]]). Dieser legt fest, dass für jeden FeatureType des WFS in den Capabilities-Dokumenten zusätzlich die Ressourcenidentifikatoren der Datensätze angegeben werden. Im Gegensatz zum WMS erfolgt die Angabe der Identifikatoren nicht am FeatureType, sondern im Extensionbereich für den Dienst. Die Angabe der Identifikatoren erfolgt getrennt nach Namensraum (Codespace) und Code. Der gesamte Ressourcenidentifikator entspricht dem von INSPIRE geforderten Unique Resource Identifier (URI) des Geodatensatzes, der über die jeweiligen FeatureTypes bereitgestellt wird (siehe auch [[INS TG Metadata 2.0.1]]).
Stellt ein Downloaddienst Daten bereit, für die über das Internet erreichbare, standardisierte Metadatensätze existieren, so MÜSSEN diese über eine Daten-Dienste-Kopplung in den jeweiligen FeatureType-Metadaten des Capabilities-Dokuments referenziert werden. Die Kopplung wird über das xlink:href Attribut der MetadataUR-Elemente realisiert.
Die Angabe der Ressourcen- bzw. Datensatzidentifikatoren MUSS im Extensionbereich des Capabilities-Dokumentes erfolgen.
Stellt ein Downloaddienst Daten bereit, für die noch keine standardisierten Metadaten existieren, so sollen diese erstellt und über das Internet verfügbar gemacht werden.
Die zur Umsetzung der Daten-Dienste-Kopplung genutzten MetadataURL-Elemente MÜSSEN entweder auf valide ISO19139-Dokumente oder GetRecordById-Requests von Katalogdiensten verweisen.
Erläuterungen
Das Standardausgabeformat bei WFS ist normalerweise GML. Da die meisten Serverkomponenten in der Lage sind weitere Ausgabeformate bereitzustellen, macht es Sinn, auch zusätzliche, insbesondere weit verbreitete, Datenformate anzubieten.
Neben diversen GML-Varianten SOLLEN Downloaddienste auf Basis von WFS auch in der Lage sein, folgende weitere Datenformate bereitzustellen:
Erläuterung
Der Weg zur Bereitstellung von Geodaten über INSPIRE ATOM-Feeds wurde bei der Umsetzung von INSPIRE als Möglichkeit für den einfachen Download von vordefinierten Datensätzen (oder vordefinierten Teilen eines Datensatzes) entwickelt. Eine Option zur Abfrage von Dateninhalten oder dem Auswählen von benutzerdefinierten Teilmengen von Datensätzen ist nicht gegeben.
Ein Grund für die Verwendung des Atom-Standards [[RFC4287]] war die Möglichkeit der direkten Interpretation der Feeds durch verschiedene Browser. Die Feeds können direkt durch die Nutzer der Daten abonniert werden. Der Nutzer kann sich somit über die Aktualisierung der Daten automatisiert informieren lassen. Das von der damaligen INSPIRE Initial Operating Capability Task Force (IOC-TF) vorgeschlagene Verfahren zur Bereitstellung von Geodaten mittels ATOM-Feeds basiert auf einer zweistufigen Lösung, die die gesetzlichen Anforderungen der Durchführungsbestimmungen zu den Netzdiensten [[INS VO Netzdienste]] erfüllt.
Die INSPIRE-Richtlinie sieht grundsätzlich die Bereitstellung von Geodaten über Downloaddienste vor. Eine für diese Dienste geforderte Operation ist die Beschreibung des Dienstes selbst (Get Download Service Metadata).
Im Fall von OGC Diensten, wie beispielsweise WMS oder WFS, handelt es sich dabei um das Capabilities-Dokument. Im Fall des INSPIRE ATOM-Ansatzes ist hierzu die Bereitstellung eines so genannten Service Feeds vorgesehen. Für jeden Datensatz, den ein solcher INSPIRE Atom Download Service zur Verfügung stellt, enthält der Service Feed einen Eintrag (<entry>
- Element), welcher auf ein zweites sogenanntes Dataset Feed verlinkt.
Für den Aufbau der beiden Feeds gibt das Technical Guidance Dokument [[INS TG Download Services]] konkrete Vorgaben.
Da sich die Art und Weise, Geodaten über dieses Verfahren bereitzustellen, in den letzten Jahren europaweit etabliert hat, und auch einige Softwareprodukte die ATOM-Feeds automatisch generieren können, macht es Sinn, das Verfahren auch in Deutschland einzusetzen. Eine Alternative zu INSPIRE ATOM-Feeds bieten in Zukunft möglicherweise STAC [[STAC]] bzw. OGC API Records [[OGC API Records - Part 1: Core]].
Im Kontext von INSPIRE wird bei der Bereitstellung von ATOM-Feeds eine OpenSearch-Schnittstelle erwartet. Diese kann bei einer Nutzung im rein deutschen Kontext entfallen, da diesbezüglich keine gesetzliche Anforderung existiert.
flowchart LR G[ISO 19139 Metadaten für Downloaddienst] H[ISO 19139 Metadaten für Datensatz A] K[ISO 19139 Metadaten für Datensatz B] subgraph I[Service Feed] direction RL A[Entry A] B[Entry B] end I--"/feed/link[@rel='describedby]/@href'"-->G A--"/entry/link[@rel='describedby']/@href"-->H B--"/entry/link[@rel='describedby']/@href"-->K subgraph L[Dataset Feed A] C[Entry A] D[Entry B] end subgraph M[Dataset Feed B] E[Entry A] F[Entry B] N[Entry C] end O["Datensatz A (GML)"] P["Datensatz A (GML, anderes CRS)"] Q["Datensatz B (ZIP-Archiv)"] R["Datensatz B (Shape)"] S["Datensatz B (Shape, anderes CRS)"] A--"/entry/link[@rel='alternate]/@href'"-->L B--"/entry/link[@rel='alternate]/@href'"-->M C--"/entry/link[@rel='alternate]/@href'"-->O D--"/entry/link[@rel='alternate]/@href'"-->P E--"/entry/link[@rel='alternate]/@href'"-->Q F--"/entry/link[@rel='alternate]/@href'"-->R N--"/entry/link[@rel='alternate]/@href'"-->S
Erläuterung
Das Service-Feed-Dokument entspricht dem Capabilities-Dokument eines OGC-Dienstes (siehe auch [[OGC OWS Common]]). Die Identifizierung der Inhalte des ATOM-Feeds kann der nachfolgenden Tabelle entnommen werden. Die Abkürzungen TG Req. und TG Rec. stehen für die Requirements und Recommendations aus dem Technical Guidance Dokument. Die verpflichtenden Anforderungen sind grau hervorgehoben.
ATOM Service Feed Elemente | Level (Feed/Entry) | Erläuterung | ISO19139 XPATH |
---|---|---|---|
/feed/title | Feed | Titel des Feeds (TG Req. 5) |
|
/feed/subtitle | Feed | Kurzbeschreibung für das Feed (TG Rec. 1) |
|
/feed/link[@rel=“describedby“] | Feed | Link auf den jeweiligen Service-Metadatensatz der über einen Discovery Service veröffentlicht werden muss. Die URL kann als GetRecordById-Request (HTTP/GET) oder als direkter Link auf ein ISO 19139-Metadaten-Dokument angegeben werden. (TG Req. 6) |
|
/feed/link[@rel=“self“] | Feed | URL auf das Service Feed - Selbstreferenz (TG Req. 7) |
|
/feed/id | Feed | Identisch mit /feed/link[@rel=“self“] (TG Req. 9) |
|
/feed/link[@rel=“alternate“] | Feed | URLs zu weiteren Beschreibungen, wenn vorhanden. (z.B. HTML Repräsentation oder andere Sprache) (TG Rec. 2) |
|
/feed/link[@rel=“search“] | Feed | Link auf ein OpenSearch Description Dokument (TG Req. 8) |
|
/feed/rights | Feed | Informationen zu Nutzungsbedingungen und Zugangsbeschränkungen. Vergleichbar mit accessConstraints / fees. (TG Req. 10) |
|
/feed/updated | Feed | Datum der Erstellung oder letzten Aktualisierung des Feeds (TG Req. 11) |
|
/feed/author;/feed/author/name;/feed/author/email | Feed | Angabe von Kontaktinformationen der für den Dienst verantwortlichen Organisation (TG Req. 12) |
|
/feed/entry/title | Entry | Titel des Datensatzes (TG Req. 18) |
|
/feed/entry/inspire_dls:spatial_dataset_identifier_code;/feed/entry/inspire_dls:spatial_dataset_identifier_namespace | Entry | Angabe des Resourcen-Identifikators des Geodatensatzes. Der Identifikator setzt sich zusammen aus einem Code und dem korrespondierenden Namensraum. (TG Req. 13) |
|
/feed/entry/link[@rel=“describedby“] | Entry | Link auf den jeweiligen Daten-Metadatensatz zum <entry>Element. Die URL kann als GetRecordById-Request (HTTP/GET) oder als direkter Link auf ein ISO 19139-Metadaten-Dokument angegeben werden. Vergleichbar mit MetadataURL in OWS Capabilities Dokumenten. (TG Req. 14) |
|
/feed/entry/link[@rel=“alternate“] | Entry | Link auf den Dataset Feed. Attribut „type“ muss „application/atom+xml“ sein. (TG Req. 15) |
|
/feed/entry/link[@rel=“related“] | Entry | Im Fall einer „hybriden“ Implementierung des Direktzugriffs-Downloaddienst muss hier der Link auf den GetCapabilities Aufruf des zugehörigen WFS angegeben werden. Das type-Attribut muss application/xml sein. (TG Req. 16) |
|
/feed/entry/id | Entry | Identisch mit /feed/link[@rel=“self“] (TG Req. 17) |
|
/feed/entry/title | Entry | Titel des Datensatzes (TG Req. 18) |
|
/feed/entry/updated | Entry | (TG Req. 19) |
|
/feed/entry/rights | Entry | Informationen zu Nutzungsbedingungen und Zugangsbeschränkungen. Vergleichbar mit accessConstraints / fees. (TG Rec. 3). Sofern diese Informationen für alle entries gleich sind reicht der Eintrag auf feed Ebene. |
|
/feed/entry/author | Entry | Angabe von Kontaktinformationen der für den Dienst verantwortlichen Organisation (TG Rec. 4). Wird sonst vererbt. |
|
/feed/entry/summary | Entry | (TG Rec. 5) |
|
/feed/entry/georss:polygon|point | Entry | (TG Rec. 6, 7) |
|
/feed/entry/category | Entry | (TG Req. 20) |
|
/feed/|/feed/entry/link[rel=“self“]/@hreflang | Entry | (TG Req. 36, 37, 38) |
|
Erläuterung
Das Dataset-Feed-Konzept erlaubt es, mehrere <entry>
- Elemente anzugeben. Damit können auch verschiedene
Repräsentationen eines Datensatzes direkt zur Verfügung gestellt werden (unterschiedliche CRS, Datenformate).
Ferner kann z. B. ein besonders großer Datensatz in verschiedene Einzelteile aufgesplittet bereitgestellt werden. Die
verschiedenen Repräsentationen der Datensätze werden als eigene <entry>
- Elemente modelliert. Der direkte Zugriff
auf die Datensätze erfolgt über URLs, die über eine Liste von <link>
- Elementen abgebildet werden. Die
Repräsentationen und Teile müssen für diesen Zweck über URLs erreichbar sein (siehe auch TG Req. 26 und 27).
ATOM Dataset Feed Elemente | Level (Feed/Entry) | Erläuterung | ISO19139 XPATH |
---|---|---|---|
/feed/title | Feed | Titel des Feeds (TG Req. 21) |
|
/feed/subtitle | Feed | Kurzbeschreibung für das Feed (TG Rec. 8) |
|
/feed/link[@rel=“describedby“] | Feed | Über diesen Link soll eine Beschreibung der Datensätze verfügbar gemacht werden. Für INSPIRE konforme Datensätze soll die INSPIRE Registry verlinkt werden (Beispiel im TG vorhanden). (TG Req. 28) |
|
/feed/link[@rel=“up“] | Feed | URL auf das zugehörige Service Feed - soll Rückwärtsnavigation ermöglichen. (TG Rec. 9) |
|
/feed/id | Feed | Identisch mit /feed/link[@rel=“self“] (TG Req. 22) |
|
/feed/rights | Feed | Informationen zu Nutzungsbedingungen und Zugangsbeschränkungen. Vergleichbar mit accessConstraints / fees. (TG Req. 23) |
|
/feed/updated | Feed | Datum der Erstellung oder letzten Aktualisierung des Feeds (TG Req. 24) |
|
/feed/author;/feed/author/name;/feed/author/email | Feed | Angabe von Kontaktinformationen der für den Dienst verantwortlichen Organisation (TG Req. 25) |
|
/feed/entry/title | Entry | Titel der Repräsentation des Datensatzes - wie beim Service Feed (TG Req. 18) |
|
/feed/entry/link[@rel=“alternate“|@rel=“section“] | Entry | Fall der Bereitstellung eines Datensatzes über einen einzelnen Link hat das Attribut rel den Wert „alternate“. Im Falle der Bereitstellung über Teile wird der Wert„section“ vorgegeben. Weitere Vorgaben für Attribute (optional, mandatory, conditional): 1. (o) - „length“ - wenn möglich soll die Dateigröße mit angegeben werden (in 8bits ~1 byte), 2. (m) -„type“ - valider Medientype gemäß INSPIRE media-type register - http://inspire.ec.europa.eu/media-types (siehe TG Req. 34). Ansonsten Anwendung von http://www.ietf.org/rfc/rfc2046.txt?number=2046 - IANA media-types, 3. (m) - „hreflang“ - Angabe des Codes für die Sprache des Datensatzes, 4. (o) - bbox - gem. georss:box, 5. (o) - time - Zeitangabe gem. ISO8601 (TG Req. 29, 30, 31; TG Req. 32, TG Rec. 10, TG Rec. 11) |
|
1. /feed/entry/content oder 2. /feed/entry/link[@rel=“alternate“] | Entry | Wenn mehrere physikalische Dateien bereitgestellt werden, soll eine zusätzliche Beschreibung angegeben werden. Die Beschreibung kann intern (1.) oder extern (2.) erfolgen (siehe Beispiel). (TG Req. 33) |
|
/feed/entry/id | Entry | Identisch mit /feed/link[@rel=“self“] (TG Req. 17) |
|
/feed/entry/updated | Entry | (TG Req. 19) |
|
/feed/entry/georss:polygon|point | Entry | Alle Vorgaben des Service Feeds gelten auch für das Dataset Feed |
|
/feed/entry/category | Entry | Jedes <entry> - Element soll ein <Category> - Element beinhalten das die Angabe des Koordinatenreferenzsystems enthält. (TG Req. 35) |
|
Erläuterung
Datensätze können bei Bedarf auch in mehreren Einzelteilen bereitgestellt werden.
Werden Datensätze in mehreren einzelnen Teilen über ein ATOM Dataset Feed abgegeben, so MÜSSEN
die Referenzen als href
Attribute in <link>
- Elementen angegeben werden. Die Elemente werden durch das Attribut rel="section"
identifiziert und haben ein weiteres Attribut bbox
mit der Angabe ihres geographischen Extents im Format "min_lat min_lon max_lat max_lon".
Erläuterung
In den [[OGC Web API Guidelines]] sind grundsätzliche Leitfäden für die Umsetzung schnittstellenorientierter Geodatendienste beschrieben. Aus einer ganzen Reihe an OGC APIs wurde der [[OGC API - Features-Part 1]] im November 2019 veröffentlicht. Dabei handelt es sich um eine komplette Überarbeitung des OGC Web Feature Service (WFS), weshalb dieser zunächst auch unter der Bezeichnung „WFS 3.0“ bekannt war. OGC API Features setzt auf die Nutzung gängiger Web-Standards wie beispielsweise REST (Representational State Transfer) mit dem Ziel den Zugriff auf Vektordaten zu vereinfachen und diese in beliebige Webanwendungen zu integrieren.
Anders als der WFS ist ein Downloaddienst auf OGC API - Feature Basis nicht an starre XML-Strukturen gebunden, da für diesen kein Encoding verpflichtend ist (HTML und GeoJSON werden lediglich empfohlen). Zudem lassen sich Datensätze durch HTTP content negotiation in verschiedenen Repräsentationen/Rückgabeformaten abfragen und mittels „Paging“ seitenweise anzeigen, ohne den Dienst in einen GIS-Client einbinden zu müssen.
Die Bereitstellung der Daten erfolgt über eine vorgegebene Pfadstruktur. Das API-Wurzelelement, die „Landing
Page“, muss Verlinkungen zu mindestens den Konformitätsangaben (/conformance
), Objektgruppierungen
(/collections
) und einer API Definition (/api
) aufweisen.
Ein technischer Ansatz für die Umsetzung der in den INSPIRE-Durchführungsbestimmungen für Netzdienste [[INS VO Netzdienste]] festgelegten Anforderungen auf der Grundlage des OGC-Standards API - Features ist unter [[INS GP OGC API - Features]] beschrieben.
graph TD A("Landing Page") ~~~ B("Konformitätsangaben") A("Landing Page")--- |"/conformance"| B("Konformitätsangaben") A--- |"/api"| C(API Definition) A--- |"/collections"| D(Datensätze) D--- |"/collectionid"| E(Datensatz) E--- |"/items"| F(Features) F--- |"/id"| G(Feature)
Erläuterung
Grundsätzlich verfolgen die OGC API-Standards einen modernisierten RESTful Ansatz, sodass mit OGC API -
Features Vektordaten direkt über eine URL abgefragt werden können. Der Zugriff auf Geodaten erfolgt mittels der
oben genannte Pfadhierarchie. Somit sind Objektsammlungen (collections
) und deren Features (items
) referenzierbar, solange
Sie den Pfad und die ID der Ressource kennen.
Erläuterung
Wird ein Downloaddienst über OGC API - Features bereitgestellt, ist zu beachten, dass der Standard [[OGC API - Features-Part 1]] bereits die Unterstützung für die zwei folgenden Referenzsysteme definiert:
Erläuterung
Damit Ressourcen direkt über eine URL abgerufen werden können, setzt dies Identifikatoren voraus, die sowohl für
die Datensätze (collections
) als auch deren Einzelobjekte (items
) eindeutig sind. Requests erfolgen über folgenden
Pfad: /collections/{collectionId}/items/{featureId}
.
Nachfolgend wird dies am API-Beispiel Verwaltungsgrenzen in Brandenburg und Berlin veranschaulicht. Mit dem Beispiel-Request sollen die Verwaltungsgrenzen des Kreises Potsdam abgefragt werden. Hierzu wird zuerst aus den Datensätzen (collections
) die entsprechende eindeutige ID (collectionId
) für die Kreise ("krs") und im Weiteren dann aus den Einzelobjekten der Kreise (items
) die eindeutige ID (featureId
) der Stadt Potsdam ("krs_417") referenziert.
Erläuterung
Grundsätzlich gibt es im OGC Standard keine Vorgaben für die Kopplung einzelner Ressourcen mit
Metadatenbeschreibungen, das heißt diese stellen lediglich eine Empfehlung dar. Im Zuge des Good-Practice-Projektes
"INSPIRE download services based on OGC API - Features" [[INS GP OGC API - Features]]
wurde die Empfehlung schließlich als Anforderung formuliert. Dementsprechend müssen Feature Collections bei INSPIRE-Umsetzungen
einen Link zum Metadatensatz für den Datensatz enthalten. Metadatenangaben für Feature Collections sollen laut Spezifikation im
Link-Parameter rel
als describedby
angegeben werden. Außerdem soll ein weiterer Link-Parameter type
als application/xml
gesetzt werden.
Bei diesem vereinfachten Ansatz ergeben sich unter anderem folgende Probleme:
Erläuterung
Bei den WxS wird der Service-Metadatensatz im Capabilities-Dokument verlinkt. Bei der OGC API Features Schnittstelle gibt es kein einzelnes Capabilities-Dokument, vielmehr sind die Informationen auf zwei verschiedene Endpunkte verteilt (Landing page und collections).
Die json-Variante der Landing page eines OGC API Features Dienstes, MUSS einen Link auf einen entprechenden ISO19139 Dienst-Metadatensatz enthalten. Die Angabe des Links erfolgt dabei entsprechend des nachfolgenden Beispiels, wobei das Attribut title frei wählbar ist.
Erläuterung
Bei den WxS werden die Datensatz-Metadaten ebenfalls im Capabilities-Dokument auf Ebene der jeweiligen Ressourcen (FeatureType/Coverage) verlinkt. Bei der OGC API Features Schnittstelle entpricht diese Informationsebene weitestgehend Response für den Pfad collections. In der json-Variante gibt es ein Array collections das der FeatureType- bzw. Coverage-List der WxS entspricht.
Die json-Variante der Response auf den collections-Pfad eines OGC API Features Dienstes, MUSS einen oder mehrere Links auf verknüpfte ISO19139 Daten-Metadatensätze enthalten. Die Angabe der Links erfolgt dabei entsprechend des nachfolgenden Beispiels, wobei das Attribut title frei wählbar ist.
Erläuterung
Mit dem OGC Web Coverage Service (WCS) wird ein Standard definiert, um Coverage Daten (z.B. Satellitenbilder oder digitale Geländemodelle) webbasiert zugänglich zu machen. Im Gegensatz zu anderen OGC-Webdiensten, wie dem Web Mapping Service (WMS), ermöglicht ein WCS Zugriff zu Coverage-Daten in Formen, die für die client-seitige Verarbeitung nutzbar sind. Es werden also keine gerenderten Kartenbilder bereitgestellt, sondern die originären Daten inklusive detaillierten Beschreibungen.
Im WCS-Standard ist eine reiche Syntax für Anfragen auf multidimensionale Daten und deren Metadaten definiert. Damit können Clients spezifische Bereiche von räumlichen/multidimensionalen Daten anfordern, die als "Coverage" bezeichnet werden. Ein Coverage kann eine zweidimensionale oder mehrdimensionale Abbildung eines Gebiets sein.
Erläuterung
Der WCS 2.0.1 besteht aus einer Core-Spezifikation und weiteren zum Teil verpflichtenden bzw. optionalen Erweiterungen:
flowchart BT subgraph service direction BT subgraph Extensions service direction BT I1[WCS-T] --> J(Service Model) I2[Processing] --> J(Service Model) I3[Range Subsetting] --> J(Service Model) I4[Scaling] --> J(Service Model) I5[CRS] --> J(Service Model) I6[Interpolation] --> J(Service Model) I7[WQS] --> J(Service Model) K1[GET-KVP] --> L(Protocol Binding) K2[POST-XML] --> L(Protocol Binding) K3[SOAP] --> L(Protocol Binding) K4[OAPI?] --> L(Protocol Binding) end subgraph Core service direction BT J[Service Model] --> M(WCS Core) L[Protocol Binding] --> M(WCS Core) end subgraph Application Profiles direction BT I11[EO-WCS] I12[MetOcean-WCS] end end M(WCS Core) --> N(OWS Common) M(WCS Core) --> E(Coverage Implementation Schema)
flowchart BT subgraph data direction BT subgraph Extensions data direction BT A1[GeoTIFF] --> B(Format Encoding) A2[netCDF] --> B(Format Encoding) A3[JPEG2000] --> B(Format Encoding) A4[GMLJP2] --> B(Format Encoding) A5[JPIP] --> B(Format Encoding) A6[GRIB2] --> B(Format Encoding) C[Referenceable Grid] --> D(Data Model) end subgraph Core data direction BT D[Data Model] --> E(Coverage Implementation Schema) B[Format Encoding] --> E(Coverage Implementation Schema) end E[Coverage Implementation Schema] --> F(GML) E[Coverage Implementation Schema] --> G(SWE Common) end E[Coverage Implementation Schema] --> M(WCS Core)
Der Web Coverage Service muss mindestens WCS 2.0.1 Core mit KVP-Binding unterstützen. [[INS TG Web Coverage Services]] (Anforderungen 1-2)
Erläuterung
Für Web Coverage Services (WCS) gibt es gegenwärtig Inkonsistenzen zu Anforderungen aus OGC und INSPIRE:
Während die OGC WCS 2.0.1 Spezifikation für den Geodatendienst an sich umgesetzt werden kann, fehlen für die Ausgabedatei (GML Coverage oder GeoTIFF) die Möglichkeiten für das Unterbringen und Übermitteln von Elementen aus den INSPIRE-Datenmodellen aus Annex II (Orthophotos und Höhe). Vorschläge zur Auflösung dieser Inkonsistenzen finden sich bei [WCS Baumann 2019]. Die MIG des JRC hat diesen Vorschlag als Best Practice anerkannt, eine abschließende Regelung seitens INSPIRE steht jedoch noch aus.
Ungeachtet dessen besteht Regelungsbedarf um die Interoperabilität von WCS-Diensten in Deutschland zur gewährleisten:
WCS 2.1 beschreibt die Unterstützung von CIS 1.1 (OGC Coverage Implementation Schema). Für die Implementierung eines WCS nach [[INS TG Web Coverage Services]] wäre ein WCS 2.0.0 oder 2.0.1 ausreichend. Die Konformität zur INSPIRE TG ist jedoch nur mit einem WCS 2.1 gegeben, der CIS spezifiziert. Derzeit ist die serverseitige Implementierung von WCS 2.1 noch unzureichend unterstützt.
Der Web Coverage Service SOLL WCS 2.1 Core mit KVP-Binding unterstützen.
Aufgrund der geringen Unterstützung des WCS 2.0.1 durch gängige Clients, SOLL für zweidimensionale Coverages mit maximal drei Farbkanälen auch ein WCS der Version 1.0.0 angeboten werden.
Erläuterung
Der WCS 2.0.1 beinhaltet eine große Anzahl an verpflichtenden bzw. optionalen Erweiterungen (vgl. und )
Aus Gründen der OGC-Konformität SOLLEN weiterhin folgende Extensions unterstützt werden:
Im Capabilities-Dokument SOLLEN ein Dienst- und alle verwendeten Datensatz-Metadatensätze verlinkt werden. Die Verlinkung SOLL entsprechend der INSPIRE-Vorgaben erfolgen.
Im Capabilities-Dokument sollen folgende Schlüsselwörter enthalten sein:
Erläuterung
In den INSPIRE-TG-WCS werden keine konkreten Spezifizierungen bzgl. Ausgabeformate gemacht. GML ist bereits als Teil des WCS-Core inkludiert. Sofern kein Output-Format bei der GetCoverage-Anfrage spezifiziert wird, wird das Range-Set als XML ausgeliefert. Dies ist insbesondere für sehr große Datensätze ineffizient und nicht sinnvoll. In den konkreten INSPIRE Daten-Spezifikationen oder Profilen werden zum Teil weitere Conformance-Requirements bzgl. Ausgabeformate definiert.
Als Ausgabeformat MUSS der WCS mindestens das Format GeoTIFF (image/tiff) ausliefern.
Für das Format GeoTIFF DARF zusätzlich die Erweiterungen GEOTIFF:COMPRESSION=compression sowie GEOTIFF:JPEG_QUALITY=1-100 angeboten werden.
Das native Format der Datengrundlage, die über den WCS angeboten wird, KANN in der DescribeCoverage-Datei angegeben werden.
Angaben zu den unterstützten Koordinatenreferenzsystemen MÜSSEN in der opengis.net-Notation angegeben werden.
Erläuterung
Die CoverageID beim WCS ist ein Identifikator, der grundsätzlich von Software genutzt wird (Maschine-Maschine-Kommunikation). Um Fehler beim Auslesen eines Capabilities-Dokumentes auszuschließen, sollten sich diese Identifikatoren nur aus Zeichen zusammensetzen, deren Verwendung in unterschiedlichen Programmiersprachen unbedenklich ist. Außerdem sollte die Zahl der verwendeten Zeichen nicht zu groß sein, da es sonst bei Clients, die Kartenanfragen nur über HTTP GET umsetzen, zu Fehlern bei der Übertragung der Anfragen kommen kann.
Innerhalb eines Dienstes darf die gleiche CoverageID nicht mehrfach vorkommen, da diese ansonsten vom Client nicht mehr unterschieden werden kann. Die CoverageID muss einen W3C konformen NCName aufweisen. Das bedeutet konkret, dass die CoverageID nicht mit einer Zahl beginnen darf, sondern mit einem Namespacenamen oder zumindest mit einem Underscore. Der Namespacename wird durch Underscore _ oder Doppelpunkt : vom eigentlichen Coverage-Namen abgetrennt.
CoverageIDs MÜSSEN innerhalb eines Dienstes eindeutig sein und folgendem regulären Ausdruck entsprechen: [a-zA-Z][0-9a-zA-Z\.\-_:+]*.
CoverageIDs der WCS-Version 2.0.1 MÜSSEN einen W3C konformen NCName aufweisen.
Die Länge der Zeichenkette des CoverageID SOLL so kurz wie möglich sein.
Der WCS MUSS mindestens den CoverageSubtype RectifiedGridCoverage unterstützen.
Bei der Skalierung von Rasterdaten SOLLEN folgende Interpolationsmethoden angeboten werden:
Besteht ein Datensatz aus mehreren Einzeldateien (z.B. GeoTIFFs/Kacheln) sollten diese in einem virtuellen Coverage (RectifiedGridCoverage) bereitgestellt werden.
Die Abfrage übergreifender Bereiche ist nur möglich, wenn alle Einzeldateien über ein Coverage abgegeben werden. Hierfür können Methoden wie z.B. Image Mosaic oder Virtual Raster Tables (VRT) als Datengrundlage für den Dienst verwendet werden.
Erläuterung
Durch das OGC wurde die SensorThings API (STA) Spezifikation in den Versionen 1.0 und 1.1 veröffentlicht. Die Spezifikation besteht aus zwei Teilen: einem zu "Sensing" (Version 1.1 und 1.0), in dem Methoden zum Verwalten und Abrufen von Observations (Beobachtungen) sowie Metadaten beschrieben sind, und einem zu "Tasking" (bisher nur Version 1.0), in dem Methoden für die Parametrierung von IoT-Geräten standardisiert werden.
Der "Sensing"-Teil wurde auf der Grundlage des OGC/ISO "Observation and Measurement" (O&M) Modells entwickelt. Der Schlüssel zu diesem Modell ist, dass eine "Observation" als eine Handlung modelliert wird, die ein Ergebnis ("result") erzeugt, dessen Wert eine Schätzung einer Eigenschaft des Beobachtungsziels oder "FeatureOfInterest" ist. Eine "Observation"-Instanz wird durch ihren Ereigniszeitpunkt (z. B. "resultTime" und "phenonmenonTime"), "FeatureOfInterest", "ObservedProperty" und das verwendete Verfahren (häufig ein "Sensor") klassifiziert. Darüber hinaus werden "Things" auch in der SensorThings-API modelliert, und ihre Definition folgt der ITU-T-Definition: „ein Objekt der physischen Welt (physische Dinge) oder der Informationswelt (virtuelle Dinge), das identifiziert und in Kommunikationsnetze integriert werden kann“.
classDiagram Datastream -- Thing Datastream -- ObservedProperty Datastream -- Sensor Observation -- Datastream Observation -- FeatureOfInterest Thing -- Location HistoricalLocation -- Thing Location -- HistoricalLocation class Datastream{ +name: CharacterString +description: CharacterString +observationType: ValueCode +unitOfMeasurement: JSON_Object +observedArea: GM_Envelope +phenomenonTime: TM_Period +resultTime: TM_Period +properties: JSON_Object } class Thing{ +name: CharacterString +description: CharacterString +properties: JSON_Object } class ObservedProperty{ +name: CharacterString +definition: URI +description: CharacterString +properties: JSON_Object } class Sensor{ +name: CharacterString +description: CharacterString +encodingType: ValueCode +metadata: Any +properties: JSON_Object } class Location{ +name: CharacterString +description: CharacterString +encodingType: ValueCode +location: Any +properties: JSON_Object } class HistoricalLocation{ +time: TM_Instant } class Observation{ +phenomenonTime: TM_Object +resultTime: TM_Instant +result: Any +resultQuality: DQ_Element +validTime: TM_Period +parameters: JSON_Object } class FeatureOfInterest{ +name: CharacterString +description: CharacterString } class ValueCode{ }
Die STA SOLL die Version 1.1 unterstützen. Eine wichtige Neuerung ist die Möglichkeit, für jede Entität ein properties Objekt zu definieren, in dem weitere Informationen, wie z.B. Links auf Metadaten, hinterlegt werden können. In der Version 1.0 ist dies nur für die Entität Thing möglich.
Erläuterung
Wie zuvor schon an verschiedenen Stellen erläutert, ist es in einer Geodateninfrastruktur (GDI) systemrelevant, dass die Datenquellen dauerhaft referenzierbar sind. Im Falle der STA handelt es sich um einen RESTful Ansatz, d.h. alle Entitäten sind über eine URI referenzierbar und aufrufbar. Die eindeutige Referenzierung erfolgt dabei durch eine Kombination der URI der entsprechenden Entität (z.B. Datastream) mit der @iot.id des jeweiligen Objekts. Beispiel: https://sta.host.de/v1.1/Datastreams({@iot.id})
Erläuterung
Bei der Bereitstellung der STA ist zu beachten, dass sich der Standard (OGC SensorThings API Part 1: Sensing Version 1.1) bei der Angabe von Koordinaten nur auf das verwendete Encoding (hier GeoJSON) bezieht. Die GeoJSON Spezifikation (The GeoJSON Format) wiederum erlaubt nur die Verwendung von WGS84/urn:ogc:def:crs:OGC::CRS84 (Länge/Breite) Koordinaten.
Erläuterung
Alle Entitäten besitzen das Attribut @iot.id, das vom Typ Integer oder UUID sein kann und als primärer Identifikator verwendet wird. Zusätzlich besitzt jede Entität ein Attribut name, das jedoch eher die Funktion eines Titels hat. Da der name über Filterabfragen verwendet werden kann, sollten hier keine Sonderzeichen verwendet werden, die zu Problemen bei der URL-Auflösung führen. Für den Betrieb und die Funktionsfähigkeit einer GDI ist die Persistenz dieser Identifikatoren von großer Bedeutung.
Das Attribut name SOLL innerhalb der API eindeutig sein und folgendem regulären Ausdruck entsprechen: [0-9a-zA-Z\.\-_: ].
Erläuterung
Weder über den OGC Standard noch aus INSPIRE-Spezifikationen gibt es Vorgaben zur Kopplung einzelner Entitäten mit Metadatenbeschreibungen. Die folgenden Empfehlungen bieten Vorschläge, wie Metadaten im Datenmodell integriert werden können. Die STA ab Version 1.1 bietet die Möglichkeit, für alle Entitäten ein frei konfigurierbares properties Objekt zu definieren. Es kann verwendet werden, um Links zu Metadaten in einem Metadatenkatalog bereitzustellen, OpenData-Kategorien zu benennen oder Informationen über den Zeitpunkt der letzten Aktualisierung zu transportieren. Auch Informationen über Datenaggregationen können hier abgelegt werden. Beispiel (https://iot.hamburg.de/v1.0/Datastreams(15864)):
Über das Attribut topic SOLLEN Kategorien (z.B. OpenData) zugeordnet werden.
Das Attribut metadata SOLL den Aufruf eines API ISO Metadatendokumentes einer Datensatzbeschreibung enthalten.
Über die Attribute layerName und serviceName KÖNNEN weitere Untergliederungen definiert werden.
Im Attribut resultNature SOLL angegeben werden, ob es sich um Primärdaten, prozessierte Daten oder simulierte Daten handelt. Hierfür sind folgende Schlagworte vorgesehen: primary, processed, simulated.
Im Attribut infoLastUpdate SOLL der Zeitpunkt der letzten Aktualisierung dieser Entität in Form eines ISO 8601:2004 Zeitstempels - CCYY-MM-DDThh:mm:ss.sssZ - angegeben werden.
Wenn es sich bei den Daten um Aggregate handelt, KÖNNEN über die Attribute aggregateDuration (Aggregationszeitraum) aggregateSource.Datastream@iot.id (ID des Datastreams der Quelldaten) sowie aggregateSource.Datastream@iot.navigationLink (Link auf den Datastream der Quelldaten) weitere Angaben hierzu hinterlegt werden.
Geodateninfrastrukturen basieren zum großen Teil auf den Standards des OGC. Um einen ersten Einblick in die Funktionsweise dieser Standards und der zugehörigen Architektur zu erhalten, hat das OGC im Jahr 2024 eine e-Learning Plattform [[OGC E-Learning]] eingerichtet. Dort werden alle Diensttypen, bis auf die speziell für Europa entwickelten INSPIRE ATOM-Feeds, eingehend beschrieben:
Bei dem Einsatz von Atom-Feeds erfolgt der Zugriff auf die Daten durch die im Atom-Feed bereit gestellten Verweise. Der Atom-Feed selbst muss nicht persistent sein. Die Adresse sollte aus einem INSPIRE Suchdienst z.B. über eine CSW-Schnittstelle ermittelt werden können.
Dataset-Feeds können auf Datensätze aus vielen Objektarten verweisen. Folglich ist keine direkte Identifikation einer Objektart aus Dataset-Feeds möglich.
Für die Bereitstellung von Downloaddiensten über das ATOM Verfahren werden mindestens zwei Feeds, ein Service- Metadatensatz sowie direkte Links auf im Web verfügbare Datenquellen benötigt. Die Dokumente können entweder manuell erzeugt oder mit Hilfe von Software erstellt werden. Die benötigte Information ist grundsätzlich Bestandteil der Metadaten zum Datensatz. Aus diesem Grund bietet es sich an, die XML-Dokumente dynamisch aus den Informationen des Metadatensatzes erzeugen zu lassen. Bei einer Änderung der Metadaten müssen jedoch die Feeds sowie der Service-Metadatensatz angepasst werden. Es ist sinnvoll diese Arbeitsschritte beispielsweise durch Skripte zu automatisieren.
Verfügt man über Infrastrukturen, in denen die Informationen zur Daten-Dienste-Metadatenkopplung schon vorliegen, kann man bestehende WMS und WFS nutzen, um die Downloadlinks in den ATOM-Feeds dynamisch zu erzeugen. Die beschreibenden Elemente der Feeds erhält man aus dem - an die Layer und FeatureTypes gekoppelten - Metadatensatz und die Downloadlinks kann man anhand der Service-Metadaten generieren. Die Vorteile dieses Verfahrens sind, dass bestehende Service-Infrastrukturen (z. B. einfache WMS und WFS) für die Abgabe der Daten verwendet werden können und dass es überflüssig wird Kopien von Datensätzen auf Webservern abzulegen. Für den Endnutzer ist es egal, ob er einen Downloadlink zu einem statisch auf einem Webserver abgelegten Datensatz oder einen GetFeature bzw. GetMap Request erhält.
Wird der ATOM-Feed in einem Feed-Reader dargestellt, so erfolgt die Darstellung auf Basis der Einstellungen des Feed-Readers. Wenn der ATOM-Feed in einem Web Browser angezeigt werden soll, so ist hilfreich, eine HTML-Darstellung zu erzeugen. Diese kann über die Referenzierung eines XSL-Stylesheets in der XML-Datei erzeugt werden. Das Referenzierte Stylesheet beinhaltet die Logik zur Erzeugung der HTML-Darstellung.
Für die Gestaltung der HTML-Varianten von OGC API Features Endpunkten, gibt es in der Spezifikation selbst keine Vorgaben. Manche Softwareprodukte, die OGC API Features Schnittstellen anbieten, erlauben eine - meist sehr beschränkte - Konfigurations dieser Seiten. Um den Umfang dieses Dokumentes nicht zu sprengen, veweisen wir auf das OGC API Features Testbed von Geonovum. Dort stehen verschiedene OpenSource Softwarekomponenten zur Bereitstellung von OGC API Features Schnittstellen zur Verfügung und können miteinader verglichen werden.
Geonovum hat auch eine Übersichtsseite erstellt, die die Konfigurationsmöglichkeiten für die HTML-Oberflächen der im Testbed eingestellten Serverkomponenten dokumentiert: Hinweise zu Konfigurationsmöglichkeiten für die HTML-Oberflächen