geopython / geopython/GeoHealthCheck

Testing and issues for new WMTS Probes

Open
#420 0 comments 0 reactions 0 assignees View on GitHub
bug
Dominant language
Python
Stars
92
Forks
75
PR merge metrics
No merged PRs in 30d

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

* URL https://service.pdok.nl/brt/achtergrondkaart/wmts/v2_0

No problems detected. Tried several variants for both Probes.

## IGN Geoportail (French GDI)
* URL https://wxs.ign.fr/choisirgeoportail/geoportail/wmts

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

* URL https://storitve.eprostor.gov.si/ows-pub-wmts/service/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

* URL https://www.basemap.at/wmts/1.0.0/WMTSCapabilities.xml

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

* URL https://www.openbasiskaart.nl/mapcache/wmts

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 #406

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.