Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

wmsimage not supporting wms version #602

Open
carlosloslas opened this issue May 15, 2024 · 3 comments
Open

wmsimage not supporting wms version #602

carlosloslas opened this issue May 15, 2024 · 3 comments

Comments

@carlosloslas
Copy link

Been using OWSLib to extract pictures from a WMS server version 1.3.0 and was looking to visualise them with Basemap's wmsimage.

I am seeing in the error traces that when the WebMapService instance is initialised is missing the version number is missing, which results in an initialisation of WMS version 1.1.1 , which causes the errors.

image

I looked at the source code and the problem is line 4455 of basemap/init.py

The wms is initialised just with the server url wms = WebMapService(server) and in reality it should have the version number included there wms = WebMapService(server, version=kwargs['version'])

@molinav
Copy link
Member

molinav commented May 15, 2024

Hi, @carlosloslas! Thanks for the feedback. Is the patch wms = WebMapService(server, version=kwargs['version']) working as expected in your basemap installation? If so, it should be easy to correct in the repo. For the library patch, I would replace kwargs['version'] with something like kwargs.get('version', None) or an appropriate default version value, since we also need to consider the case in which no version is provided, as before.

@Kurea
Copy link

Kurea commented May 15, 2024

Hi,
the bbox arg might be impacted too. I'm working on that too. I'll let you know if I manage to make it work.
My bad, I needed another coffee.

kwargs.get('version', None) won't work as it will pass None instead of a valid version value (which is mandatory).
I suggest to manage all constructors parameters for WebMapService like this:

        wmsInitKeys = ['version', 'xml', 'username', 'password','parse_remote_metadata', 'timeout', 'headers', 'auth']
        wms_options = {k:kwargs[v] for k in wmsInitKeys if k in kwargs}
        kwargs = {k:kwargs[v] for k in kwargs if k not in wmsInitKeys}
        wms = WebMapService(server, **wms_options)

@carlosloslas
Copy link
Author

Hi @molinav, thanks for the reply. I'm not running a dev version of the package, so I can't say for sure. I've been working with OWSLib all day and I'm very confident it will.

For a simple patch kwargs.get('version', '1.1.1') would be better since this is the default setting in the OWSLib. As you can see from my error trace, the wms111 refers to the version 1.1.1.

I would happily do some testing, but I've never contributed to a open source package and would need some guidance.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants