Estoy usando un WMS-servicio como mapa de fondo en un fichero automatizado de atlas proceso de impresión.
Por desgracia, la WMS-servicio parece haber un problema en el lado del servidor, ya que a veces no responde (ver mensaje de error: mapa de error de solicitud de ... servidor contestó bad request (ver imagen adjunta)). Por solo disparo de un repintado después de algunos segundos o minutos, el WMS se carga correctamente.
Ahora me gustaría atrapar a este comportamiento a través de python/pyqgis porque el atlas proceso de impresión se produce vacío páginas de fondo cuando el WMS es no responder. Por lo que tendría que comprobar si se produce este error concreto, y la fuerza de un triggerRepaint() hasta que el WMS-servidor responde correctamente. No sé cómo, ya que el error sólo aparece en el mensaje de registro en el panel, en la pestaña "WMS". Ya lo he intentado con try:...excepto... o por la comprobación de wmsLayer.isValid(), pero este no hizo el truco...
¿Hay alguien que en general sabe una manera de atrapar a este particular de error que aparecen en el registro del panel de mensajes?
Por desgracia, la WMS-servicio autorizado, así Im miedo de que el problema podría no ser reproducable...Pero espero que haya alguien por ahí que sabe una manera de detectar los errores del registro en el panel de mensajes.
Estoy usando QGIS 2.18.2
Mi pyqgis intentos de detectar el error han sido:
from qgis.core import *
wmsLayer_name="wms-dtk50_wgs"
url_with_params ='url=http://sg.geodatenzentrum.de/wms_dtk50?&crs=EPSG:25832&featureCount=10&format=image/png&layers=DTK50&styles='
try:
wmsLayer = QgsRasterLayer(url_with_params, wmsLayer_name,'wms')
QgsMapLayerRegistry.instance().addMapLayer(wmsLayer)
wmsLayer.triggerRepaint()
except Exception as e:
print e
#never raises any exception!
if wmsLayer.isValid():
print "valid wms"
else:
print "invalid wms"
#always prints "valid wms", meaning the layer is obviously valid but with an error response
No se pudo encontrar soluciones en la web, sin embargo, estaría agradecido por cualquier consejo!