OGC CSW

Chceme-li nějakou OGC webovou službu začít využívat, musíme především znát její adresu. Také pro tento účel vznikají katalogové služby, kdy specializované servery udržující metadatové záznamy webových služeb a datových souborů. Pro Českou republiku je organizací Cenia udržován Národní geoportál INSPIRE, který obsahuje informace o všech dostupných webových službách a datových souborech poskytovaných veřejnou správnou. Umožňuje v nich vyhledávat pomocí standardu OGC CSW.

Webové rozhraní k tomuto serveru najdete na adrese http://geoportal.gov.cz/web/guest/catalogue-client. Rozhraní pro webovou službu je dostupné na adrese http://geoportal.gov.cz/php/micka/csw/index.php.

from owslib.csw import CatalogueServiceWeb
cenia = CatalogueServiceWeb('http://geoportal.gov.cz/php/micka/csw/index.php')
print(cenia.service)
'CSW'

Vyhledávání záznamů:

cenia.getrecords2()
print(cenia.results)
{'matches': 2621, 'nextrecord': 11, 'returned': 10}

Zjištění hodnot nalezených záznamů:

for rec in cenia.records:
    print(cenia.records[rec].title)
...
Olomouc
Olomouc
Dálniční exity GN
Global Network - Jednotná georeferenční síť pozemních komunikací
Železniční přejezd GN
Kilometráž GN
Osa železničních tratí
Železniční tunely
Železniční mosty a propustky
Železniční přejezdy
...

K získání dalších 10 záznamů rozšíříme volání funkce getrecords2 o parametr startposition

cenia.getrecords2([praha_and_wms], esn='full', startposition=11)

Vyhledávání s omezením na záznamy obsahující slovo WMS a minimální ohraničující obdélník Prahy:

from owslib.fes import PropertyIsLike, BBox, And, PropertyIsEqualTo
wms_query = PropertyIsEqualTo('csw:AnyText', 'WMS')
praha_query = BBox([14.22, 49.94, 14.71, 50.18])
praha_and_wms = And([wms_query, praha_query])
cenia.getrecords2([praha_and_wms], esn='full')
print(cenia.results)
{'matches': 113, 'nextrecord': 11, 'returned': 10}
for recid in cenia.records:
    record = cenia.records[recid]
    print('{}: {} {} {} {}'.format(record.title,
                                   record.bbox.minx, record.bbox.miny,
                                   record.bbox.maxx, record.bbox.maxy))
...
ÚP VÚC Adršpach: 48.20735042 11.86320935 51.37551609 19.0302868
VÚC Hradecko-Pardubické aglomerace: 48.20735042 11.86320935 51.37551609 19.0302868
ÚP VÚC okresu Jičín: 48.23303412 11.93768841 51.35407571 18.95542894
ÚP VÚC Krkonoše: 48.20735042 11.86320935 51.37551609 19.0302868
ÚP VÚC Orlické hory a podhůří: 48.20735042 11.86320935 51.37551609 19.0302868
ÚP VÚC Trutnovsko - Náchodsko: 48.20735042 11.86320935 51.37551609 19.0302868
Prognóza rozvoje území kraje: 48.20735042 11.86320935 51.37551609 19.0302868
WMS služba Pardubického kraje - polohopis, ortofoto: 48.11130361 11.83822588 51.45351762 19.12784541
Služba WMS Pardubického kraje - tematické vrstvy: 48.22866996 12.03230308 51.34271802 19.63025648
Prohlížecí služba WMS - Data200: 48.55 12.09 51.06 18.86
...

Vyhledání služby obsahující v názvu „ZM10“:

zm_query = PropertyIsLike('csw:AnyText', '%WMS - ZM 10%')
cenia.getrecords2([zm_query], esn='full')
zm10 = cenia.records['CZ-CUZK-WMS-ZM10-P']
print(zm10.type)
'service'
print('{}\n{}'.format(zm10.title, zm10.abstract))
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.  Služba splňuje Technické
pokyny pro INSPIRE prohlížecí služby v. 3.11 a zároveň splňuje
standard OGC WMS 1.1.1. a 1.3.0.
url = zm10.references[0]['url']
'http://geoportal.cuzk.cz/WMS_ZM10_PUB/WMService.aspx?service=WMS&request=getCapabilities'