FAIR metadata generation#
FAIR principles provide some guidelines when producing and sharing datasets.
An openEO backend can make it easier to comply with these principles, by incorporating these principles in the implementation, so that users are automatically a step closer to generating FAIR-compliant open data.
These are a few examples that you want to look for as a user, or that a backend provider may want to implement:
F2 Rich metadata openEO backends generate STAC metadata, backends are encouraged to make it rich by including processing info, complete raster metadata, band information, etcetera.
R1.2 Detailed provenance In result metadata derived-from links can link back to all input products to provide provenance.
R1.3 use of domain relevant metadata standard openEO generates STAC metadata, so this one is included by default.
As openEO backends do not automatically publish the data you generate, there’s also a number of principles that still require some attention, but still, with data and metadata generated by openEO, you should get a headstart!
This is an example of how openEO generated metadata looks like in STAC browser:
This is the STAC collection metadata as raw STAC JSON:
{
"assets": {
"openEO_2021-10-14Z.tif": {
"eo:bands": [
{
"name": "classification"
},
{
"name": "confidence"
}
],
"file:nodata": [
255
],
"file:size": 6217374,
"href": "https://openeo.vito.be/openeo/1.1/jobs/j-2310271419f040e1af6000397f82d225/results/assets/ZGZhNjc4Y2I5YWIxN2Y2NWQ0ZjAyNWUzMGZhYzVlMGQ5MDExNjE3NmU0NGZkMTdkNzAzNDE5MzIyNzQ3Y2JiZEBlZ2kuZXU%3D/ff1b8d19ac0f7da5ec0de65469687ef6/openEO_2021-10-14Z.tif?expires=1699532026",
"proj:bbox": [
7.4805357,
53.8670476,
12.615119,
57.6290476
],
"proj:epsg": 4326,
"proj:shape": [
61615,
45144
],
"raster:bands": [
{
"name": "classification",
"statistics": {
"maximum": 254,
"mean": 254,
"minimum": 254,
"stddev": 0,
"valid_percent": 0.1222
}
},
{
"name": "confidence",
"statistics": {
"maximum": 254,
"mean": 254,
"minimum": 254,
"stddev": 0,
"valid_percent": 0.1222
}
}
],
"roles": [
"data"
],
"title": "openEO_2021-10-14Z.tif",
"type": "image/tiff; application=geotiff"
},
"openEO_2021-11-01Z.tif": {
"eo:bands": [
{
"name": "classification"
},
{
"name": "confidence"
}
],
"file:nodata": [
255
],
"file:size": 67310450,
"href": "https://openeo.vito.be/openeo/1.1/jobs/j-2310271419f040e1af6000397f82d225/results/assets/ZGZhNjc4Y2I5YWIxN2Y2NWQ0ZjAyNWUzMGZhYzVlMGQ5MDExNjE3NmU0NGZkMTdkNzAzNDE5MzIyNzQ3Y2JiZEBlZ2kuZXU%3D/d99a1d12a8ad8f4baee20f477a6a60a9/openEO_2021-11-01Z.tif?expires=1699532026",
"proj:bbox": [
7.4805357,
53.8670476,
12.615119,
57.6290476
],
"proj:epsg": 4326,
"proj:shape": [
61615,
45144
],
"raster:bands": [
{
"name": "classification",
"statistics": {
"maximum": 254,
"mean": 213.73997589491,
"minimum": 0,
"stddev": 91.77160764761,
"valid_percent": 40.9
}
},
{
"name": "confidence",
"statistics": {
"maximum": 254,
"mean": 227.9460494272,
"minimum": 1,
"stddev": 59.206365744221,
"valid_percent": 40.9
}
}
],
"roles": [
"data"
],
"title": "openEO_2021-11-01Z.tif",
"type": "image/tiff; application=geotiff"
},
"openEO_2021-11-06Z.tif": {
"eo:bands": [
{
"name": "classification"
},
{
"name": "confidence"
}
],
"file:nodata": [
255
],
"file:size": 138751594,
"href": "https://openeo.vito.be/openeo/1.1/jobs/j-2310271419f040e1af6000397f82d225/results/assets/ZGZhNjc4Y2I5YWIxN2Y2NWQ0ZjAyNWUzMGZhYzVlMGQ5MDExNjE3NmU0NGZkMTdkNzAzNDE5MzIyNzQ3Y2JiZEBlZ2kuZXU%3D/17af096d82f07bab97a8adea5fc97161/openEO_2021-11-06Z.tif?expires=1699532026",
"proj:bbox": [
7.4805357,
53.8670476,
12.615119,
57.6290476
],
"proj:epsg": 4326,
"proj:shape": [
61615,
45144
],
"raster:bands": [
{
"name": "classification",
"statistics": {
"maximum": 254,
"mean": 204.83501624158,
"minimum": 0,
"stddev": 97.851898853376,
"valid_percent": 65.92
}
},
{
"name": "confidence",
"statistics": {
"maximum": 254,
"mean": 220.89470191516,
"minimum": 1,
"stddev": 65.302942822965,
"valid_percent": 65.92
}
}
],
"roles": [
"data"
],
"title": "openEO_2021-11-06Z.tif",
"type": "image/tiff; application=geotiff"
}
},
"description": "Results for batch job j-2310271419f040e1af6000397f82d225",
"extent": {
"spatial": {
"bbox": [
[
7.480602792076421,
53.86710561799978,
12.615055888579983,
57.628974589891726
]
]
},
"temporal": {
"interval": [
[
"2020-09-12T00:00:00Z",
"2021-12-20T00:00:00Z"
]
]
}
},
"id": "j-2310271419f040e1af6000397f82d225",
"license": "proprietary",
"links": [
{
"href": "urn:eop:VITO:ESA_WORLDCEREAL_MAIZE_V1:22190_tc-maize-main_maize_2021",
"rel": "derived_from",
"title": "Derived from urn:eop:VITO:ESA_WORLDCEREAL_MAIZE_V1:22190_tc-maize-main_maize_2021",
"type": "application/json"
},
{
"href": "urn:eop:VITO:ESA_WORLDCEREAL_MAIZE_V1:37175_tc-maize-main_maize_2021",
"rel": "derived_from",
"title": "Derived from urn:eop:VITO:ESA_WORLDCEREAL_MAIZE_V1:37175_tc-maize-main_maize_2021",
"type": "application/json"
},
{
"href": "urn:eop:VITO:ESA_WORLDCEREAL_MAIZE_V1:46172_tc-maize-main_maize_2021",
"rel": "derived_from",
"title": "Derived from urn:eop:VITO:ESA_WORLDCEREAL_MAIZE_V1:46172_tc-maize-main_maize_2021",
"type": "application/json"
},
{
"href": "https://openeo.vito.be/openeo/1.1/jobs/j-2310271419f040e1af6000397f82d225/results",
"rel": "self",
"type": "application/json"
},
{
"href": "https://openeo.vito.be/openeo/1.1/jobs/j-2310271419f040e1af6000397f82d225/results/ZGZhNjc4Y2I5YWIxN2Y2NWQ0ZjAyNWUzMGZhYzVlMGQ5MDExNjE3NmU0NGZkMTdkNzAzNDE5MzIyNzQ3Y2JiZEBlZ2kuZXU%3D/f26e1c25ab773060ca5e3a33ab327eff?expires=1699532026",
"rel": "canonical",
"type": "application/json"
},
{
"href": "https://openeo.vito.be/openeo/1.1/jobs/j-2310271419f040e1af6000397f82d225/results/items/ZGZhNjc4Y2I5YWIxN2Y2NWQ0ZjAyNWUzMGZhYzVlMGQ5MDExNjE3NmU0NGZkMTdkNzAzNDE5MzIyNzQ3Y2JiZEBlZ2kuZXU%3D/ff1b8d19ac0f7da5ec0de65469687ef6/openEO_2021-10-14Z.tif?expires=1699532026",
"rel": "item",
"type": "application/geo+json"
},
{
"href": "https://openeo.vito.be/openeo/1.1/jobs/j-2310271419f040e1af6000397f82d225/results/items/ZGZhNjc4Y2I5YWIxN2Y2NWQ0ZjAyNWUzMGZhYzVlMGQ5MDExNjE3NmU0NGZkMTdkNzAzNDE5MzIyNzQ3Y2JiZEBlZ2kuZXU%3D/d99a1d12a8ad8f4baee20f477a6a60a9/openEO_2021-11-01Z.tif?expires=1699532026",
"rel": "item",
"type": "application/geo+json"
},
{
"href": "https://openeo.vito.be/openeo/1.1/jobs/j-2310271419f040e1af6000397f82d225/results/items/ZGZhNjc4Y2I5YWIxN2Y2NWQ0ZjAyNWUzMGZhYzVlMGQ5MDExNjE3NmU0NGZkMTdkNzAzNDE5MzIyNzQ3Y2JiZEBlZ2kuZXU%3D/17af096d82f07bab97a8adea5fc97161/openEO_2021-11-06Z.tif?expires=1699532026",
"rel": "item",
"type": "application/geo+json"
}
],
"openeo:status": "finished",
"providers": [
{
"description": "This data was processed on an openEO backend maintained by VITO.",
"name": "VITO",
"processing:expression": [
{
"expression": {
"loadco1": {
"arguments": {
"id": "ESA_WORLDCEREAL_MAIZE",
"spatial_extent": {
"east": 12.615055888579983,
"north": 57.628974589891726,
"south": 53.86710561799978,
"west": 7.480602792076421
},
"temporal_extent": [
"2020-09-12T00:00:00Z",
"2021-12-20T00:00:00Z"
]
},
"process_id": "load_collection"
},
"savere1": {
"arguments": {
"data": {
"from_node": "loadco1"
},
"format": "GTIFF"
},
"process_id": "save_result",
"result": true
}
},
"format": "openeo"
}
],
"processing:facility": "openEO Geotrellis backend",
"processing:software": {
"Geotrellis backend": "0.18.0a1"
},
"roles": [
"processor"
]
}
],
"stac_extensions": [
"https://stac-extensions.github.io/eo/v1.1.0/schema.json",
"https://stac-extensions.github.io/file/v2.1.0/schema.json",
"https://stac-extensions.github.io/processing/v1.1.0/schema.json",
"https://stac-extensions.github.io/projection/v1.1.0/schema.json"
],
"stac_version": "1.0.0",
"summaries": { },
"title": "test worldcereal",
"type": "Collection"
}
openEO item metadata example:
{
"bbox": [
7.480535713535801,
53.86704763287789,
12.615119046848596,
57.62904763286284
],
"collection": "j-2310271419f040e1af6000397f82d225",
"epsg": 4326,
"geometry": {
"coordinates": [
[
[
7.480535713535801,
53.86704763287789
],
[
7.480535713535801,
57.62904763286284
],
[
12.615119046848596,
57.62904763286284
],
[
12.615119046848596,
53.86704763287789
],
[
7.480535713535801,
53.86704763287789
]
]
],
"type": "Polygon"
},
"id": "openEO_2021-11-01Z.tif",
"links": [
{
"href": "https://openeo.vito.be/openeo/1.1/jobs/j-xxx/results/items/openEO_2021-11-01Z.tif",
"rel": "self",
"type": "application/geo+json"
},
{
"href": "https://openeo.vito.be/openeo/1.1/jobs/j-xxx/results",
"rel": "collection",
"type": "application/json"
}
],
"properties": {
"datetime": "2021-11-01T00:00:00Z",
"proj:bbox": [
7.4805357,
53.8670476,
12.615119,
57.6290476
],
"proj:shape": [
61615,
45144
]
},
"assets": {
"openEO_2021-11-01Z.tif": {
"eo:bands": [
{
"name": "classification"
},
{
"name": "confidence"
}
],
"file:nodata": [
255
],
"file:size": 67310450,
"href": "https://openeo.vito.be/.../openEO_2021-11-01Z.tif?expires=1699532067",
"proj:bbox": [
7.4805357,
53.8670476,
12.615119,
57.6290476
],
"proj:epsg": 4326,
"proj:shape": [
61615,
45144
],
"raster:bands": [
{
"name": "classification",
"statistics": {
"maximum": 254,
"mean": 213.73997589491,
"minimum": 0,
"stddev": 91.77160764761,
"valid_percent": 40.9
}
},
{
"name": "confidence",
"statistics": {
"maximum": 254,
"mean": 227.9460494272,
"minimum": 1,
"stddev": 59.206365744221,
"valid_percent": 40.9
}
}
],
"roles": [
"data"
],
"title": "openEO_2021-11-01Z.tif",
"type": "image/tiff; application=geotiff"
}
},
"stac_extensions": [
"https://stac-extensions.github.io/eo/v1.1.0/schema.json",
"https://stac-extensions.github.io/file/v2.1.0/schema.json",
"https://stac-extensions.github.io/projection/v1.1.0/schema.json",
"https://stac-extensions.github.io/raster/v1.1.0/schema.json"
],
"stac_version": "0.9.0",
"type": "Feature"
}