6 votos

Cómo llamar al método de DescribeFeatureType en OWSLib

Quiero ejecutar DescribeFeatureType funcionamiento de los servicios WFS. Sin embargo, no encuentro el método para realizar esta operación en OWSLib. ¿Puede alguien tener la amabilidad de decirme cómo hacerlo?

El siguiente es mi fragmento de código:

from owslib.wms import  WebMapService
from owslib.wfs import  WebFeatureService as wfsServericelayer

wfslayer=wfsServericelayer('http://***:8080/geoserver/test/ows')
for i in wfslayer.operations:
    print i.name

Da:

GetCapabilities
DescribeFeatureType
GetFeature

Pero, ¿cómo ejecutar el método DescribeFeatureType?

operationT=wfslayer.getOperationByName('DescribeFeatureType')

4voto

JL Peyret Puntos 133

Esta pregunta es un poco antigua pero sigue siendo la primera en Google, así que para quien se encuentre con ella.

Las propiedades de la operación DescribeFeatureType pueden recuperarse mediante el método WebFeatureService.get_schema.

Por ejemplo, para el siguiente XML devuelto por la operación DescribeFeatureType;

<xsd:schema xmlns:test="/" xmlns:gml="http://www.opengis.net/gml" xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="/">
    <xsd:import namespace="http://www.opengis.net/gml" schemaLocation="http://geoserver:8080/geoserver/schemas/gml/2.1.2/feature.xsd"/>
    <xsd:complexType name="change_points_latestType">
        <xsd:complexContent>
            <xsd:extension base="gml:AbstractFeatureType">
                <xsd:sequence>
                    <xsd:element maxOccurs="1" minOccurs="0" name="start" nillable="true" type="xsd:string"/>
                    <xsd:element maxOccurs="1" minOccurs="0" name="end" nillable="true" type="xsd:string"/>
                    <xsd:element maxOccurs="1" minOccurs="0" name="source" nillable="true" type="xsd:string"/>
                    <xsd:element maxOccurs="1" minOccurs="0" name="area_ha" nillable="true" type="xsd:decimal"/>
                    <xsd:element maxOccurs="1" minOccurs="0" name="class" nillable="true" type="xsd:string"/>
                    <xsd:element maxOccurs="1" minOccurs="0" name="quality" nillable="true" type="xsd:string"/>
                    <xsd:element maxOccurs="1" minOccurs="0" name="coord_x" nillable="true" type="xsd:decimal"/>
                    <xsd:element maxOccurs="1" minOccurs="0" name="coord_y" nillable="true" type="xsd:decimal"/>
                    <xsd:element maxOccurs="1" minOccurs="0" name="id" nillable="true" type="xsd:decimal"/>
                    <xsd:element maxOccurs="1" minOccurs="0" name="geom" nillable="true" type="gml:PointPropertyType"/>
                </xsd:sequence>
            </xsd:extension>
        </xsd:complexContent>
    </xsd:complexType>
    <xsd:element name="change_points_latest" substitutionGroup="gml:_Feature" type="test:change_points_latestType"/>
</xsd:schema>

Las propiedades pueden ser recuperadas;

 service = WebFeatureService(url, version='1.0.0')
 service.get_schema('change_points_latest')

Esto dará como resultado:

{'geometry': 'Point', 'properties': {'area_ha': 'decimal', 'class': 'string', 'start': 'string', 'id': 'decimal', 'source': 'string', 'coord_y': 'decimal', 'end': 'string', 'coord_x': 'decimal', 'quality': 'string'}}

Referencia: WebFeatureService_.get_schema source - https://github.com/geopython/OWSLib/blob/HEAD/owslib/feature/ init .py#L166

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X