>>> from owslib.wms import WebMapService #(import du module)
>>> wms = WebMapService('http://www.geosignal.org/cgi-bin/wmsmap?', version='1.1.1') #connexion au serveur
>>> wms.identification.title #titre du serveur
'Serveur Geosignal'
>>> list(wms.contents) #liste des cartes servies
['RASTER25k', 'RASTER500k', 'Communes', 'Arrondissements', 'Regions', 'RASTER250k', 'RASTER1000k', 'RASTER5k', 'Autoroutes', 'RASTER100k', 'Cantons', 'Monde', 'Departementales', 'RASTER4000k', 'CommunesXY', 'RASTER50k', 'Serveur Geosignal', 'Voirie', 'Autres', 'Secondaires', 'Nationales', 'Departements']
>>> wms['CommunesXY'].boundingBox #emprise d'une couche
(51000.0, 1622600.0, 1194820.0, 2675140.0, 'EPSG:27582')
>>> wms['CommunesXY'].boundingBoxWGS84 #emprise de la couche en WGS84
(-5.4478900000000001, 41.369100000000003, 10.767300000000001, 51.069000000000003)
>>> [op.name for op in wms.operations] #requêtes possibles
['GetCapabilities', 'GetMap', 'GetFeatureInfo', 'DescribeLayer', 'GetLegendGraphic']
>>> wms.getOperationByName('GetMap').methods #comment interroger le serveur
{'Post': {'url': 'http://www.geosignal.org/cgi-bin/wmsmap?'}, 'Get': {'url': 'http://www.geosignal.org/cgi-bin/wmsmap?'}}
>>> wms.getOperationByName('GetMap').formatOptions #formats possibles des images récupérées
['image/png', 'image/gif', 'image/png; mode=24bit', 'image/jpeg', 'image/wbmp', 'image/tiff']
>>> wms['CommunesXY'].styles #styles éventuels
{} #il n'y en a pas
#récupération de la totalité de l'image png de CommunesXY (chaque paramètre est modifiable)
>>> img = wms.getmap( layers=['CommunesXY'],
... srs='EPSG:27582',
... bbox=(-51000.0, 1622600.0, 1194820.0, 2675140.0),
... size=(400, 300),
... format='image/png',
... transparent=True)
#écriture du fichier sur le disque
>>> communes = open('communesxy.png', 'wb')
>>> communes.write(img.read())
>>> communes.close()