Description
Describe the bug
Via issue #379 and PR #406 some new custom WMTS Probes were added.
This issue is opened to discuss some problems when testing these Probes with various WMTSs.
NB: problems may well be related to the WMTS instances themselves. Sometimes it is hard to assess.
Tested several WMTSs using the WMTS GetTile for all layers.
Probe.
Direct access to the WMTSs in the GHC Demo site:
https://demo.geohealthcheck.org/resources?resource_type=OGC%3AWMTS
Below results and and log output from GHC demo Web app for the various WMTSs.
General Findings
- even if the 'All Layers' Probe was chosen, in the Probe UI still individual layers could be chosen
- guess
sample
means that the Probe makes a random choice, like a random Layer/Tile? - Capabilities Probe worked for each WMTS
PDOK BRT
No problems detected. Tried several variants for both Probes.
IGN Geoportail (French GDI)
Strange errors related to WMTS not returning image formats but looks like Vector Tiles application/x-protobuf
. So maybe not an issue. (?)
2022-02-08 15:59:09,645 - GeoHealthCheck.probe - INFO - Requesting: GET url=https://wxs.ign.fr/choisirgeoportail/geoportail/wmts?SERVICE=WMTS&VERSION=1.0.0&REQUEST=GetTile&LAYER=PLAN.IGN&TILEMATRIXSET=PM&TILEMATRIX=13&TILEROW=2909&TILECOL=4133&FORMAT=application/x-protobuf&EXCEPTIONS=application/vnd.ogc.se_xml&STYLE=default
2022-02-08 15:59:09,758 - GeoHealthCheck.probe - INFO - response: status=200
2022-02-08 15:59:09,758 - GeoHealthCheck.probe - INFO - Result: success=False msg=HTTP Error status=404 response_time=1.342711
Slovenian WMTS
Strange problem getting Bounding box when adding the Probe. Log output below.
2022-02-08 16:00:03,685 - init - ERROR - Exception on /probe/GeoHealthCheck.plugins.probe.wmts.WmtsGetTileAll/380/edit_form [GET]
Traceback (most recent call last):
File "/venv/lib/python3.7/site-packages/flask/app.py", line 2446, in wsgi_app
response = self.full_dispatch_request()
File "/venv/lib/python3.7/site-packages/flask/app.py", line 1951, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/venv/lib/python3.7/site-packages/flask/app.py", line 1820, in handle_user_exception
reraise(exc_type, exc_value, tb)
File "/venv/lib/python3.7/site-packages/flask/_compat.py", line 39, in reraise
raise value
File "/venv/lib/python3.7/site-packages/flask/app.py", line 1949, in full_dispatch_request
rv = self.dispatch_request()
File "/venv/lib/python3.7/site-packages/flask/app.py", line 1935, in dispatch_request
return self.view_functions[rule.endpoint](**req.view_args)
File "/venv/lib/python3.7/site-packages/flask_login/utils.py", line 261, in decorated_view
return func(*args, **kwargs)
File "/GeoHealthCheck/GeoHealthCheck/app.py", line 820, in get_probe_edit_form
probe_obj.expand_params(resource)
File "/GeoHealthCheck/GeoHealthCheck/plugins/probe/wmts.py", line 453, in expand_params
raise err
File "/GeoHealthCheck/GeoHealthCheck/plugins/probe/wmts.py", line 445, in expand_params
bbox84 = layer_object.boundingBoxWGS84
AttributeError: 'ContentMetadata' object has no attribute 'boundingBoxWGS84'
2022-02-08 16:01:11,345 - GeoHealthCheck.probe - INFO - Requesting: GET url=https://storitve.eprostor.gov.si/ows-pub-wmts/service/wmts
Austrian Basemap
Reported as REST-only (?), while I think KVP is reported as well. Logs.
Mostly not-found errors e.g. on https://basemap.at/wmts/bmapoverlay/google3857/11/1098/714.png
2022-02-08 16:01:50,600 - GeoHealthCheck.app - INFO - adding Probe class=GeoHealthCheck.plugins.probe.wmts.WmtsGetTileAll parms={'probe_class': 'GeoHealthCheck.plugins.probe.wmts.WmtsGetTileAll', 'parameters': {'layers': ['geolandbasemap'], 'tilematrixset': 'sample', 'tilematrix': 'sample', 'latitude_4326': '47.698321', 'longitude_4326': '13.1411895', 'format': 'sample', 'exceptions': 'application/vnd.ogc.se_xml', 'style': 'default', 'kvprest': 'REST'}, 'checks': [{'check_class': 'GeoHealthCheck.plugins.check.checks.HttpStatusNoError', 'parameters': {}}, {'check_class': 'GeoHealthCheck.plugins.check.checks.NotContainsOwsException', 'parameters': {'strings': ['ExceptionReport>', 'ServiceException>']}}, {'check_class': 'GeoHealthCheck.plugins.check.checks.HttpHasImageContentType', 'parameters': {}}]}
2022-02-08 16:01:50,624 - GeoHealthCheck.geocoder - INFO - Requesting: url=http://ip-api.com/json/www.basemap.at
2022-02-08 16:01:50,679 - GeoHealthCheck.geocoder - INFO - response: status=200
2022-02-08 16:01:52,325 - GeoHealthCheck.probe - INFO - Requesting: GET url=https://www.basemap.at/wmts/geolandbasemap/google3857/4/8/5.png
2022-02-08 16:01:52,412 - GeoHealthCheck.probe - INFO - Check: fun=GeoHealthCheck.plugins.check.checks.HttpStatusNoError result=False
2022-02-08 16:01:52,413 - GeoHealthCheck.probe - INFO - Check: fun=GeoHealthCheck.plugins.check.checks.NotContainsOwsException result=True
2022-02-08 16:01:52,413 - GeoHealthCheck.probe - INFO - Check: fun=GeoHealthCheck.plugins.check.checks.HttpHasImageContentType result=False
2022-02-08 16:01:52,465 - GeoHealthCheck.probe - INFO - Requesting: GET url=https://www.basemap.at/wmts/bmapoverlay/google3857/11/1098/714.png
2022-02-08 16:01:52,578 - GeoHealthCheck.probe - INFO - Requesting: GET url=https://www.basemap.at/wmts/bmapgrau/google3857/18/140641/91452.png
2022-02-08 16:01:52,681 - GeoHealthCheck.probe - INFO - Requesting: GET url=https://www.basemap.at/wmts/bmaphidpi/google3857/5/17/11.jpeg
2022-02-08 16:01:52,770 - GeoHealthCheck.probe - INFO - Requesting: GET url=https://www.basemap.at/wmts/bmaporthofoto30cm/google3857/18/140641/91452.jpeg
2022-02-08 16:01:52,876 - GeoHealthCheck.probe - INFO - Requesting: GET url=https://www.basemap.at/wmts/bmapgelaende/google3857_0-17/2/2/1.jpeg
2022-02-08 16:01:52,990 - GeoHealthCheck.probe - INFO - Requesting: GET url=https://www.basemap.at/wmts/bmapoberflaeche/google3857_0-17/3/4/2.jpeg
2022-02-08 16:01:53,050 - GeoHealthCheck.probe - INFO - Result: success=False msg=HTTP Error status=404 response_time=0.776604
OpenGeoGroep - OpenBasisKaart
When adding the Probe (like Slovenian example) this error in UI: Error getting Probe form for GeoHealthCheck.plugins.probe.wmts.WmtsGetTileAll
2022-02-08 16:32:13,553 - views - WARNING - Cannot expand plugin vars for GeoHealthCheck.plugins.probe.wmts.WmtsGetTile err=AttributeError("'ContentMetadata' object has no attribute 'boundingBoxWGS84'")
2022-02-08 16:32:13,585 - views - WARNING - Cannot expand plugin vars for GeoHealthCheck.plugins.probe.wmts.WmtsGetTileAll err=AttributeError("'ContentMetadata' object has no attribute 'boundingBoxWGS84'")
2022-02-08 16:32:46,891 - init - ERROR - Exception on /probe/GeoHealthCheck.plugins.probe.wmts.WmtsGetTileAll/424/edit_form [GET]
Traceback (most recent call last):
File "/venv/lib/python3.7/site-packages/flask/app.py", line 2446, in wsgi_app
response = self.full_dispatch_request()
File "/venv/lib/python3.7/site-packages/flask/app.py", line 1951, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/venv/lib/python3.7/site-packages/flask/app.py", line 1820, in handle_user_exception
reraise(exc_type, exc_value, tb)
File "/venv/lib/python3.7/site-packages/flask/_compat.py", line 39, in reraise
raise value
File "/venv/lib/python3.7/site-packages/flask/app.py", line 1949, in full_dispatch_request
rv = self.dispatch_request()
File "/venv/lib/python3.7/site-packages/flask/app.py", line 1935, in dispatch_request
return self.view_functions[rule.endpoint](**req.view_args)
File "/venv/lib/python3.7/site-packages/flask_login/utils.py", line 261, in decorated_view
return func(*args, **kwargs)
File "/GeoHealthCheck/GeoHealthCheck/app.py", line 820, in get_probe_edit_form
probe_obj.expand_params(resource)
File "/GeoHealthCheck/GeoHealthCheck/plugins/probe/wmts.py", line 453, in expand_params
raise err
File "/GeoHealthCheck/GeoHealthCheck/plugins/probe/wmts.py", line 445, in expand_params
bbox84 = layer_object.boundingBoxWGS84
AttributeError: 'ContentMetadata' object has no attribute 'boundingBoxWGS84'
Context
- in Docker on Demo site
- GeoHealthCheck Version latest as on feb 8, 2022 after merging Wmts Probe #406