Exercício 3 - Dados raster via OGC API - Coverages
A OGC API - Coverages fornece uma API Web para aceder a dados raster (grelhas, dados de deteção remota, cubos de dados multidimensionais):
- OGC API - Coverages (rascunho)
Suporte da pygeoapi
A pygeoapi suporta a especificação de rascunho da OGC API - Coverages, com o rasterio e o xarray como backends principais, bem como CoverageJSON e output nativo.
Note
Consulte a documentação oficial para mais informações sobre os backends raster suportados.
Publicar um conjunto de dados raster
Nos exercícios anteriores, demonstrámos os passos envolvidos na publicação de dados vetoriais e na atualização da configuração da pygeoapi. Nesta secção, vamos publicar um ficheiro raster no formato GeoTIFF, a partir de um fornecedor rasterio.
Atualizar a configuração da pygeoapi
Abra o ficheiro de configuração da pygeoapi num editor de texto. Adicione uma nova secção de conjunto de dados da seguinte forma:
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 |
|
Tip
A diretiva format.name
do fornecedor rasterio requer um nome de driver raster GDAL válido.
Guarde a configuração e reinicie o Docker Compose. Navegue para http://localhost:5000/collections para avaliar se o novo conjunto de dados foi publicado.
Acesso do lado do cliente
GDAL/OGR
O GDAL/OGR fornece suporte para a OGC API - Coverages. Isto significa que pode usar o gdalinfo
para consultar e converter dados de endpoints da OGC API - Coverages, tal como qualquer outra fonte de dados raster. Isto também significa que pode estabelecer ligações a endpoints da OGC API - Coverages a partir de qualquer software que tenha uma interface para o GDAL, como MapServer, GeoServer, Manifold, FME, ArcGIS, etc.
Usar o GDAL para interagir com a OGC API - Coverages
- Verifique se tem uma versão recente do GDAL instalada, caso contrário, use o GDAL do OSGeoLive
- Execute
gdalinfo
na linha de comandos para verificar uma ligação à OGC API - Coverages:
gdalinfo OGCAPI:https://maps.ecere.com/ogcapi/collections/SRTM_ViewFinderPanorama
gdalinfo OGCAPI:https://maps.ecere.com/ogcapi/collections/SRTM_ViewFinderPanorama
OWSLib
A OWSLib é uma biblioteca Python para interagir com os Serviços Web da OGC e suporta várias OGC API, incluindo a OGC API - Coverages.
Interagir com a OGC API - Coverages via OWSLib
Se não tiver o Python instalado, considere executar este exercício num container de Docker. Consulte o Capítulo de Configuração.
bash
pip3 install owslib
pip3 install owslib
Em seguida, inicie uma sessão de consola Python com: python3
(pare a sessão escrevendo exit()
).
>>> from owslib.ogcapi.coverages import Coverages
>>> SERVICE_URL = 'https://demo.pygeoapi.io/master/'
>>> w = Coverages(SERVICE_URL)
>>> w.url
'https://demo.pygeoapi.io/master/'
>>> gdps = w.collection('gdps-temperature')
>>> gdps['id']
'gdps-temperature'
>>> gdps['title']
'Amostra do Sistema de Previsão Determinística Global'
>>> gdps['description']
'Amostra do Sistema de Previsão Determinística Global'
>>> schema = w.collection_schema('gdps-temperature')
>>> len(schema['field'])
1
>>> schema['properties']['1']['title']
'Temperatura [C]'
>>> schema['properties']['1']['x-ogc-unit']
'[C]'
>>> schema['properties']['1']['type']
'number'
>>> from owslib.ogcapi.coverages import Coverages
>>> SERVICE_URL = 'https://demo.pygeoapi.io/master/'
>>> w = Coverages(SERVICE_URL)
>>> w.url
'https://demo.pygeoapi.io/master/'
>>> gdps = w.collection('gdps-temperature')
>>> gdps['id']
'gdps-temperature'
>>> gdps['title']
'Amostra do Sistema de Previsão Determinística Global'
>>> gdps['description']
'Amostra do Sistema de Previsão Determinística Global'
>>> schema = w.collection_schema('gdps-temperature')
>>> len(schema['field'])
1
>>> schema['properties']['1']['title']
'Temperatura [C]'
>>> schema['properties']['1']['x-ogc-unit']
'[C]'
>>> schema['properties']['1']['type']
'number'
Note
Consulte a documentação oficial da OWSLib para mais exemplos.
Resumo
Parabéns! Agora é capaz de publicar dados raster na pygeoapi.