View on GitHub

geonode-training

Adding Data to GeoNode

Introduction to OGC

From the OGC home page:

The OGC (Open Geospatial Consortium) is an international not for profit organization committed to making quality open standards for the global geospatial community. These standards are made through a consensus process and are freely available for anyone to use to improve sharing of the world’s geospatial data.

OGC provides standard for both data and protocols to exchange it.

Data standards

Some example of standards at the data level include:

GeoNode supports the above as either inputs or outputs.

Styling standards

OGC has created SLD (Styled Layer Descriptor) to define an encoding that extends the Web Map Service (WMS) standard to allow user-defined symbolization as a styling rules of geographic features and created SE (Symbology Encoding) as an styling language that the client and server can both understand. See the Pretty maps with GeoNode section for further details.

Protocol standards

Protocols define how network communication must take place between two systems. The OGC has defined several protocols classified appropriately by INSPIRE in the following classes:

image

The idea is simple. A user would first use a Discovery service to locate the data of interest, then would use a View service for a visual inspection. Once satisfied, eventually to download the data for offline usage, or to use a Transformation service to perform an online spatial analysis.

Discovery services are implemented using CSW (Catalog Services for the Web), a protocol designed with a standards-based interface to discover, browse, and query metadata of geospatial data. An interaction with a CSW (e.g., pycsw) typically leads to find links to other OGC protocols to view and download the data. GeoNode has a CSW module that’s allows to search for datasets and contents.

View services are implemented using WMS (Web Map Service) and WMTS (Web Map Tile Service), a stanard HTTP protocols that allow a client to view maps images from one or more distributed geospatial databases. The latter are the easiest services to use and understand, they simply provide a list of maps that can be displayed and combined in a browser application, eventually queried, but not modified or changed. You can learn more about WMS in the next sections.

Download services are implemented using WFS (Web Feature Service) and WCS (Web Coverage Service, protocols allow downloading the source data behind maps, either in vector (WFS) or raster (WCS) formats, allowing to perform the following extra actions during the download:

Transformation services are used to perform online spatial analysis on vector and raster data. The protocol used in this case is WPS (Web Processing Service).

Common requests in protocol standards

A client makes requests in order to interact with a service. Each request has a different role also different services show different calls, but there are a few common points.

Here are common requests and their meaning:

These requests are normally performed in sequence by the client. Each one enables the usage of the next one.

image

Ways to encode requests

Requests in OGC protocols can normally be performed using two different paradigms:

  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
  <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 aims to simplify the process of publishing geospatial contents to the server and seamplessly expose them through the OGC Standard protocols.

In the next section we will learn how to publish basic geospatial data types into GeoNode.

Next Section: Adding base types