Skip to content

Commit

Permalink
update OACov content models (#809) (#813)
Browse files Browse the repository at this point in the history
  • Loading branch information
tomkralidis committed Nov 11, 2021
1 parent 8740b23 commit 91abdb9
Show file tree
Hide file tree
Showing 3 changed files with 27 additions and 23 deletions.
22 changes: 12 additions & 10 deletions pygeoapi/provider/rasterio_.py
Expand Up @@ -72,40 +72,40 @@ def get_coverage_domainset(self, *args, **kwargs):
"""

domainset = {
'type': 'DomainSetType',
'type': 'DomainSet',
'generalGrid': {
'type': 'GeneralGridCoverageType',
'type': 'GeneralGridCoverage',
'srsName': self._coverage_properties['bbox_crs'],
'axisLabels': [
self._coverage_properties['x_axis_label'],
self._coverage_properties['y_axis_label']
],
'axis': [{
'type': 'RegularAxisType',
'type': 'RegularAxis',
'axisLabel': self._coverage_properties['x_axis_label'],
'lowerBound': self._coverage_properties['bbox'][0],
'upperBound': self._coverage_properties['bbox'][2],
'uomLabel': self._coverage_properties['bbox_units'],
'resolution': self._coverage_properties['resx']
}, {
'type': 'RegularAxisType',
'type': 'RegularAxis',
'axisLabel': self._coverage_properties['y_axis_label'],
'lowerBound': self._coverage_properties['bbox'][1],
'upperBound': self._coverage_properties['bbox'][3],
'uomLabel': self._coverage_properties['bbox_units'],
'resolution': self._coverage_properties['resy']
}],
'gridLimits': {
'type': 'GridLimitsType',
'type': 'GridLimits',
'srsName': 'http://www.opengis.net/def/crs/OGC/0/Index2D',
'axisLabels': ['i', 'j'],
'axis': [{
'type': 'IndexAxisType',
'type': 'IndexAxis',
'axisLabel': 'i',
'lowerBound': 0,
'upperBound': self._coverage_properties['width']
}, {
'type': 'IndexAxisType',
'type': 'IndexAxis',
'axisLabel': 'j',
'lowerBound': 0,
'upperBound': self._coverage_properties['height']
Expand All @@ -126,7 +126,7 @@ def get_coverage_rangetype(self, *args, **kwargs):
"""

rangetype = {
'type': 'DataRecordType',
'type': 'DataRecord',
'field': []
}

Expand All @@ -143,9 +143,11 @@ def get_coverage_rangetype(self, *args, **kwargs):

rangetype['field'].append({
'id': i,
'type': 'QuantityType',
'type': 'Quantity',
'name': name,
'definition': dtype,
'encodingInfo': {
'dataType': 'http://www.opengis.net/def/dataType/OGC/0/{}'.format(dtype) # noqa
},
'nodata': nodataval,
'uom': {
'id': 'http://www.opengis.net/def/uom/UCUM/{}'.format(
Expand Down
24 changes: 13 additions & 11 deletions pygeoapi/provider/xarray_.py
Expand Up @@ -83,32 +83,32 @@ def get_coverage_domainset(self, *args, **kwargs):

c_props = self._coverage_properties
domainset = {
'type': 'DomainSetType',
'type': 'DomainSet',
'generalGrid': {
'type': 'GeneralGridCoverageType',
'type': 'GeneralGridCoverage',
'srsName': c_props['bbox_crs'],
'axisLabels': [
c_props['x_axis_label'],
c_props['y_axis_label'],
c_props['time_axis_label']
],
'axis': [{
'type': 'RegularAxisType',
'type': 'RegularAxis',
'axisLabel': c_props['x_axis_label'],
'lowerBound': c_props['bbox'][0],
'upperBound': c_props['bbox'][2],
'uomLabel': c_props['bbox_units'],
'resolution': c_props['resx']
}, {
'type': 'RegularAxisType',
'type': 'RegularAxis',
'axisLabel': c_props['y_axis_label'],
'lowerBound': c_props['bbox'][1],
'upperBound': c_props['bbox'][3],
'uomLabel': c_props['bbox_units'],
'resolution': c_props['resy']
},
{
'type': 'RegularAxisType',
'type': 'RegularAxis',
'axisLabel': c_props['time_axis_label'],
'lowerBound': c_props['time_range'][0],
'upperBound': c_props['time_range'][1],
Expand All @@ -117,16 +117,16 @@ def get_coverage_domainset(self, *args, **kwargs):
}
],
'gridLimits': {
'type': 'GridLimitsType',
'type': 'GridLimits',
'srsName': 'http://www.opengis.net/def/crs/OGC/0/Index2D',
'axisLabels': ['i', 'j'],
'axis': [{
'type': 'IndexAxisType',
'type': 'IndexAxis',
'axisLabel': 'i',
'lowerBound': 0,
'upperBound': c_props['width']
}, {
'type': 'IndexAxisType',
'type': 'IndexAxis',
'axisLabel': 'j',
'lowerBound': 0,
'upperBound': c_props['height']
Expand All @@ -148,7 +148,7 @@ def get_coverage_rangetype(self, *args, **kwargs):
"""

rangetype = {
'type': 'DataRecordType',
'type': 'DataRecord',
'field': []
}

Expand All @@ -164,9 +164,11 @@ def get_coverage_rangetype(self, *args, **kwargs):

rangetype['field'].append({
'id': name,
'type': 'QuantityType',
'type': 'Quantity',
'name': var.attrs.get('long_name') or desc,
'definition': str(var.dtype),
'encodingInfo': {
'dataType': 'http://www.opengis.net/def/dataType/OGC/0/{}'.format(str(var.dtype)) # noqa
},
'nodata': 'null',
'uom': {
'id': 'http://www.opengis.net/def/uom/UCUM/{}'.format(
Expand Down
4 changes: 2 additions & 2 deletions tests/test_api.py
Expand Up @@ -957,7 +957,7 @@ def test_get_coverage_domainset(config, api_):

domainset = json.loads(response)

assert domainset['type'] == 'DomainSetType'
assert domainset['type'] == 'DomainSet'
assert domainset['generalGrid']['axisLabels'] == ['Long', 'Lat']
assert domainset['generalGrid']['gridLimits']['axisLabels'] == ['i', 'j']
assert domainset['generalGrid']['gridLimits']['axis'][0]['upperBound'] == 2400 # noqa
Expand All @@ -976,7 +976,7 @@ def test_get_collection_coverage_rangetype(config, api_):

rangetype = json.loads(response)

assert rangetype['type'] == 'DataRecordType'
assert rangetype['type'] == 'DataRecord'
assert len(rangetype['field']) == 1
assert rangetype['field'][0]['id'] == 1
assert rangetype['field'][0]['name'] == 'Temperature [C]'
Expand Down

0 comments on commit 91abdb9

Please sign in to comment.