OGC WMS

OGC Web Map Service slouží ke stahování a sdílení mapových dat. Klientovi nejsou posílána vlastní data, ale pouze náhled (obrázek) těchto dat.

Poznámka

Více informací na školení Úvod do GIS.

from owslib.wms import WebMapService
wms = WebMapService(url)
print('{}\n{}{}\n{}'.format(wms.identification.title,
                            wms.identification.abstract,
                            wms.provider.name,
                            wms.provider.contact.address))
Prohlížecí služba WMS - ZM 10
Prohlížecí služba WMS-ZM10-P je poskytována jako veřejná prohlížecí
služba nad daty Základní mapy ČR 1:10 000.
Zeměměřický úřad
Pod Sídlištěm 9

Dostupné mapové vrstvy:

print(wms.contents)
{'GR_ZM10': <owslib.wms.ContentMetadata instance at 0x7f1d7bc1b8c0>}

Rozsah vrstvy:

layer = list(wms.contents.keys())[0]
print('{}\n{}'.format(wms.contents[layer].boundingBox,
                      wms.contents[layer].boundingBoxWGS84))
(-950003.175021186, -1250003.1750036045, -399990.474995786, -899996.8249909044, 'EPSG:5514')
(11.214011580382529, 47.96491460125967, 19.40766262309513, 51.691664934538636)

Stažení a uložení dat:

img = wms.getmap(
    layers=[layer],
    size=[800, 600],
    srs="EPSG:5514",
    bbox=[-950003, -1250003, -399990, -899996],
    format="image/png"
)
with open('data/wms_download.png', 'wb') as out:
    out.write(img.read())

Důležité

Možné problémy při připojení ke službě. V minulosti končilo připojení chybou requests.exceptions.TooManyRedirects: Exceeded 30 redirects. Vysvětlení hledejte na našem blogu.

Úkol

Vyzkoušejte připojení ke službě:

url='http://gis.nature.cz/arcgis/services/UzemniOchrana/Natura2000/MapServer/WmsServer'
layer='1' # Evropsky významné lokality (EVL)

Výše zmíněna služba AOPK podporuje pouze WMS verze 1.3.0. Vzhledem k tomu, že OWSLib používá ve výchozím nastavení verzi služby 1.1.1, je třeba verzi vynutit:

wms = WebMapService(url, version='1.3.0')