You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 6 Next »

Introduction

The FEWS Web Feature is the FEWS implementation of the OpenGIS WFS 2.0 OGC standard and is available since 2023.01. It allows requesting GML or GeoJSON data for plots that have been configured in the FEWS grid display. The WFS service can be seen as a complementary to the WMS service as it supports only gridplot types that contain polygon data instead of grids, where the WMS service allows you to render these plots to images, the WFS service provides access to the underlying vector data. 

Only gridPlot items that have been configured in the grid display configuration to show polygon data can be currently be accessed as a WMS 'Feature Type'. Additional geographic information like configured LocationSets and s(hapefile) Map layers may also become available this way in the near future.

Developers documentation

For API Developers it is recommended to use the Open API Documentation. Please see: <Work in progress>

The official OpenGIS documentation consists of two documents, the OpenGIS Web Feature Service 2.0 Interface Standard and the OpenGIS Filter Encoding 2.0 Encoding Standard, both of which are ISO certified standards

WFS Request methods

The available request methods with their supported parameters are described here.

GetCapabilties

Get a list of the available polygon gridPlots, in WFS terminology these are 'FeatureTypes" and other information about the service. GetCapabilties will return its content as XML in accordance with the WFS 2.0 standard. Only the 2.0 version of this standard is supported.

Request parameters

  • the GetCapabilities request has no parameters

Response

When requesting the GetCapabilities an XML response with be given with all available polygon gridPlots. The XML schema unfortunately (unlike the WMS schema) does not allow them to be nested by gridPlotGroups.

Example request

http://localhost:8080/FewsWebServices/wfs?request=GetCapabilities


Example xml response

