European Commission logo
INSPIRE Community Forum

Limited guidance in technical guidelines for EL theme

I have just started transforming elevation dataset (rectified grid) using HALE and ran into some problems with the INSPIRE technical guidelines and, as far as I understand, its mismatch with the schema. Perhaps I have missed some pieces of the documentation?

1. domainSet section 5.5.1.2.2 specify an element named "extent", which probably shall specify the number of rows and columns in the dtm file. There is however no such element in the schema. There is a mandatory element named "limits", with "high" and "low" as sub-elements. Shall the extent be mapped to the "limits" or ...?

2. The instructions for rangeSet (section 5.5.1.2.3) is very limited, in fact not existent. fileReference is probably the URL to the grid file and fileStructure is probably 'raster'. But rangeParameters is a mndatory element, without any further advice.

3. Some elements in rangeType needs further clarification, for instance examples of field, description and definition. In addition, in which schema element shall constraint be expressed?

If someone have encountered similar problems and solved them, I would be very greatful if you shared your experiences with me (and everyone else).

Kind regards

Anders Östman

 

 

  • Jordi ESCRIU

    Hi Anders,

    Thank you for spotting these questions / implementation issues within the cluster!

    They exemplify that the technical guidelines (TGs) are not always clear, especially when they reuse inherited objects / properties defined in other related documents, and because they are defined at conceptual level (not at implementation level, which is what implementers are used to see - real data). Note also that time was scarce during the drafting of the TGs.

    I am not an encoding expert, but I will try to answer and guide you as possible:

    General clarification - Section 5.5.1.2 explains the concept of an "ElevationGridCoverage", based on the coverage structure defined in ISO 19123. The coverage properties that you are trying to implement (such as domainSet, rangeSet and rangeType) are conceptually defined in this standard.

    Specifically, this section explains that "ElevationGridCoverage" spatial object is a specialization of “RectifiedGridCoverage”, as defined in the Base model for Coverage Types. This is a common model for coverages to be used in the INSPIRE scope, which is part of D2.5 Generic Conceptual Model (See section 9.9 – Base models). For practical reasons, the previous section redirects you to a separate document where this common coverage model is defined: D2.10.2 Base models – Coverage Types. “RectifiedGridCoverage” is defined in this last document, including the properties referred.

    Issue 1

    Section 5.5.1.2.2 is referring to the characteristics / properties defined for the “CV_RectifiedGrid” class in ISO 19123.

    The attribute “extent” is defined in section 8.3.4 as “the limits of a section of the grid” (in fact defined for the class “CV_Grid”, parent class of “CV_RectifiedGrid”). It is an optional property and it is of type “CV_GridEnvelope”. This data type has two attributes, “low” and “high”:

    • low: the minimal coordinate values for all grid points within the grid value matrix – Example: (0, 0) in 2-dimensional grids – following recommendation 8 in the EL Technical Guidelines.

    • high: the maximal coordinate values for all grid points within the grid value matrix - Example: (maxColumns, masRows) in 2-dimensional grids – following recommendation 9 in the EL Technical Guidelines.

    So in my opinion your guess is correct!

    NOTE: This is implemented in GML through the elements “domainSet.limits.low” and “domainSet.limits.high”.

    You may be also interested in the following discussion topic in the Orthoimagery group:

    https://themes.jrc.ec.europa.eu/discussion/view/32920/inconsistencieserrors-found-in-the-inspire-tgs-on-orthoimagery

    Issue 2

    As you said, Section 5.5.1.2.3 just explains what the “rangeSet” is.

    Issue 3

    Section 5.5.1.2.4 provides some guidance for providing the “rangeType”, but not a full and complete example.

    Some resources that may help you:

    Chapter 9 of the EL TG explains the different options for encoding the rangeSet. They are summarized in the beginning of this discussion thread:

    https://themes.jrc.ec.europa.eu/discussion/view/2843/encoding-of-elevation-and-orthoimagery-coverages

    …and also in this presentation given in the “MIG workshop on WCS-based INSPIRE download service”:

    https://ies-svn.jrc.ec.europa.eu/attachments/download/739/20141015_ElevationDataModel-Coverages_JEscriu.pdf

    Section 9.4.2.1 of the EL TG provides an example taken from OGC 09-146r2, quite simple but may be helpful.

    You can also have a look at:

    The implementation of coverages is a tricky issue to deal with and implementers are not used to the structure derived from ISO 19123.

    I totally agree with you that further guidelines or explanations are needed to properly understand the documents. In my view, the MIG-T should work in providing data implementation examples for each INSPIRE theme and taking into account all the options available.

    Do you have any concrete ideas or recommendations to improve them?

    Jordi

  • Anders ÖSTMAN

    By Anders ÖSTMAN

    Hi Jordi, 

     

    and thanks for your quick response.

    I have a list of problems, that at least needs clarification in the technical guidelines. Perhaps changes in the schema is needed also. I have however not yet analyzed which schema to update.

    1. When creating an xml file, duplicate namespaces (ns1) are generated, one from an INSPIRE schema and one by a W3C schema. I don't think this is a software error by Hale, so I assume the INSPIRE schema needs to fix this.

    2. According to the schema, an id (not INSPIRE id) is mandatory in ElevationGridCoverage. As a work around, sequential id's may be generated.

    3. The same also in element domainSet.rectifiedGridDomain.choice.AbstractGeometry.RectifiedGrid 

    4. Set limits.GridEnvelope.high to ‘max_col,max_row’ and low to ‘0,0’ as you mention and update the text in the guidelines accordingly.

    5. The offset vectors should consist of a direction and grid spacing, for instance '0, 50' for x and '90 50' for y. Detailed guidelines on how to specify the direction and grid spacing in a text string is necessary.

    6. The rangeSet.choice.File.fileStructure needs to be specified, according to the schema. What are proper values to enter here? I have used 'raster' as a try, but I don't know if that is correct. Further guidance requested in the guidelines.

    7. According to the schema, rangeSet.choice.File.rangeParameters is mandatory. As a work around, I have put in a dummy value in the Title attribute. When doing that, the schema validator accepts it.

    Kind regards

    Anders

     

      

  • Jordi ESCRIU

    Dear Anders,

    All (or at least most of) the questions you are referring are common to implementation of coverages - I mean, not only applicable to the Elevation theme.

    Hence, I would propose to move this topic to the main group of the cluster.

    Regarding the new items you highlighted:

    1. I would prefer that somebody else - more expert on schema transformation and HALE - provides input on this potential issue.

    2. The identifier foreseen in the "ElevationGridCoverage" spatial object is in fact an "inspireId" - See TG Elevation v3.0 , e.g. diagram in page 36.

    3. Not sure what you are referring to with "the same also".

    4. The order of coordinates (column, row) is just a recommendation, so the guideline should be also generic. What we can do is provide an example following the recommendation, as you propose.

    5. OK in my view.

    6. I will have a look at the fileStructure element.

    7.  I will have a look at the rangeParameters element as well.

    As a general comment - I agree that further guidelines are needed to implement the coverage structure in GML, but probably as an annex in the TG - properly referenced from the Delivery chapter (section 9.4).

    What do you think?

    And the rest?

    Jordi
     

     

  • Anders ÖSTMAN

    By Anders ÖSTMAN

    Hi Jordi,

    OK to move to the main group

    2. No, I am not referring to the InspireId, instead the gml-Id, a convention that is not explained well in the TG. The gml-id is to be used if we want to create linkages to an aggregated coverage

    3. A gml-Id is also asked for in domainSet.rectifiedGridDomain.choice.AbstractGeometry.RectifiedGrid (or some other Id?). The same gml-Id as in pt 2? 

    4 and 5: We need to specify how to encode these elements

    Inclusion in an annex is fine for me

    About the rest: I did not have any other problems with the data specifications. What I have used is an index file, specifying the bounding box of each grid file and then generating one gml file for the entire coverage. So far, I have only made this exercise for a few countries yet, so there might be additional issues that people will experience.  

  • Jordi ESCRIU

    Hi Anders,

    Just one question... 

    Which document and version are you using to set up the GML schema?

    OGC GML Application Schema - Coverages (OGC 09-146r1)?

    Jordi

     

  • Anders ÖSTMAN

    By Anders ÖSTMAN

    Hi Jordi,

    I assume you refer to my point 1 above. As I have indicated, I have been using HALE software for schema transformation. The target schema is the INSPIRE EL schema version 4.0 (version 3.0 same error). HALE then reads automatically the schemas referenced in the INSPIRE schema. I have not have the need to consult the OGC specifications, just the xsd through the use of HALE.

    KR

    Anders

  • Jordi ESCRIU

    Dear All,

    coverage service for various (raster data) INSPIRE themes has been setup as a result of the related activities performed in the scope of the INSPIRE Community Forum (Thematic Clusters) during the last years, particularly based on the results from the Workshop “Feel the power of INSPIRE WCS / WCPS in your hands” organised in the INSPIRE Helsinki 2019 Technical Conference:

    http://inspire.rasdaman.org/

    The demo service allows the user to play with different service requests to get INSPIRE coverage data and metadata, analyse and combine different data layers (cross-theme fusion), download and present the final results. 

    It is specially designed to demonstrate use of coverages and WCS/WCPS for several INSPIRE themes: Elevation, Orthoimagery and Land cover - The service is powered by the rasdaman WCS reference implementation and offers sample data from a regional data provider (Institut Cartogràfic i Geològic de Catalunya, ICGC).

    The objectives are to:

    • Experience the potential of these technologies.
    • Fully-understand the main benefits of integrating them within their daily geospatial businesses and analytical tasks.

    ...but mainly:

    • Get feedback from the community on this functional good practice to align INSPIRE coverages to OGC standards, by amending in a simple, OGC compliant way the INSPIRE XSD coverage schemas (as INSPIRE coverage metadata).

    A related discussion thread has been open in the Software & Tools group of the INSPIRE Community Forum for this purpose:

    https://inspire.ec.europa.eu/forum/discussion/view/265095/inspire-coverages-demo-service

    Jordi

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