OGC WFS

Služba OGC Web Feature Service slouží ke stahování a sdílení vektorových dat. Nejčastějším výměnným formátem je OGC GML.

Poznámka

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

Poznámka

Předpokládáme, že máme naimportováno vše potřebné pro práci s katalogovou službou, pokud ne, vraťte se prosím výše, viz OGC CSW.

Nejprve najdeme nějaké WFS v katalogové službě:

wfs_query = PropertyIsLike('csw:AnyText', 'WFS%')
aopk_query = PropertyIsLike('csw:AnyText', 'Agentura%')
service_query = PropertyIsLike('apiso:type', 'service')
aopk_and_wfs = And([aopk_query, wfs_query, service_query])
cenia.getrecords2([aopk_and_wfs], esn='full')
print(cenia.results)
{'matches': 9, 'nextrecord': 0, 'returned': 9}
for recid in cenia.records:
    record = cenia.records[recid]
    print('{}: {}'.format(recid, record.title))
...
53e37222-89a0-472b-9781-5bfc0a02080a WFS Soustava území Natura 2000
53e37cd6-5cb8-4ee9-b862-62e10a02080a WFS Památné stromy
5473579f-fb08-48ab-893d-3d3e0a02080a WFS Chráněná území
54735935-a88c-4c58-99bc-3dee0a02080a WFS Mezinárodní ochrana přírody
53e47f1f-1bb8-405f-9254-514a0a02080a WFS Údaje o území
53f3708e-9d1c-4da6-983c-086e0a02080a WFS Průchodnost krajiny pro velké savce
...

Podíváme se, jaká data mají v Agentuře ochrany přírody a krajiny (AOPK):

natura = cenia.records['53e37222-89a0-472b-9781-5bfc0a02080a']
print('{}\n{}'.format(natura.abstract, natura.identifiers[1]['identifier']))
Služba zpřístupňuje geografická data soustavy území Natura 2000 v České republice; © AOPK ČR
https://gis.nature.cz/arcgis/services/UzemniOchrana/Natura2000/MapServer/
WFSServer?service=WFS&request=GetCapabilities&version=1.1.0

Načteme WFS AOPK:

from owslib.wfs import WebFeatureService
url = 'https://gis.nature.cz/arcgis/services/UzemniOchrana/Natura2000/MapServer/WFSServer'
aopk = WebFeatureService(url)

Zjistíme vlastnosti služby (Capabilities):

capabilities = aopk.getcapabilities()
print(capabilities.geturl())
'https://gis.nature.cz/arcgis/services/UzemniOchrana/Natura2000/MapServer/WFSServer?service=WFS&request=GetCapabilities&version=1.1.0'
print('{}\n{}\n{}\n{}\n{}'.format(aopk.provider.name,
                                  aopk.identification.title,
                                  aopk.identification.keywords[0],
                                  aopk.identification.fees,
                                  aopk.identification.abstract))
Agentura ochrany přírody a krajiny České republiky
Soustava chránených území evropského významu Natura 2000
Natura 2000, Chráněné území
žádné
Služba zpřístupňuje geografická data soustavy chránených území evropského významu Natura 2000 v České republice

Metadata

for rec in aopk.contents:
    print(rec)
...
UzemniOchrana_Natura2000:Ptačí_oblast
UzemniOchrana_Natura2000:Forma_ochrany_EVL_-_stav_k_24._5._2013
UzemniOchrana_Natura2000:Evropsky_významná_lokalita__EVL_
..

Načteme ještě službu chránených území:

url='http://gis.nature.cz/arcgis/services/UzemniOchrana/ChranUzemi/MapServer/WFSServer'
chranena_uzemi_wfs = WebFeatureService(url)
for rec in chranena_uzemi_wfs.contents:
    print(rec)
...
UzemniOchrana_ChranUzemi:Maloploplošná_zvláště_chránená_oblast
UzemniOchrana_ChranUzemi:Smluvní_chránené_území
UzemniOchrana_ChranUzemi:Zákonem_chránené_pásmo_MZCHU
UzemniOchrana_ChranUzemi:Velkoplošné_zvláště_chránené_území
UzemniOchrana_ChranUzemi:Zonace_velkoplošného_zvláště_chráneného_území
...
identifier = 'UzemniOchrana_ChranUzemi:Zonace_velkoplošného_zvláště_chráněného_území'
print(chranena_uzemi_wfs.contents[identifier])
<owslib.feature.wfs100.ContentMetadata instance at 0x7f90a1ec3e60>
print('{}\n{}'.format(chranena_uzemi_wfs.contents[identifier].boundingBox,
                      chranena_uzemi_wfs.contents[identifier].crsOptions))
(12.13496541407338, 48.40534103216736, 18.82327290073213, 51.27775263472881, urn:ogc:def:crs:EPSG::5514)
[urn:ogc:def:crs:EPSG::5514]

Stažení dat

features = chranena_uzemi_wfs.getfeature([identifier])
print(features)
<owslib.util.ResponseWrapper object at 0x7f697152df90>
print(features.read())
<wfs:FeatureCollection xsi:schemaLocation='https:gis.nature.cz:6443/arcgis/services/UzemniOchrana/Ch...

VUV

vuv = WebFeatureService('http://ags.vuv.cz/arcgis/services/inspire/priority_datasets/MapServer/WFSServer',
                        version="2.0.0")
for c in vuv.contents:
    print(c)

floodedAreas = vuv.getfeature(['inspire_priority_datasets:FD_CZ_1000_floodedAreas'])
print(floodedAreas.read())
<wfs:FeatureCollection xsi:schemaLocation='...

CUZK WFS

Todo

Nutnost autentizace pro kraj.read()

cuzk = WebFeatureService('http://geoportal.cuzk.cz/wfs_au/wfservice.aspx',
                         version="2.0.0")
for c in cuzk.contents:
    print(c)
...
gmgml:OKRES
gmgml:KRAJ
gmgml:OBLAST
gmgml:MC
gmgml:OPU
gmgml:KU
gmgml:ZSJ
gmgml:SO
gmgml:STAT
gmgml:ORP
gmgml:OBEC
kraj = cuzk.getfeature(['gmgml:KRAJ'])
print(kraj.read())
<gmgml:FeatureCollection xsi:schemaLocation="http://www.intergraph.com/geomedia/gml http://geopor....