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='https://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('https://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('https://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....