Un premier petit exemple avec le module http://pypi.python.org/pypi/OWSLib/0.3.1 , utilisé, entre autres, par Quantum Gis. Il permet de récupérer toutes les caractéristiques et les images d'un serveur WMS.
Me basant sur les exemples donnés, je vais interroger le service cartographique de geosignal (voir http://geotribu.net/node/59)
python
>>> 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()
- Ajouter un commentaire
- 6129 lectures
En pratique le module est un parseur du fichier xml renvoyé par la requête :
http://www.geosignal.org/cgi-bin/wmsmap?service=WMS&version=1.1.1&request=GetCapabilities
mais c'est bien plus facile de le déchiffrer...., avant d'utiliser openlayers, par exemple.
Site officiel : python
Commentaires
Très bon article conne
Très bon article conne d’hab
Merci pour vos articles.
Bonjour Je trouve cet article
Bonjour
Je trouve cet article très riche des informations très utiles et pratiques.
Bravo continuez
Merci pour cet article, comme
Merci pour cet article, comme d’habitude
Poster un nouveau commentaire