Exercício 9 - pygeoapi como ponte para outros serviços
Nesta secção vamos explorar como a pygeoapi pode ser usada como um interface para re-publicar serviços web com distintas interfaces. Estas pontes podem ajudar organizações a migrar de OWS para OGC API.
Publicar WFS como OGC API - Features
Um caso de uso importante para a pygeoapi é fornecer uma interface OGC API - Features sobre endpoints Web Feature Service (WFS) ou ESRI FeatureServer existentes. Neste cenário, diminui a barreira de acesso e aumenta a usabilidade de serviços existentes para uma audiência mais ampla. Vamos configurar uma API sobre um WFS existente (correndo nos servidores da cidade de Florença).
Atualizar a configuração da pygeoapi
Abra a configuração da pygeoapi num editor de texto.
Encontre a linha # START - EXERCISE 8 - WFS Proxy
.
Adicione uma nova secção de conjunto de dados descomentando as linhas até # END - EXERCISE 8 - WFS Proxy
:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
|
Guarde o ficheiro e reinicie o Docker Compose. Navegue para http://localhost:5000/collections para avaliar se o novo conjunto de dados foi publicado.
Note estes importantes excertos de configuração sob providers
:
-
Usamos o Fornecedor OGR da pygeoapi. Este é o backend mais versátil da pygeoapi para suportar numerosos formatos. Usar a biblioteca GDAL/OGR (bindings Python) permite à pygeoapi conectar-se a cerca de 80+ Formatos Vetoriais. Podíamos ter usado o Fornecedor
OGR
em vez do FornecedorSQLiteGPKG
acima no exercícioosm_places-vec
acima. -
storage_crs
denota o CRS (Sistema de Referência de Coordenadas) no qual o conjunto de dados é armazenado (o padrão é CRS84, ou seja, 'longitude, latitude') crs
é um array de CRSs que podem ser especificados para as Funcionalidades serem devolvidas (parâmetrocrs=
), ou para a sua bounding box (parâmetrobbox-crs=
). O padrão também é CRS84.
O suporte CRS permite efetivamente à pygeoapi reprojetar os dados do seu CRS de armazenamento (aqui EPSG:3003) de acordo com OGC API - Features - Part 2: Coordinate Reference Systems by Reference. A secção Avançada desta workshop elaborará o suporte CRS da pygeoapi.
Publicar WMS como OGC API - Maps
Podemos usar o provider/fornecedor WMSFacade da pygeoapi para publicar interfaces OGC Web Map Service (WMS) como OGC API - Maps.
Vamos configurar uma API sobre um WMS existente no Servidor de Demonstração MapServer:
https://demo.mapserver.org/cgi-bin/msautotest
Note
Sinta-se à vontade para usar um WMS à sua escolha!
Atualizar a configuração da pygeoapi
Abra a configuração da pygeoapi num editor de texto.
Encontre a linha ## START - EXERCISE 8 - WMS Proxy
.
Adicione uma nova secção de conjunto de dados descomentando as linhas até ## END - EXERCISE 8 - WMS Proxy
:
Certifique-se de manter a indentação YAML adequada.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
|
Execute os seguintes pedidos no seu navegador web:
- mapa padrão: http://localhost:5000/collections/wms-facade-demo/map?f=png
- largura/altura específicas: http://localhost:5000/collections/wms-facade-demo/map?f=png&width=800&height=600
- área de interesse específica (bbox do Canadá): http://localhost:5000/collections/wms-facade-demo/map?f=png&width=800&height=600&bbox=-142,42,-52,84
Tip
Experimente com os seus próprios valores de bbox e largura/altura!
Publicar CSW como OGC API - Records
Nesta secção veremos como publicar Catalogue Service for the Web (CSW) como OGC API - Records. Para isso, usaremos o serviço CSW pycsw OGC CITE demo.
Atualizar a configuração da pygeoapi
Abra a configuração da pygeoapi num editor de texto.
Encontre a linha # START - EXERCISE 8 - CSW Proxy
.
Adicione uma nova secção de conjunto de dados descomentando as linhas até # END - EXERCISE 8 - CSW Proxy
:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
|
Pode explorar a coleção de catálogo com proxy usando estes endpoints:
- página de metadados da coleção: http://localhost:5000/collections/cite_demo
- lista de registos: http://localhost:5000/collections/cite_demo/items
- registo: http://localhost:5000/collections/cite_demo/items/urn:uuid:19887a8a-f6b0-4a63-ae56-7fba0e17801f
Tip
Lembre-se de que pode usar o cliente QGIS sugerido aqui para explorar esta API.
Publicar SensorThings API como OGC API - Features
A norma OGC SensorThings API oferece interfaces RESTful para interconectar dispositivos IoT, dados, de forma aberta e unificada. Embora existam alguns clientes que suportam esta norma, há muito mais que suportam OGC API - Features.
A ponte SensorThings da pygeoapi permite fazer proxy das entidades SensorThings (por exemplo: Thing
, Sensor
, DataStream
, ObservedProperty
) em coleções de funcionalidades.
Nesta secção veremos como Publicar um Thing
da SensorThings API como uma coleção OGC API - Features, que pode então ser consumida por vários clientes, como os listados aqui
Atualizar a configuração da pygeoapi
Abra a configuração da pygeoapi num editor de texto.
Encontre a linha # START - EXERCISE 8 - SensorThings Proxy
.
Adicione uma nova secção de conjunto de dados descomentando as linhas até # END - EXERCISE 8 - SensorThings Proxy
:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
|