The Service Catalog (ServCat) is a simple metadata catalog. It holds capabilities and service access information on mainly OGC web services. It can be filled and searched using a REST API.
For services provided with our spatial data infrastructure an instance of the Servcat is operated at https://marine-data.de/servcat/. For testing we refer to https://marine-data.de/preview/servcat/. ServCat is used as metadata backend for viewers based on our Visual Exploration Framework (VEF). For example you can freely explore services and layers here: https://marine-data.de/?site=viewer.
The source code is accessible on Gitlab. Contact o2a-uspport@awi.de for collaboration.
The catalog holds three main types of entities:
Both Services and Layers can be searched by temporal and geographical extent. It is also possible to search in service and layer metadata. For model structure and semantics habe a look at the models section. Please see also API documentation for interface details.
Set the start_date
query parameter as UTC time string.
https://marine-data.de/servcat/rest/layers?start_date=2010-01-01T00:00:00
Optionally use offset
and limit
query parameters to scroll through search results.
Add the search
query parameter to your constraints. To search for "temperature" in the title of a Layer you can use something like this
https://marine-data.de/servcat/rest/layers?start_date=2010-01-01T00:00:00&search=title==*temperature*&offset=0&limit=10
All metadata fields can be queried in "field <operator> value
" syntax. Supported operators are listed in following table. For details see https://github.com/jirutka/rsql-parser.
Searching the catalog is open and freely available. To register your services and layers in the catalog, you need to register yourself or organization as a service provider. Simply write an email to o2a-support@awi.de and state your interest to get registered. You will get an API key which enables you to create, update or remove your registered services.
JSON structure holding all the information related to the OGC Web Service itself, and its layers (see Layer section for more details).
key | value type | comment | example |
---|---|---|---|
url | string | Domain path to OGC Web Service. | "http://maps.awi.de/services/common/marehub/wms" |
version | string | Version of the OGC Web Service. | "1.3.0" |
type | string | Type of the OGC Web Service. | "WMS" or "WFS" or "WCS" |
software | string | Name of the application used to provide the OGC Web Service. Only one of the following are supported (yet):
| "GeoServer" |
name | string | Name of OGC Web Service. | "Web Map Services at Alfred Wegener Institute" |
title | string | Title of the OGC Web Service. | "Web Map Services at Alfred Wegener Institute" |
abstract | string | Short description of the content of the OGC Web Service. | "This WMS provides different layers in the context of the MareHub project" |
capabilities | string | Full string response from GetCapabilities request of the OGC Web Services. | "<WMS_Capabilities version="1.3.0">...</WMS_Capabilities>" |
contact | JSON Object | See "Contact" for details. | See Contact section for more details |
available_crs | JSON Array | List of available coordinate reference systems. First in the array will used as default. Must be a valid EPSG Code. | ["EPSG:3857", "EPSG:4326", "EPSG:3995", "EPSG:3031"] |
date_time_start | string | Minimal temporal extent of all layers provided by the OGC Web Service in ISO 8601. | "1987-06-22 10:00:00.000Z" |
date_time_end | string | Minimal temporal extent of all layers provided by the OGC Web Service in ISO 8601. | "2020-03-17 23:58:00.000Z" |
filter_type | string | Type of possible filter syntax to use. Yet, one of the following is supported:
| "OGC" |
keywords | JSON Array | List of listed keywords helping to find this OGC Web Service. | ["WMS", "WFS", "Salinity"] |
license | string | License / AccessConstraints of the OGC Web Service. | "CC-BY 4.0" |
maxX | float | Maximum Longitude/X/East in decimal degree | 180 |
maxY | float | Maximum Latitude/Y/North in decimal degree | 90 |
minX | float | Minimum Longitude/X/East in decimal degree | -180 |
minY | float | Maximum Latitude/Y/South in decimal degree | 90 |
layers | JSON Array | List of ServCat Layer JSON Objects. See "Layer" for more details. | See Layer section for more details |
JSON structure holding all information related to one layer of one OGC Web Service.
key | value type | comment | example |
---|---|---|---|
name | string | Name of the OGC Web Service Layer. | "measurements_salinity" |
title | string | Title of the OGC Web Service Layer. | "Salinity" |
parent_name | string | Name of this Layers parent Layer. | "Web Map Services at Alfred Wegener Institute" |
abstract | string | Short description of this layers content. | "This Layer provides salinity measurements in the context of the MareHub project" |
attribute_fields | JSON Array | List of ServCat AttributeField JSON Objects. See "AttributeFields" for more details. | See AttributeField section for more details |
available_crs | JSON Array | List of available coordinate reference systems. First in the array will used as default. Must be a valid EPSG Code. | ["EPSG:3857", "EPSG:4326", "EPSG:3995", "EPSG:3031"] |
available_styles | JSON Array | List of available style names. First is used as default. | ["marehubSalinity1"] |
axis_names | JSON Array | List of axis names. Only used in "WCS". | ["longitude", "latitude"] |
date_time_start | string | Minimal temporal extent of all layers provided by the OGC Web Service in ISO 8601. | "1987-06-22 10:00:00.000Z" |
date_time_end | string | Minimal temporal extent of all layers provided by the OGC Web Service in ISO 8601. | "2020-03-17 23:58:00.000Z" |
esri_id | string | ESRI is using integer values to identify there layers. | 0 |
legend_url | string | URL of either one of following, a GetLegend request or a URL to an image, to provide a legend image to this layer. | "http://maps.awi.de/services/common/marehub/wms?request=GetLegendGraphic&format=image/png&width=20&height=20&layer=measurements_salinity" |
metadata_urls | |||
source_urls | |||
output_formats | |||
maxX | float | Maximum Longitude/X/East in decimal degree | 180 |
maxY | float | Maximum Latitude/Y/North in decimal degree | 90 |
minX | float | Minimum Longitude/X/East in decimal degree | -180 |
minY | float | Maximum Latitude/Y/South in decimal degree | 90 |
JSON structure holding one attribute column / field description.
key | value type | comment | example |
---|---|---|---|
name | string | Name of the attribute fields / columns | "event_name" |
attribute_type | string | Data type | "string" |
JSON structure holding one contact name and email
key | value type | comment | example |
---|---|---|---|
name | string | Name of Contact Person. | "Andreas Walter" |
string | E-Mail address of the contact. | "maps@awi.de" |