<?xml version="1.0" encoding="UTF-8"?>
<WFS_Capabilities version="2.0.0" xmlns="http://www.opengis.net/wfs/2.0" xmlns:gml="http://www.opengis.net/gml/3.2" xmlns:fes="http://www.opengis.net/fes/2.0" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:ows="http://www.opengis.net/ows/1.1" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:deltares="http://deltares.nl" xsi:schemaLocation="http://www.opengis.net/wfs/2.0 http://schemas.opengis.net/wfs/2.0/wfs.xsd http://www.opengis.net/ows/1.1 http://schemas.opengis.net/ows/1.1.0/owsAll.xsd">
    <ows:ServiceIdentification>
        <ows:Title>WFS Unit tests</ows:Title>
        <ows:ServiceType>WFS</ows:ServiceType>
        <ows:ServiceTypeVersion>2.0.0</ows:ServiceTypeVersion>
    </ows:ServiceIdentification>
    <ows:ServiceProvider>
        <ows:ProviderName>Deltares</ows:ProviderName>
    </ows:ServiceProvider>
    <ows:OperationsMetadata>
        <ows:Operation name="GetCapabilities">
            <ows:DCP>
                <ows:HTTP>
                    <ows:Get xlink:href="http://localhost/FewsWebServices/wfs"></ows:Get>
                </ows:HTTP>
            </ows:DCP>
            <ows:Parameter name="AcceptVersions">
                <ows:AllowedValues>
                    <ows:Value>2.0.0</ows:Value>
                </ows:AllowedValues>
            </ows:Parameter>
            <ows:Parameter name="AcceptFormats">
                <ows:AllowedValues>
                    <ows:Value>text/xml</ows:Value>
                </ows:AllowedValues>
            </ows:Parameter>
        </ows:Operation>
        <ows:Operation name="DescribeFeatureType">
            <ows:DCP>
                <ows:HTTP>
                    <ows:Get xlink:href="http://localhost/FewsWebServices/wfs"/>
                </ows:HTTP>
            </ows:DCP>
            <ows:Parameter name="outputFormat">
                <ows:AllowedValues>
                    <ows:Value>application/gml+xml; version=3.2</ows:Value>
                </ows:AllowedValues>
            </ows:Parameter>
        </ows:Operation>
        <ows:Operation name="ListStoredQueries">
            <ows:DCP>
                <ows:HTTP>
                    <ows:Get xlink:href="http://localhost/FewsWebServices/wfs"/>
                </ows:HTTP>
            </ows:DCP>
        </ows:Operation>
        <ows:Operation name="DescribeStoredQueries">
            <ows:DCP>
                <ows:HTTP>
                    <ows:Get xlink:href="http://localhost/FewsWebServices/wfs"/>
                </ows:HTTP>
            </ows:DCP>
        </ows:Operation>
        <ows:Operation name="GetFeature">
            <ows:DCP>
                <ows:HTTP>
                    <ows:Get xlink:href="http://localhost/FewsWebServices/wfs"/>
                </ows:HTTP>
            </ows:DCP>
            <ows:Parameter name="outputFormat">
                <ows:AllowedValues>
                    <ows:Value>application/gml+xml; version=3.2</ows:Value>
                    <ows:Value>application/geo+json</ows:Value>
                    <ows:Value>application/json</ows:Value>
                </ows:AllowedValues>
            </ows:Parameter>
        </ows:Operation>
        <ows:Parameter name="AcceptVersions">
            <ows:AllowedValues>
                <ows:Value>2.0.0</ows:Value>
            </ows:AllowedValues>
        </ows:Parameter>
        <ows:Constraint name="ImplementsBasicWFS">
            <ows:NoValues/>
            <ows:DefaultValue>TRUE</ows:DefaultValue>
        </ows:Constraint>
        <ows:Constraint name="ImplementsTransactionalWFS">
            <ows:NoValues/>
            <ows:DefaultValue>FALSE</ows:DefaultValue>
        </ows:Constraint>
        <ows:Constraint name="ImplementsLockingWFS">
            <ows:NoValues/>
            <ows:DefaultValue>FALSE</ows:DefaultValue>
        </ows:Constraint>
        <ows:Constraint name="KVPEncoding">
            <ows:NoValues/>
            <ows:DefaultValue>TRUE</ows:DefaultValue>
        </ows:Constraint>
        <ows:Constraint name="XMLEncoding">
            <ows:NoValues/>
            <ows:DefaultValue>FALSE</ows:DefaultValue>
        </ows:Constraint>
        <ows:Constraint name="SOAPEncoding">
            <ows:NoValues/>
            <ows:DefaultValue>FALSE</ows:DefaultValue>
        </ows:Constraint>
        <ows:Constraint name="ImplementsInheritance">
            <ows:NoValues/>
            <ows:DefaultValue>FALSE</ows:DefaultValue>
        </ows:Constraint>
        <ows:Constraint name="ImplementsRemoteResolve">
            <ows:NoValues/>
            <ows:DefaultValue>FALSE</ows:DefaultValue>
        </ows:Constraint>
        <ows:Constraint name="ImplementsResultPaging">
            <ows:NoValues/>
            <ows:DefaultValue>FALSE</ows:DefaultValue>
        </ows:Constraint>
        <ows:Constraint name="ImplementsStandardJoins">
            <ows:NoValues/>
            <ows:DefaultValue>FALSE</ows:DefaultValue>
        </ows:Constraint>
        <ows:Constraint name="ImplementsSpatialJoins">
            <ows:NoValues/>
            <ows:DefaultValue>FALSE</ows:DefaultValue>
        </ows:Constraint>
        <ows:Constraint name="ImplementsTemporalJoins">
            <ows:NoValues/>
            <ows:DefaultValue>FALSE</ows:DefaultValue>
        </ows:Constraint>
        <ows:Constraint name="ImplementsFeatureVersioning">
            <ows:NoValues/>
            <ows:DefaultValue>FALSE</ows:DefaultValue>
        </ows:Constraint>
        <ows:Constraint name="ManageStoredQueries">
            <ows:NoValues/>
            <ows:DefaultValue>FALSE</ows:DefaultValue>
        </ows:Constraint>
        <ows:Constraint name="wfs:StoredQuery">
            <ows:NoValues/>
            <ows:DefaultValue>FALSE</ows:DefaultValue>
        </ows:Constraint>
    </ows:OperationsMetadata>
    <FeatureTypeList>
        <FeatureType>
            <Name>deltares:full_extent_cta_clean</Name>
            <Title>SFINCS full extent</Title>
            <DefaultCRS>urn:ogc:def:crs:EPSG::4326</DefaultCRS>
            <OtherCRS>urn:ogc:def:crs:EPSG::4326</OtherCRS>
            <OtherCRS>urn:ogc:def:crs:EPSG::3857</OtherCRS>
            <ows:WGS84BoundingBox>
                <ows:LowerCorner>125.095000 -37.527500</ows:LowerCorner>
                <ows:UpperCorner>153.637500 -10.020000</ows:UpperCorner>
            </ows:WGS84BoundingBox>
        </FeatureType>
        <FeatureType>
            <Name>deltares:full_extent_cta</Name>
            <Title>SFINCS full extent (not clean)</Title>
            <DefaultCRS>urn:ogc:def:crs:EPSG::4326</DefaultCRS>
            <OtherCRS>urn:ogc:def:crs:EPSG::4326</OtherCRS>
            <OtherCRS>urn:ogc:def:crs:EPSG::3857</OtherCRS>
            <ows:WGS84BoundingBox>
                <ows:LowerCorner>125.095000 -37.527500</ows:LowerCorner>
                <ows:UpperCorner>153.637500 -10.020000</ows:UpperCorner>
            </ows:WGS84BoundingBox>
        </FeatureType>
    </FeatureTypeList>
