.. _`gdal.gdal.formats.wms`:
========================
WMS -- Web Map Services
========================
Accéder à plusieurs différents types de service d'image est possible en
utilisant le format WMS dans GDAL. Les services sont accédé en créant un fichier
XML de description de service local - il y a des exemples ci-dessous pour chacun
des services d'image gérée.
+-----------------------------------------------+-------------------------------------------------------------------------------+
+ + +
+===============================================+===============================================================================+
+ + Définie quel mini-pilote utiliser, géré actuellement : WMS, WorldWind, +
+ + TileService, TMS, TiledWMS or VirtualEarth. (nécessaire) +
+-----------------------------------------------+-------------------------------------------------------------------------------+
+ 1.1.1 + Version du WMS. (optionnel, par défaut à 1.1.1) +
+-----------------------------------------------+-------------------------------------------------------------------------------+
+ http://onearth.jpl.nasa.gov/ + URL du serveur WMS (nécessaire) +
+ wms.cgi? + +
+-----------------------------------------------+-------------------------------------------------------------------------------+
+ EPSG:4326 + Projection de l'image (optionnel, par défaut à EPSG:4326, WMS version 1.1.1 +
+ + ou inférieur seulement) +
+-----------------------------------------------+-------------------------------------------------------------------------------+
+ CRS:83 + Projection de l'image (optionnel, défaut à EPSG:4326, WMS version 1.3.0 ou +
+ + supérieur seulement) +
+-----------------------------------------------+-------------------------------------------------------------------------------+
+ image/jpeg + Format dans lequel on doit demander les données. Les formats avec des +
+ + palettes comme image/gif seront converti en RVB. (optionnel, défaut à +
+ + image/jpeg) +
+-----------------------------------------------+-------------------------------------------------------------------------------+
+ FALSE + Définie à TRUE pour inclure "transparent=TRUE" dans la requête GetMap du WMS +
+ + (optionnel FALSE par défaut). Le format de requête et BandsCount nécessite la +
+ + gestion de l'alpha. +
+-----------------------------------------------+-------------------------------------------------------------------------------+
+ modis,global_mosaic + Une URL encodée, une liste de couches séparés par des virgules (nécessaire +
+ + sauf pour TiledWMS). +
+-----------------------------------------------+-------------------------------------------------------------------------------+
+ Clementine + Liste de couches séparée par une virgule (nécessaire pour TiledWMS). +
+-----------------------------------------------+-------------------------------------------------------------------------------+
+ + Liste de styles séparés par des virgules. (optionnel) +
+-----------------------------------------------+-------------------------------------------------------------------------------+
+ xyXY + Ordonne les coordonnées de la bbox arbitrairement. Peut être nécessaire pour +
+ + les serveurs à la version 1.3. (optionnel) x – coordonnée X basse, y – +
+ + coordonnée Y basse, X - coordonnée X haute, Y - coordonnée Y haute +
+-----------------------------------------------+-------------------------------------------------------------------------------+
+ + +
+-----------------------------------------------+-------------------------------------------------------------------------------+
+ + Définie la taille et l'étendue des données. (nécessaire sauf pour TiledWMS et +
+ + VirtualEarth) +
+-----------------------------------------------+-------------------------------------------------------------------------------+
+ -180.0 + X (longitude) coordonnée du coin haut-gauche. (optionnel, défaut à -180.0, +
+ + sauf pour VirtualEarth) +
+-----------------------------------------------+-------------------------------------------------------------------------------+
+ 90.0 + Y (latitude) coordonnée du coin haut -gauche. (optionnel, défaut à 90.0, +
+ + sauf pour VirtualEarth) +
+-----------------------------------------------+-------------------------------------------------------------------------------+
+ 180.0 + X (longitude) coordonnée du coin bas-droit. (optionnel, défaut à 180.0, +
+ + sauf pour VirtualEarth) +
+-----------------------------------------------+-------------------------------------------------------------------------------+
+ -90.0 + Y (latitude) coordonnée du coin bas-droit (optionnel, défaut à -90.0, +
+ + sauf pour VirtualEarth) +
+-----------------------------------------------+-------------------------------------------------------------------------------+
+ 2666666 + Taille de l'image en pixels. +
+-----------------------------------------------+-------------------------------------------------------------------------------+
+ 1333333 + Taille de l'image en pixels. +
+-----------------------------------------------+-------------------------------------------------------------------------------+
+ 0 + Ajouter aux tuiles une valeur X à plus haute résolution. (ignoré pour WMS, +
+ + source d'image tuilée seulement, optionnel, défaut à 0) +
+-----------------------------------------------+-------------------------------------------------------------------------------+
+ 0 + Ajouter aux tuiles une valeur Y à plus haute résolution. (ignoré pour WMS, +
+ + source d'image tuilée seulement, optionnel, défaut à 0) +
+-----------------------------------------------+-------------------------------------------------------------------------------+
+ 0 + Niveau des tuiles à la plus haute résolution. (ignoré pour WMS, source +
+ + d'image tuilée seulement, optionnel, défaut à 0) +
+-----------------------------------------------+-------------------------------------------------------------------------------+
+ 0 + Peut être utilisé pour définir la taille de l'image, SizeX = TileCountX * +
+ + BlockSizeX * 2TileLevel. (source d'image tuilée seulement, optionnel, défaut +
+ + à 0) +
+-----------------------------------------------+-------------------------------------------------------------------------------+
+ 0 + Peut être utilisé pour définir la taille de l'image, SizeY = TileCountY * +
+ + BlockSizeY * 2TileLevel (source d'image tuilée seulement, optionnel, défaut +
+ + à 0). +
+-----------------------------------------------+-------------------------------------------------------------------------------+
+ top + Peut être utilisé pour définir la position de l'origine Y en fonction de la +
+ + grille de la tuile. Les valeurs possibles sont 'top', 'bottom', et 'default', +
+ + pour lesquels le comportement est spécifique au mini-pilote (seulement le mini+
+ + -pilote TMS, optionnel, 'bottom' par défaut pour TMS). +
+-----------------------------------------------+-------------------------------------------------------------------------------+
+ + +
+-----------------------------------------------+-------------------------------------------------------------------------------+
+ EPSG:4326 + Projection de l'image (optionnel, défaut à la valeur rapporté par le mini- +
+ + pilote ou EPSG:4326) +
+-----------------------------------------------+-------------------------------------------------------------------------------+
+ 3 + Nombre de bandes/canaux, 1 pour des données en nuance de gris, 3 pour RVB. +
+ + (optionnel, défaut à 3) +
+-----------------------------------------------+-------------------------------------------------------------------------------+
+ Byte + Type de données de la bande, parmi Byte, Int16, UInt16, Int32, UInt32, +
+ + FLoat32, FLoat64, etc. (optionel, Byte par défaut). +
+-----------------------------------------------+-------------------------------------------------------------------------------+
+ 1024 + Taille du bloc en pixels. (optionnel, défaut à 1024, sauf pour VirtualEarth) +
+-----------------------------------------------+-------------------------------------------------------------------------------+
+ 1024 + Taille du bloc en pixels. (optionnel, défaut à 1024, sauf pour VirtualEarth) +
+-----------------------------------------------+-------------------------------------------------------------------------------+
+ 10 + compte des couches à résolution réduite chacune ayant des résolutions deux +
+ + fois plus petites. (optionnel, la valeur par défaut est calculé lors du +
+ + lancement) +
+-----------------------------------------------+-------------------------------------------------------------------------------+
+ + Active le cache disque local. Permet les opérations offline. (optionnel, par +
+ + défaut sans cache) +
+-----------------------------------------------+-------------------------------------------------------------------------------+
+ ./gdalwmscache + Endroit où stocker les fichiers du cache. Il est sain d'utiliser le même +
+ + chemin de cache pour différentes sources de données. (optionnel, défaut à +
+ + ./gdalwmscache si l'option de configuration *GDAL_DEFAULT_WMS_CACHE_PATH* +
+ + n'est pas défini +
+-----------------------------------------------+-------------------------------------------------------------------------------+
+ 2 + Nombre de répertoire de couches. 2 résultera à des fichiers écrit sous la +
+ + forme cache_path/A/B/ABCDEF... (optionnel, défauts à 2) +
+-----------------------------------------------+-------------------------------------------------------------------------------+
+ .jpg + Ajout aux fichiers de cache. (optionnel, défaut à none) +
+-----------------------------------------------+-------------------------------------------------------------------------------+
+ + +
+-----------------------------------------------+-------------------------------------------------------------------------------+
+ 2 + nombre maximal de connections simultanée. (optionnel, 2 par défaut) +
+-----------------------------------------------+-------------------------------------------------------------------------------+
+ 300 + timeout de la connection en secondes (optionnel, 300 par défauts). +
+-----------------------------------------------+-------------------------------------------------------------------------------+
+ true + Ne télécharge aucune nouvelles images, utilise seulement celle du cache. +
+ + Utile seulement quand le cache est activé (optionnel, défaut à *false*). +
+-----------------------------------------------+-------------------------------------------------------------------------------+
+ true + Active l'appel à l'API AdviseRead – télécharge les images dans le cache +
+ + (optionnel, défaut à *false*). +
+-----------------------------------------------+-------------------------------------------------------------------------------+
+ true + Ouvre chaque image et fait des opérations de vérifications basiques avant +
+ + d'écrire dans le cache. La désactivation peut avoir des cycles de CPU si le +
+ + serveur est reconnus comme toujours renvoyer des images correctes. (optionnel,+
+ + défaut à *true*) +
+-----------------------------------------------+-------------------------------------------------------------------------------+
+ true + ouvre chaque image téléchargée et réalise des vérifications basiques avant +
+ + l'écriture dans le cache. Désactivé, cela peut sauver des cycles CPU si le +
+ + serveur est reconnu comme retournant toujours des images correctes (optionnel,+
+ + *true* par défaut). +
+-----------------------------------------------+-------------------------------------------------------------------------------+
+ false + Est ce que la requête, qui autrement serait partiellement en dehors de la +
+ + fenêtre de données définie, être découpé résultant en une image plus petite +
+ + que la taille du bloc demandée (optionnel, *true* par défaut). +
+-----------------------------------------------+-------------------------------------------------------------------------------+
+ GDAL WMS driver + Chaîne User-agent HTTP. Certains serveurs peuvent nécessiter un user-agent +
+ (http://www.gdal.org/frmt_wms.html) + connus tel que "Mozilla/5.0" (optionnel, "GDAL WMS driver +
+ + (http://www.gdal.org/frmt_wms.html)" par défaut). Ajouté à GDAL 1.8.0 +
+-----------------------------------------------+-------------------------------------------------------------------------------+
+ user:password + utilisateur et mot de passe pour l'authentification HTTP (optionnel). Ajouté +
+ + GDAL 1.10.0 +
+-----------------------------------------------+-------------------------------------------------------------------------------+
+ true + Saute la vérification du certificat SSL. Peut être nécessaire si le serveur +
+ + utilise un certificat auto-signé (optionnel, défaut à false). Ajouté à GDAL +
+ + 1.8.0 +
+-----------------------------------------------+-------------------------------------------------------------------------------+
+ http://example.foo/ + Chaîne de *Referer* HTTP. Certains serveurs peuvent le nécessiter (optionnel).+
+ + Ajouter à GDAL 1.9.0 +
+-----------------------------------------------+-------------------------------------------------------------------------------+
+ 204,404 + Liste de codes de réponse HTTP séparés par des virgules qui seront +
+ + interprété comme des images remplies de 0 au lieu d'annuler la requête. Ajout +
+ + dans GDAL 1.9.0 (optionnel, 204 par édfaut). +
+-----------------------------------------------+-------------------------------------------------------------------------------+
+ true + S'il faut traiter une Exception de service retourné par le serveur comme une +
+ + image remplie de 0 au lieu d'annuler la requête. Ajouté dans GDAL 1.9.0 +
+ + (optionnel, faux pas défaut). +
+-----------------------------------------------+-------------------------------------------------------------------------------+
+ + +
+-----------------------------------------------+-------------------------------------------------------------------------------+
Minipilote
===========
Le pilote WMS de GDAL gère plusieurs 'minipilote' interne, qui permettent des accès
à différents services de cartographiques web. Chacun de ces services peuvent gérer
un ensemble différent d'options dans le bloc *Service*.
WMS
****
Communications avec un serveur WMS OGS. Possède la gestion pour les requêtes
tuilées et non tuilées.
.. versionadded:: 1.10 Les couches WMS peuvent être interrogées (via un requête
GetFeatureInfo) avec la commande gdallocationinfo ou avec avec la méthode
*GetMetadataItem("Pixel_iCol_iLine", "LocationInfo")* sur un objet bande.
::
gdallocationinfo "WMS:http://demo.opengeo.org/geoserver/gwc/service/wms?SERVICE=WMS&VERSION=1.1.1&
REQUEST=GetMap&LAYERS=og%3Abugsites&SRS=EPSG:900913&
BBOX=-1.15841845090625E7,5479006.186718751,-1.1505912992109375E7,5557277.703671876&
FORMAT=image/png&TILESIZE=256&OVERVIEWCOUNT=25&MINRESOLUTION=0.0046653459640220&TILED=true"
-geoloc -11547071.455 5528616 -xml -b 1
Renvoie :
::
Report pixel="248595" line="191985">
601228,4917635 601228,4917635
601228,4917635 601228,4917635
86
Beetle site
601228,4917635
255
TileService
************
Service pour gérer la communication avec un `service `_
WorldWind. L'accès est toujours basé sur les tuiles.
WorldWind
*********
Accès aux services web tuilé de WorldWind. L'accès est toujours basé sur les tuiles.
TMS (GDAL 1.7.0 et sup.)
************************
Le mini-pilote TMS est structuré d'abord pour gérer l'utilisation des
`spécifications TMS `_.
Ce service gère seulement l'accès aux tuiles.
Parce que le TMS est similaire à beaucoup d'autres faveurs de services 'x/y/z'
sur le web, ce service peut également être utilisé pour accéder à ces services.
Pour l'utiliser de cette façon, vous pouvez utiliser des variables de remplacement,
de la forme ${x}, ${y}, etc.
Les variables gérées (le nom est sensible à la casse) sont :
* ${x} -- position x de la tuile
* ${y} -- position y de la tuile. Cela peut être soit le haut ou le bas de l'
ensemble des tuile, basé sur le fait que le paramètre *YOrigin* est basé sur
true ou false.
* ${z} -- position z de la tuile -- niveau de zoom
* ${version} -- paramètre de version, définie dans le fichier de config. 1.0.0 par défaut.
* ${format} -- format parameter, set in the config file. Defaults to 'jpg'.
* ${layer} -- layer parameter, set in the config file. Defaults to nothing.
Un *ServerURL* typique ressemblerait à cela :
``ttp://tilecache.osgeo.org/wms-c/Basic.py/${version}/${layer}/${z}/${x}/${y}.${format}``
Dans le but de mieux convenir aux utilisateurs du TMS, n'importe quel URL qui ne
contient pas "${" aura automatiquement la chaîne ci-dessus (après "Basic.py/")
rajoutée à leur URL.
Le service TMS a trois éléments de configuration XML qui sont différent des autres
services : ``Format`` qui est définie par défaut à ``jpg``, ``Layer`` qui n'as
pas de valeur par défaut, et ``Version`` dont la valeur par défaut est ``1.0.0``.
De plus, le service TMS respecte un paramètre supplémentaire, au niveau du
*DataWindow*,qui est l'élément *YOrigin*. Cet élément doit être l'un parmi
``bottom`` (par défaut dans le TMS) ou ``top``, qui correspond aux services
OpenStreetMap et plus autres très populaires.
Deux exemples d'usage de service TMS sont présentés plus bas.
OnEarth Tiled WMS (GDAL 1.9.0 et sup.)
**************************************
Le mini-pilote WMS tuilé d'OnEarth gère les spécifications WMS tuilés implémentées
pour le pilote JPL d'OnEarth suivant la spécification
`http://onearth.jpl.nasa.gov/tiled.html `_.
Un fichier typique de configuration WMS tuilé d'OnEarth devrait ressembler à cela :
::
http://onmoon.jpl.nasa.gov/wms.cgi?
Clementine
La plupart des autres informations sont automatiquement récupérées du serveur
distant en utilisant la méthode *GetTileService* au moment de l'ouverture.
VirtualEarth (GDAL 1.9.0 et sup.)
*********************************
Accès au service de tuile par le web de Virtual Earth. L'accès est toujours basé
sur les tuiles.
La variable *${quadkey}* doit être trouvé dans l'élément *ServerUrl*.
L'élément *DataWindow* peut être omis. Les valeurs par défaut sont :
* UpperLeftX = -20037508.34
* UpperLeftY = 20037508.34
* LowerRightX = 20037508.34
* LowerRightY = -20037508.34
* TileLevel = 19
* OverviewCount = 18
* SRS = EPSG:900913
* BlockSizeX = 256
* BlockSizeY = 256
Exemples
=========
* `onearth_global_mosaic.xml `_ -
mosaic Landsat à partir du serveur WMS `OnEarth `_
::
gdal_translate -of JPEG -outsize 500 250 onearth_global_mosaic.xml onearth_global_mosaic.jpg
::
gdal_translate -of JPEG -projwin -10 55 30 35 -outsize 500 250 onearth_global_mosaic.xml onearth_global_mosaic2.jpg
.. note:: Ce serveur n'accepte plus les requêtes WMS normale.
* `metacarta_wmsc.xml `_ - il
est possible de configurer un service WMS se conformant à un cache WMS-C en
définissant un nombre d'aperçue et la "taille du bloc" comme la taille de la
tuile du cache. L'exemple suivant est un échantillon définie pour une cache
WMS-C avec un "profile Global" de 19 niveau :
::
gdal_translate -of PNG -outsize 500 250 metacarta_wmsc.xml metacarta_wmsc.png
.. image:: _static/metacarta_wmsc.png
* `tileservice_bmng.xml `_ - TileService, Blue Marble NG (Janvier)
::
gdal_translate -of JPEG -outsize 500 250 tileservice_bmng.xml tileservice_bmng.jpg
.. image:: _static/tileservice_bmng.jpg
* `tileservice_nysdop2004.xml `_ - TileService, NYSDOP 2004
::
gdal_translate -of JPEG -projwin -73.687030 41.262680 -73.686359 41.262345 -outsize 500 250 *
tileservice_nysdop2004.xml tileservice_nysdop2004.jpg
.. image:: _static/tileservice_nysdop2004.jpg
* `Exemple du service TMS d'OpenStreetMap `_ :
se connecte au service de tuile d'OpenStreetMap. Notez que ce fichier permet
l'utilisation du cache de tuile : plus d'information sur la configuration des
paramètres du cache de tuile est disponible ci-dessus.
::
gdal_translate -of PNG -outsize 512 512 frmt_wms_openstreetmap_tms.xml openstreetmap.png
* `Exemple de la couche TMS de MetaCarta `_,
accède à la couche par défaut du TMS de TMS.
::
gdal_translate -of PNG -outsize 512 256 frmt_wms_metacarta_tms.xml metacarta.png
* `Exemple BlueMarble sur Amazon S3 `_
accédé avec le minipilote TMS.
* `Google Maps `_ accédé avec le
minipilote TMS.
* `Serveur carto de tuiles d'ArcGIS `_
accédé avec le minipilote TMS.
* Exemples du WMS tuilé de OnEarth `Clementine `_,
`journalier `_, et
`srtm `_.
* `Couche Aerial de VirtualEarth `_ accédé avec le minipilote VirtualEarth.
Syntaxe ouverte
=================
Le pilote WMS peut ouvrir :
* un fichier XML de description de service local : ``gdalinfo description_file.xml``
* le contenu d'un fichier XML de description fournie comme nom de fichier :
::
gdalinfo "http://onearth.jpl.nasa.gov/wms.cgi? \
Global SRTM Elevation"
* (GDAL >= 1.9.0) une URL d'un service WMS, préfixé avec *WMS:* :
::
gdalinfo "WMS:http://wms.geobase.ca/wms-bin/cubeserv.cgi"
Une liste de sous jeu de données sera retournée, résultant de la lecture de la
requête GetCapabilities sur ce serveur.
* (GDAL >= 1.9.0) une pseudo requête GetMap, telle que le nom du sous jeu de données
l'a retournée par la syntaxe précédente :
::
gdalinfo "WMS:http://wms.geobase.ca/wms-bin/cubeserv.cgi?SERVICE=WMS&VERSION=1.1.1&REQUEST=GetMap& \
LAYERS=DNEC_250K%3AELEVATION%2FELEVATION&SRS=EPSG:42304&BBOX=-3000000,-1500000,6000000,4500000"
* (GDAL >= 1.9.0) l'URL de base d'un service WMS tuilé, préfixé avec *WMS:* et
avec l'argument GET *request=GetTileService* :
::
gdalinfo "WMS:http://onearth.jpl.nasa.gov/wms.cgi?request=GetTileService"
Une liste de sous jeu de données sera renvoyée, résultant de la lecture de la
requête du GetTileService sur ce serveur.
* (GDAL >= 1.9.0) l'URL d'un service REST pour un serveur carto ArcGIS :
::
gdalinfo "http://server.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer?f=json&pretty=true"
.. seealso::
* `OGC WMS Standards `_
* `Recommandation du WMS Tiling Client (WMS-C) `_
* `TileService WorldWind `_
* `Spécification TMS `_
* `Spécification WMS Tuilé OnEarth `_
.. yjacolin at free.fr, Yves Jacolin - 2014/12/15 (trunk 28145)