Basics of OGC EO Dataset Metadata GeoJSON¶
The metadata encoding defined in the OGC EO Dataset Metadata GeoJSON(-LD) standard satisfies the following design goals:
Feature-based GeoJSON model: The model maximizes reuse of pre-existing standardized property names.
Simplicity: The standard provides a simpler, overarching exchange format integrating comments from the Committee on Earth Observation Satellites (CEOS) Working Group on Information Systems and Services (WGISS) community.
Multiple use cases: The metadata model supports metadata for an acquisition, for a simple product derived from one acquisition, or for a synthetic product.
This tutorial focuses only on the EO GeoJSON encoding.
Configuring GeoServer for EO-GeoJSON¶
At the time of writing this tutorial, GeoServer is the Reference Implementation for this standard. GeoServer can be configured to export metadata conforming to the the OGC EO Dataset Metadata GeoJSON(-LD) standard by installing the Features-Templating Extension.
The following instructions have been tested with GeoServer 2.24.
Once the Feature Templating extension has been installed, configure a data source such as the following properties file to serve the metadata as a GeoServer layer.
For simplicity, name it metadata and place it in the cite namespace, so that it can be accessed through the identifier cite:metadata.
1 2 3 | _=id:Integer,identifier:String,status:String,title:String,date:String,updated:String,platform_id:String,platform_name:String,described_by:String,location:Geometry:srid=4326
metadata.1=1|http://example.org/record/1|ARCHIVED|Example metadata 1|2021-01-26T11:30:18Z|2021-01-26T11:30:18Z|https://earth.esa.int/concept/sentinel-1|Sentinel-1|http://geoserver.org|POLYGON ((30 10, 40 40, 20 40, 10 20, 30 10))
metadata.2=2|http://example.org/record/2|ARCHIVED|Example metadata 2|2021-01-26T11:30:18Z|2021-01-26T11:30:18Z|https://earth.esa.int/concept/sentinel-2|Sentinel-2|http://geoserver.org|POLYGON ((50 30, 60 60, 40 60, 30 40, 50 30))
|
Thereafter, add a feature template as described here.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 | {
"type": "Feature",
"id": "${identifier}",
"geometry": "${location}",
"properties": {
"status": "${status}",
"identifier": "${identifier}",
"title": "${title}",
"date": "${date}",
"updated": "${updated}",
"acquisitionInformation": [
{
"platform": {
"id": "${platform_id}",
"platformShortName": "${platform_name}"
},
"acquisitionParameters": {
"beginningDateTime": "${date}",
"endingDateTime": "${date}",
"acquisitionType": "NOMINAL"
}
}
],
"productInformation": {
"availabilityTime": "${updated}"
},
"offerings": [
{
"code":"http://www.opengis.net/spec/owc-geojson/1.0/req/wms",
"operations": [
{
"code":"urn:oasis:names:specification:docbook:dtd:xml:4.1.2",
"method":"GET",
"href":"http://example.org/wms?REQUEST=GetCapabilities&version=1.3.0&service=WMS"
}
]
}
],
"links": {
"describedBy": [
{
"href": "https://zenodo.org/record/1209633"
}
]
}
}
}
|
Once the feature template has been added to GeoServer, next associate the template with the layer containing the metadata (cite:metadata) and set the template to be applied to the GeoJSON output format.
You can now access the layer through the following URL:
The response should be as shown below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 | {
"type": "FeatureCollection",
"features": [
{
"type": "Feature",
"id": "http://example.org/record/1",
"geometry": {
"type": "Polygon",
"coordinates": [
[
[
30,
10
],
[
40,
40
],
[
20,
40
],
[
10,
20
],
[
30,
10
]
]
]
},
"properties": {
"status": "ARCHIVED",
"identifier": "http://example.org/record/1",
"title": "Example metadata 1",
"date": "2021-01-26T11:30:18Z",
"updated": "2021-01-26T11:30:18Z",
"acquisitionInformation": [
{
"platform": {
"id": "https://earth.esa.int/concept/sentinel-1",
"platformShortName": "Sentinel-1"
},
"acquisitionParameters": {
"beginningDateTime": "2021-01-26T11:30:18Z",
"endingDateTime": "2021-01-26T11:30:18Z",
"acquisitionType": "NOMINAL"
}
}
],
"productInformation": {
"availabilityTime": "2021-01-26T11:30:18Z"
},
"offerings": [
{
"code": "http://www.opengis.net/spec/owc-geojson/1.0/req/wms",
"operations": [
{
"code": "urn:oasis:names:specification:docbook:dtd:xml:4.1.2",
"method": "GET",
"href": "http://example.org/wms?REQUEST=GetCapabilities&version=1.3.0&service=WMS"
}
]
}
],
"links": {
"describedBy": [
{
"href": "https://zenodo.org/record/1209633"
}
]
}
}
},
{
"type": "Feature",
"id": "http://example.org/record/2",
"geometry": {
"type": "Polygon",
"coordinates": [
[
[
50,
30
],
[
60,
60
],
[
40,
60
],
[
30,
40
],
[
50,
30
]
]
]
},
"properties": {
"status": "ARCHIVED",
"identifier": "http://example.org/record/2",
"title": "Example metadata 2",
"date": "2021-01-26T11:30:18Z",
"updated": "2021-01-26T11:30:18Z",
"acquisitionInformation": [
{
"platform": {
"id": "https://earth.esa.int/concept/sentinel-2",
"platformShortName": "Sentinel-2"
},
"acquisitionParameters": {
"beginningDateTime": "2021-01-26T11:30:18Z",
"endingDateTime": "2021-01-26T11:30:18Z",
"acquisitionType": "NOMINAL"
}
}
],
"productInformation": {
"availabilityTime": "2021-01-26T11:30:18Z"
},
"offerings": [
{
"code": "http://www.opengis.net/spec/owc-geojson/1.0/req/wms",
"operations": [
{
"code": "urn:oasis:names:specification:docbook:dtd:xml:4.1.2",
"method": "GET",
"href": "http://example.org/wms?REQUEST=GetCapabilities&version=1.3.0&service=WMS"
}
]
}
],
"links": {
"describedBy": [
{
"href": "https://zenodo.org/record/1209633"
}
]
}
}
}
],
"totalFeatures": 2,
"numberMatched": 2,
"numberReturned": 2,
"timeStamp": "2024-01-22T18:33:21.068Z",
"crs": {
"type": "name",
"properties": {
"name": "urn:ogc:def:crs:EPSG::4326"
}
}
}
|