European Commission logo
INSPIRE Community Forum

domainExtent vs gml:boundedBy (EL & OI coverages encoding)

Peter Parslow opened the following discussion topic in the Elevation subgroup, making a new proposal to encode the domain extent of (ISO 19123) INSPIRE coverages using gml:boundedBy

https://themes.jrc.ec.europa.eu/discussion/view/12877/domainextent-vs-gmlboundedby

Original description from Peter:
Given that the purpose (within the INSPIRE specification) of the ISO 19123 domainExtent attribute is to describe the spatial extent of the domain, why not implement it with gml:boundedBy? As it stands, the feature should have both a gml:boundedBy (from GML good practice) and an inspire/ISO domainExtent, containing the same geometry encoded in a different way.

Since the proposal is not only valid for Elevation coverages, but also for Orthoimagery ones (and any other INSPIRE coverages in general), please use this new discussion topic in the parent Cluster group for further discussion.

Feel free to participate!

 

  • James PASSMORE

    By James PASSMORE

    We created a Web Coverage Service (WCS) using Rasdaman/Petascope and serving inter al. some multi-band Landsat imagery.  We tried to follow existing INSPIRE Technical Guidelines for Download services though WCS is not yet explicitly included

    http://earthserver.bgs.ac.uk/rasdaman/ows?service=WCS&Request=GetCapabilities&acceptversions=2.0.1&

    Here's a DescribeCoverage request for a Landsat tile

    http://earthserver.bgs.ac.uk/rasdaman/ows?service=WCS&Request=DescribeCoverage&version=2.0.1&CoverageId=l7_refl_p205r021d20000717&

    Is this sufficient?

     

  • Jordi ESCRIU

    Dear James,

    Thank you for your exemple - It clearly shows the use of gml:boundedBy.

    If I am not misunderstanding Peter, he was referring to the fact that the current technical guidelines (TG) foresees the 'domainExtent' attribute (with cardinaty [1..*] and type 'EX_Extent'). It is defined as 'Extent of the spatiotemporal domain of the coverage' - This attribute (from ISO 19123) is mandatory in the EL, OI data models and overlaps with the gml:boundedBy element.

    Therefore, I guess:

    • At least, there should be explained in the TG (e.g. in a note) that the spatial extent of the coverage domain shall be implemented using gml:boundedBy (according GML good practice).
    • At the moment, the data models are requiring the attribute 'domainExtent' - When implemented, this attribute constitute a duplication of gml:boundedBy element.
    • This last aspect is probably not appropriate, because the duplication.

    What is your view here?

    Shall we go for a solution to avoid the mentioned duplication?

     

     

     

     

  • Jordi ESCRIU

    Hi Peter,

    Do you agree with the guesses I stated in my previous message?

  • Peter PARSLOW

    Yes, that's what I meant. Should we change the INSPIRE EL & OI data models, removing domainExtent, or stating that it shall be implemented with gml:boundedBy.

    I hadn't spotted that the maximum multiplicity is *. What's that for? If it's useful/necessary, then of course it is distinct from the boundedBy element.

  • Jordi ESCRIU

    Thank you Peter!

    The 'domainExtent' attribute is defined as 'Extent of the spatiotemporal domain of the coverage'

    If I am not wrong, the maximum multiplicity * is to allow expressing the spatial extent of the coverage domain, but also the temporal extent.

    I assume that gml:boundedBy only covers the first one. Am I right?

  • James PASSMORE

    By James PASSMORE

    I assume that gml:boundedBy only covers the first one. Am I right?

    I think in fact that you could substitute  gml:Envelope with gml:EnvelopeWithTimePeriodType here to cover the temporal extent.  So you might get something like:

     

        <boundedBy>
          <EnvelopeWithTimePeriod srsName="http://www.opengis.net/def/crs/EPSG/0/27700&quot; axisLabels="E N" uomLabels="metre metre" srsDimension="2">
            <lowerCorner>163876.0800450378045 550400.3953369772835</lowerCorner>
            <upperCorner>425851.1756184554855 790741.3817231221955</upperCorner>
            <beginPosition>2000-07-17T00:00:00Z</beginPosition>
            <endPosition>2000-07-17T00:00:01Z</endPosition>
          </EnvelopeWithTimePeriod>
        </boundedBy>

     

     

  • James PASSMORE

    By James PASSMORE

    However if your coverage has three dimensions (x,y,z) or four dimensions (x,y,z,t) etc. then the gml:boundedBy/gml:Envelope  or gml:boundedBy/gml:EnvelopeWithTimePeriod won't provide you with the full domain extent I think.

  • Peter PARSLOW

    James, gml:Envelope can have as many dimensions as you like.

    ISO 19123 doesn't give any idea of what the * is for, as the maximum multiplicity of domainExtent. It can't be to do with expressing temporal extent, because that can be expressed as James suggests, or using a spatio-temporal CRS. It "must" be there for discontnuous extents.

    Perhaps I should withdraw this discussion though, because domainExtent is mandatory in ISO 19123. And if/as it allows discontinuous extents, it is significantly different to gml:boundedBy, which is only there to give the absolute outer bounds of the dataset. I see now that both are needed, and withdraw my comment.

  • James PASSMORE

    By James PASSMORE

    gml:Envelope can have as many dimensions as you like

    Peter, are you sure that's the case?

    I'm looking at http://schemas.opengis.net/gml/3.2.1/feature.xsd

    <element name="boundedBy" nillable="true" type="gml:BoundingShapeType">
        <annotation>
            <documentation>
    This property describes the minimum bounding box or rectangle that encloses the entire feature.
            </documentation>
        </annotation>
    </element>
    
    <complexType name="BoundingShapeType">
        <sequence>
            <choice>
                <element ref="gml:Envelope"/>
                <element ref="gml:Null"/>
            </choice>
        </sequence>
        <attribute name="nilReason" type="gml:NilReasonType"/>
    </complexType>
    

    and for envelope

    http://schemas.opengis.net/gml/3.2.1/geometryBasic0d1d.xsd

    <complexType name="EnvelopeType">
        <choice>
            <sequence>
                <element name="lowerCorner" type="gml:DirectPositionType"/>
                <element name="upperCorner" type="gml:DirectPositionType"/>
            </sequence>
            <element ref="gml:pos" minOccurs="2" maxOccurs="2">
            <annotation>
                <appinfo>deprecated</appinfo>
            </annotation>
            </element>
            <element ref="gml:coordinates"/>
        </choice>
        <attributeGroup ref="gml:SRSReferenceGroup"/>
    </complexType>
    <element name="Envelope" type="gml:EnvelopeType" substitutionGroup="gml:AbstractObject">
        <annotation>
            <documentation>
            Envelope defines an extent using a pair of positions defining opposite corners in arbitrary dimensions. The first direct position is the "lower corner" (a coordinate position consisting of all the minimal ordinates for each dimension for all points within the envelope), the second one the "upper corner" (a coordinate position consisting of all the maximal ordinates for each dimension for all points within the envelope). The use of the properties "coordinates" and "pos" has been deprecated. The explicitly named properties "lowerCorner" and "upperCorner" shall be used instead.
            </documentation>
        </annotation>
    </element>
    

    What am I missing?

  • Peter PARSLOW

    At the risk of sounding patronising, I think you are missing the distinction between 'dimensions' and 'things controlled by the XSD'.

    As it says in the documentation element of the Envelope:

    The first direct position is the "lower corner" (a coordinate position consisting of all the minimal ordinates for each dimension for all points within the envelope), the second one the "upper corner" (a coordinate position consisting of all the maximal ordinates for each dimension for all points within the envelope). 

    For example, an Envelope in 5 dimensional space could be expressed as

    <Envelope srsName='...' srsDimension='5'>

        <lowerCorner>1 1 3 4 5</lowerCorner>

        <upperCorner>10 11 7 9 8</upperCorner>

    </Envelope>

    I've no idea whether any software would cope with this, I'm just saying it is what the standard allows. The same text appears at 10.1.4.6 in either ISO 19136 or OGC 07-036.

Elevation, Ortho & Grids

Elevation, Ortho & Grids

INSPIRE Thematic Cluster Elevation, Orthoimagery, Reference systems, Geographical grids - Join this group to share your knowkledge, learn and collaborate in solving issues related to the Elevation, Orthoimagery, Reference systems and Geographical grids themes