Saltar a contenido

Añadiendo datos a GeoNode

Introducción al OGC

Desde la página de inicio de OGC:

El OGC (Open Geospatial Consortium) es una organización internacional sin fines de lucro comprometida con la creación de estándares abiertos de calidad para la comunidad geoespacial global. Estos estándares se desarrollan a través de un proceso de consenso y están disponibles de forma gratuita para que cualquiera los utilice, con el fin de mejorar el intercambio de datos geoespaciales en todo el mundo.

OGC proporciona un estándar tanto para los datos como para los protocolos de intercambio de los mismos.

Estándares de datos

Algunos ejemplos de estándares a nivel de datos incluyen:

  • GeoTIFF: es un estándar de metadatos de dominio público que permite que la información de georreferenciación se integre dentro de un archivo TIFF. La información adicional potencial incluye proyecciones de mapas, sistemas de coordenadas, elipsoides, datums y todo lo necesario para establecer la referencia espacial exacta del archivo. El formato GeoTIFF es totalmente compatible con TIFF 6.0, por lo que el software incapaz de leer e interpretar los metadatos especializados aún podrá abrir un archivo en formato GeoTIFF.
  • KML (Keyhole Markup Language): es un dialecto XML utilizado para intercambiar principalmente datos vectoriales y controlar su visualización.
  • Shapefile: es un formato de datos vectoriales geoespaciales para software de sistemas de información geográfica (GIS). Es desarrollado y regulado por Esri como una especificación mayormente abierta para la interoperabilidad de datos entre Esri y otros productos de software GIS. El formato shapefile puede describir espacialmente características vectoriales: puntos, líneas y polígonos, que representan, por ejemplo, pozos de agua, ríos y lagos. Cada elemento generalmente tiene atributos que lo describen, como el nombre o la temperatura.
  • GeoJSON: es un formato de estándar abierto diseñado para representar características geográficas simples, junto con sus atributos no espaciales. Se basa en el formato JSON.

GeoNode admite los ejemplos anteriores como entradas o salidas.

Estándares de estilo

OGC ha creado SLD (Styled Layer Descriptor) para definir una codificación que extiende el estándar del Servicio de Mapas Web (WMS) permitiendo la simbolización definida por el usuario como las reglas de estilo de características geográficas. También creó SE (Symbology Encoding) como un lenguaje de estilo que tanto el cliente como el servidor pueden entender. Consulta la sección Mapas bonitos con GeoNode para obtener más detalles.

Estándares de protocolo

Los protocolos definen cómo debe llevarse a cabo la comunicación en red entre dos sistemas. El OGC ha definido varios protocolos, clasificados de manera apropiada por INSPIRE en las siguientes categorías:

  • Servicios de descubrimiento
  • Servicios de visualización
  • Servicios de descarga
  • Servicios de transformación

imagen

La idea es simple. Un usuario primero usaría un Servicio de descubrimiento para localizar los datos de interés. Luego usaría un Servicio de visualización para una inspección visual. Una vez satisfecho, el usuario eventualmente usaría un Servicio de descarga para descargar los datos para uso sin conexión, o usaría un Servicio de transformación para realizar un análisis espacial en línea.

Los servicios de descubrimiento se implementan utilizando CSW (Servicios de Catálogo para la Web), un protocolo diseñado con una interfaz basada en estándares para descubrir, navegar y consultar metadatos de datos geoespaciales. Una interacción con un CSW (por ejemplo, pycsw) típicamente lleva a encontrar enlaces a otros protocolos OGC que permiten la visualización y descarga de los datos. GeoNode tiene un módulo CSW que permite a un cliente buscar conjuntos de datos y contenidos.

Los servicios de visualización se implementan usando WMS (Servicios de Mapas Web) y WMTS (Servicios de Teselas de Mapas Web), que son los protocolos estándar HTTP que permiten a un cliente visualizar mapas de una o más bases de datos geoespaciales. Estos servicios son los más fáciles de usar y comprender. Proporcionan una lista de mapas que se pueden mostrar y combinar en una aplicación de navegador, y eventualmente consultar, pero no modificar o cambiar. Puedes aprender más sobre WMS en las siguientes secciones.