</WFS_Capabilities>

Note: in this example a deltares namespace is used to identify items that originate from FEWS, as identified by xmlns:deltares="http://deltares.nl". This is used as prefix for the gridplot-id values that have been taken from the spatial display configuration, The WFS standard more or less requires this. The namespace used by the WFS service can be changed in the Webservices.xml configuration.

GetFeature

Get the polygon GridPlot vector data in GML or GeoJSON format, the GridPlot to get is specified by the FeatureTypes parameter.

Request parameters

  • typeNames (required): the gridPlot id of the plot to display. Only one gridPlot id is supported.
  • version (optional): supported version is 2.0 and is the default if not set. Older versions are not supported
  • crs (optional): the output projection of the plot. The default projection used by FEWS is always EPSG:4326 (unprojected WGS84 longitude, latitude) Other projections are supported only if they are configured in webservices.,xml. 
  • bbox (optional): the bounding box (in the projection as defined by the CRS parameter) of the extent of interest. Features that completely lie outside the BBOX area will not be returned.
  • format (optional, 'application/gml+xml; version=3.2' is the default): GML is the standard output format any WFS implementation must support, optionally 'application/geo json'  can be requested, which is more compact and generally easier to process..

Vendor specific request parameters

  • time (optional): the time for which the polygon data is requested. Only one time is supported. Time ranges are NOT supported. Time has to be in the xml dateformat:  yyyy-MM-ddTHH:mm:ssZ. The time parameter is identical to that of the FEWS WMS service for practical reasons. Please note that any options the OpenGIS Filter specifications offer to define a temporalk extent have not been implemented in FEWS WFS.

Restrictions:

  • There currently are no restrictions on the output size of the WFS service, paging options that may help dealing with very large datasets have not yet been implemented.

Response

GML 3 or GeoJSON vector data of the requested polygon gridPlot for the specified time. if no time is specified the last available timestep will be returned.

Example request

http://localhost:8080/FewsWebServices/wfs?service=wfs&request=GetFeature&typenames=r-1_shapeFWA

Example response:

The typical response in GML or GeoJSON for polygon date is too large to be displayed here.

DescribeFeatureType

Provides a detailed description of one or more feature types, the most important function of this request is to list the available feature attributes (FEWS timeseries properties). The output format is a XML schema.

Request parameters

  • typeNames (required): the gridPlot id of one or more plots to display. if this is not specified a list of feature types is provided as a list of uri's
  • version (optional): supported version is 2.0 and is the default if not set. Older versions are not supported.

Example request

http://localhost:8080/FewsWebServices/wfs?service=wfs&request=DescribeFeatureType=r-1_shapeFWA&TypeNames=deltares:r-1_shapeFWA

Example response:

