../_images/logo_pygeoapi.png ../_images/OSGeo_community.png

Inicio Rápido de pygeoapi

pygeoapi es una herramienta para publicar rápida y fácilmente los servicios de OGC Open API en la web. Se basa en las potentes bibliotecas de código abierto de la comunidad (geo)python.

En esta guía de inicio rápido le guiaremos en la configuración del software y lo usaremos para algunos casos específicos. A lo largo del camino vamos a participar con algún software relacionado, porque pygeoapi es un producto que normalmente se combina con otros componentes para cumplir con un caso de negocio.

Conocimientos previos

pygeoapi es una aplicación web de Python para el dominio espacial, por lo que debe tener en cuenta los conceptos de aplicaciones web y aspectos geoespaciales como formatos de cuadrícula y vectores, estándares OGC y sistemas de proyección. Se recomienda el conocimiento de Python, aunque puede hacerlo sin ejecutar la aplicación desde OSGeoLive.

Configure e inicie el servicio

  1. En el menú Inicio, seleccione Structure ‣ osgeolive ‣ appmenupath ‣ pygeoapi. La aplicación abrirá una página web en http://localhost:5000

  2. vaya a la carpeta de usuario /usr/local/share/pygeoapi y busque un archivo pygeoapi-config.yml. Este archivo contiene la configuración del servicio.

  3. Abra el archivo sudo nano pygeoapi-config.yml.

  4. Actualice algunos parámetros del archivo, como Título y Autor. Y guarde el archivo.

  5. Reinicie el servicio, por ejemplo cerrando el terminal e iniciando el servicio de nuevo

    ../_images/pygeoapi_screenshot.png

Configurar nuevo servicio

Ahora implementará un conjunto de datos vectorial en pygeoapi y expondrá sus características como API de OGC - Características. API de OGC: las características son un estándar de OGC para exponer las características vectoriales como un servicio web. API de OGC: las características son la alternativa de OpenAPI para WFS.

pygeoapi es compatible con una amplia gama de backends para utilizarlos como origen vectorial, por ejemplo, geopaquete, PostGIS, Elasticsearch, WFS, etc. A través del proveedor GDAL OGR se puede añadir un conjunto casi ilimitado de otras fuentes vectoriales.

Los conjuntos de datos interesantes para exponer como Características-OAPI consisten en datos del mundo real que tienen múltiples atributos y enlaces a otros recursos. OSGeo Live contiene una serie de conjuntos de datos que podemos usar. Un ejemplo es``/var/www/html/openlayers/examples/data/geojson/countries.geojson``. Puede configurarlo en pygeoapi utilizando el proveedor GeoJSON.

  1. Descargue el archivo GeoJSON y colóquelo en la carpeta tests/data.

  2. Actualice pygeoapi-config.yml para agregar países como una nueva colección a pygeoapi (inserte un fragmento de código a continuación entre las otras colecciones. Tenga en cuenta el anidamiento, el anidamiento es importante en la sintaxis YAML).

  3. Reiniciar pygeoapi

countries:
   type: collection
   title: Countries
   description: Countries of the world
   keywords:
      - industry
   links:
      - type: text/html
        rel: canonical
        title: information
        href: https://openlayers.org
        hreflang: en-US
   extents:
      spatial:
         bbox: [-180,-90,180,90]
   providers:
      - type: feature
        name: GeoJSON
        data: /var/www/html/openlayers/examples/data/geojson/countries.geojson
        id_field: name

Compruebe que la colección está disponible a través de su navegador en http://localhost:5000/collections/countries

Uso de un explorador web para consultar la API

Ahora que tenemos el servicio disponible podemos consultarlo usando varias herramientas de cliente. Cada una de las características de la colección está disponible en formatos comunes, como HTML, GeoJSON y GML. Para empezar podemos utilizar un navegador web para navegar por el servicio. Desde http://localhost:5000/collections/countries, desglose hasta operaciones individuales. El servicio detectará automáticamente (aceptar encabezado) que está utilizando un navegador web y devolverá la representación HTML de las características. Observe en la esquina superior derecha vínculos explícitos para invalidar el encabezado de aceptación y solicitar representaciones específicas de la entidad (?f=geojson).

Cada API abierta tiene una página de documentación interactiva en http://localhost:5000/openapi. En esta página web interactiva se puede leer sobre los diversos métodos en el servicio, pero también interactuar directamente con ellos a través de formularios web.

../_images/openapidoc.png

Las API de OGC se han desarrollado teniendo en cuenta los datos espaciales en las mejores prácticas web. Un aspecto importante de estas mejores prácticas es la optimización de motores de búsqueda. Pygeoapi agrega algunas optimizaciones de rastreo además de los requisitos de los estándares de API abierta; Los motores de búsqueda pueden rastrear los metadatos de la colección de una manera estructurada, con el objetivo de que las colecciones sean detectables en herramientas como Google Dataset Search. Para evaluar las capacidades de datos estructurados, puede utilizar las herramientas de prueba de datos estructurados de Yandex o Google. Copie la fuente html de la página de recopilación de países (o la URL de una página de recopilación de una instancia de pygeoapi en línea) en una herramienta de prueba de datos estructurados y evalúe qué datos estructurados la herramienta puede extraer de ella. El motor de búsqueda utilizará esa información en su índice de conjuntos de datos.

Uso de OAPI-Características en SIG de escritorio

En esta guía de inicio rápido utilizamos QGIS para consultar el servicio, pero es posible un flujo de trabajo similar en otras herramientas SIG, por ejemplo, ArcGIS, FME, OpenLayers.

A partir de QGIS 3.14 puede agregar una capa OAPI-Features como capa vectorial. En el menú añadir capa seleccione Agregar capa WFS / OAPI-Features.

../_images/qgis-wfs.png

En la ventana que se abre crear una nueva conexión, escriba la url al servicio http://localhost:5000.

Haga clic en Aceptar y, a continuación, en conectar para cargar las colecciones disponibles en el servicio.

../_images/qgis-layers.png

Seleccione la colección países y haga clic en ‘Agregar’ para agregar la capa en el mapa QGIS.