Los servicios de descarga se implementan utilizando WFS (Servicios de Características Web) y WCS (Servicios de Coberturas Web), que son protocolos que permiten descargar los datos fuente detrás de los mapas, ya sea en formato vectorial (WFS) o raster (WCS). Permiten al cliente realizar las siguientes acciones adicionales durante la descarga:

  • Filtrado espacial (por ejemplo, por cuadro delimitador), extrayendo solo un subconjunto de los datos;
  • Filtrado alfanumérico (solo WFS), o extracción por tiempo (WFS y WCS);
  • Selección de atributos de interés (WFS) o bandas (WCS);
  • Cambio de proyecciones de mapas;
  • Redimensionamiento (solo para WCS, por ejemplo, permite descargar una versión de menor resolución de un raster para ahorrar ancho de banda).

Los servicios de transformación se utilizan para realizar análisis espaciales en línea sobre datos vectoriales y raster. El protocolo utilizado en este caso es WPS (Servicio de Procesamiento Web).

Solicitudes comunes en los estándares de protocolo

Un cliente realiza solicitudes para interactuar con un servicio. Cada solicitud tiene un rol diferente y diferentes servicios muestran diferentes llamadas, pero hay algunos puntos comunes.

Aquí hay algunas solicitudes comunes y su significado:

  • GetCapabilities: esta es la única solicitud presente en todos los protocolos. Devuelve un largo documento XML que describe lo que el servidor puede hacer y lo que contiene. Permite al cliente descubrir qué partes de un protocolo son compatibles (algunas partes pueden ser opcionales), qué formatos son compatibles como respuesta y qué “temas” o “contenidos” están disponibles en el servidor (estos pueden ser mapas, datos vectoriales, datos raster y más).
  • Describe< Contenido >: solo está presente en algunos protocolos. Permite al cliente obtener más información sobre un contenido particular del servidor. Por ejemplo, DescribeFeatureType en WFS proporciona la lista de atributos de un conjunto de datos vectoriales particular, mientras que DescribeProcess en WPS describe las entradas y salidas de un proceso de análisis espacial.
  • Get< Contenido >: esta llamada recupera el contenido especificado, normalmente proporcionando parámetros adicionales para controlar la producción o extracción del resultado. Por ejemplo, tenemos GetMap en WMS, GetFeature en WFS y GetCoverage en WCS.

Estas solicitudes generalmente se realizan en secuencia por parte del cliente. Cada una habilita el uso de la siguiente.

imagen

Formas de codificar solicitudes

Las solicitudes en los protocolos OGC normalmente se pueden realizar utilizando dos paradigmas diferentes:

  • KVP o Key Value Pair, es una URL simple que admite todos los parámetros de solicitud como pares de claves y valores en la cadena de consulta. La solicitud HTTP es un GET en este caso. Aquí hay un ejemplo de un WFS GetFeature en modo KVP:
  http://demo.geo-solutions.it/geoserver/wfs?
    request=GetFeature&
    version=1.1.0&
    typeName=topp:states&
    propertyName=STATE_NAME,PERSONS&
    BBOX=-75.102613,40.212597,-72.361859,41.512517,EPSG:4326
  • XML POST: contiene un documento XML que describe la solicitud y se envía al servidor como una solicitud HTTP POST. Aquí hay un ejemplo de un WFS GetFeature usando el modo HTTP POST:
  <wfs:GetFeature service="WFS" version="1.0.0"
    outputFormat="GML2"
    xmlns:topp="http://www.openplans.org/topp"
    xmlns:wfs="http://www.opengis.net/wfs"
    xmlns:ogc="http://www.opengis.net/ogc"
    xmlns:gml="http://www.opengis.net/gml"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.opengis.net/wfs
                        http://schemas.opengis.net/wfs/1.0.0/WFS-basic.xsd">
    <wfs:Query typeName="topp:states">
      <ogc:PropertyName>topp:STATE_NAME</ogc:PropertyName>
      <ogc:PropertyName>topp:PERSONS</ogc:PropertyName>
      <ogc:Filter>
        <ogc:BBOX>
          <ogc:PropertyName>the_geom</ogc:PropertyName>
          <gml:Box srsName="http://www.opengis.net/gml/srs/epsg.xml#

4326">
             <gml:coordinates>-75.102613,40.212597 -72.361859,41.512517</gml:coordinates>
          </gml:Box>
        </ogc:BBOX>
     </ogc:Filter>s
    </wfs:Query>
  </wfs:GetFeature>

GeoNode tiene como objetivo simplificar el proceso de publicación de contenido geoespacial en el servidor y exponerlo sin problemas a través de los protocolos estándar de OGC.

Enlace a la documentación oficial