<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:gml="http://www.opengis.net/gml/3.2" xmlns:wfs="http://www.opengis.net/wfs/2.0" xmlns:deltares="http://deltares.nl" targetNamespace="http://deltares.nl">
    <xsd:import namespace="http://www.opengis.net/gml/3.2" schemaLocation="http://schemas.opengis.net/gml/3.2.1/gml.xsd"/>
    <xsd:complexType name="r-1_shapeFWAType">
        <xsd:complexContent>
            <xsd:extension base="gml:AbstractFeatureType">
                <xsd:sequence>
                    <xsd:element minOccurs="0" name="geometry" nillable="true" type="gml:MultiGeometryPropertyType"/>
                    <xsd:element minOccurs="0" name="model_type" nillable="true" type="xsd:string"/>
                    <xsd:element minOccurs="0" name="model_reg" nillable="true" type="xsd:string"/>
                    <xsd:element minOccurs="0" name="model_id" nillable="true" type="xsd:string"/>
                    <xsd:element minOccurs="0" name="model_name" nillable="true" type="xsd:string"/>
                    <xsd:element minOccurs="0" name="issue_freq" nillable="true" type="xsd:string"/>
                    <xsd:element minOccurs="0" name="t_issue" nillable="true" type="xsd:string"/>
                    <xsd:element minOccurs="0" name="t_step_int" nillable="true" type="xsd:string"/>
                    <xsd:element minOccurs="0" name="variable" nillable="true" type="xsd:string"/>
                    <xsd:element minOccurs="0" name="prod_type" nillable="true" type="xsd:string"/>
                    <xsd:element minOccurs="0" name="t_start" nillable="true" type="xsd:string"/>
                    <xsd:element minOccurs="0" name="t_end" nillable="true" type="xsd:string"/>
                    <xsd:element minOccurs="0" name="t_length" nillable="true" type="xsd:string"/>
                    <xsd:element minOccurs="0" name="bom_region" nillable="true" type="xsd:string"/>
                    <xsd:element minOccurs="0" name="current" nillable="true" type="xsd:string"/>
                    <xsd:element minOccurs="0" name="expired" nillable="true" type="xsd:string"/>
                    <xsd:element minOccurs="0" name="remarks" nillable="true" type="xsd:string"/>
                </xsd:sequence>
            </xsd:extension>
        </xsd:complexContent>
    </xsd:complexType>
    <xsd:element name="r-1_shapeFWA" substitutionGroup="gml:AbstractFeature" type="deltares:r-1_shapeFWAType"/>
</xsd:schema>


ListStoredQueries

Get a list of 'stored queries' a WFS supports, in this case the only stored query supported is the so-called "GetFeatureById" stored query. This request has been implemented as the WFS 2.0 lists it as a requirement for the "Simple" implementation of a WFS 2.0 service. It will most likely not be of much value to your project as the id's used mainly for the generation of GML output are assigned sequentially, they are not linked to a specific property or attribute in FEWS.

Request parameters

  • version (optional): supported version is 2.0 and is the default if not set. Older versions are not supported

Example request

http://localhost:8080/FewsWebServices/wfs?service=wfs&request=ListStoredQueries

Example response:

<?xml version="1.0" encoding="UTF-8"?>
<ListStoredQueriesResponse  xmlns="http://www.opengis.net/wfs/2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.opengis.net/wfs/2.0 http://schemas.opengis.net/wfs/2.0.0/wfs.xsd">
    <StoredQuery id="urn:ogc:def:query:OGC-WFS::GetFeatureById">
        <Title>Get feature by identifier</Title>
    </StoredQuery>
</ListStoredQueriesResponse >


DescribeStoredQueries

Get a more detailed description of 'stored queries' a WFS supports, in this case the only stored query supported is the so-called "GetFeatureById" stored query. This request has been implemented as the WFS 2.0 lists it as a requirement for the "Simple" implementation of a WFS 2.0 service. It will most likely not be of much value to your project as the id's used mainly for the generation of GML output are assigned sequentially, they are not linked to a specific property or attribute in FEWS.

Request parameters

  • version (optional): supported version is 2.0 and is the default if not set. Older versions are not supported

Example request

http://localhost:8080/FewsWebServices/wfs?service=wfs&request=DescribeStoredQueries

Example response:

<?xml version="1.0" encoding="UTF-8"?>
<DescribeStoredQueriesResponse  xmlns="http://www.opengis.net/wfs/2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.opengis.net/wfs/2.0 http://schemas.opengis.net/wfs/2.0.0/wfs.xsd">
    <StoredQueryDescription id="urn:ogc:def:query:OGC-WFS::GetFeatureById">
        <Title>Get feature by identifier</Title>
        <Parameter name="id" type="xs:string"/>
        <QueryExpressionText isPrivate="false" language="urn:ogc:def:queryLanguage:OGC-WFS::WFS_QueryExpression" returnFeatureTypes=""/>
    </StoredQueryDescription>
</DescribeStoredQueriesResponse>


Properties

The following WFS specific properties can be configured in the webservices.xml configuration:

<Work in progress>


  • No labels