European Commission logo
INSPIRE Community Forum

Soil Theme - struggling with conversion to SoilSite, SoilPlot and ObservedSoilProfile in FME

  • General

    The INSPIRE Community Forum is now part of the INSPIRE helpdesk system, based on GitHub (, so please start there any new discussions.

    The current platform will remain available in read only mode in its current form and URL address until 31/01/2021, then its content will be archived and then published in a different URL which will be announced when it becomes available.

Malcolm COULL
By Malcolm COULL Replies (4)

Hello everyone

I am hoping someone might be able to give me a little help in completing a conversion to get a set of soil profiles (currently as a point shapefile) into compliant GML.

Firstly, I am using FME 2020 but I don't have access to the INSPIRE Solution pack so please don't suggest anything which relies on that - we can't afford it!
Secondly, although I have read the INSPIRE Data Specification on Soil–Technical Guidelines quite a few times, I still don't think I fully understand how all of the elements relate to each other, so apologies if I have made any false assumptions.
Thirdly, I have previously asked a couple of questions relating to INSPIRE on the FME forums but this is much too specialised for them beyond the actual technical way to implement this in FME so they haven't been able to provide any meaningful suggestions.

My understanding from the specification is that a SoilSite contains a SoilPlot which in turn contains an ObservedSoilProfile. I have a workspace set up which has a GML writer using Soil 4.0 as output. It gets most of the way there in terms of generating the required elements, but when I come to write the final output for SoilSite, there is no option for text to describe soilInvestigationPurpose. There are a number of 'sub' attributes - soilInvestigationPurpose.owns, .nilReason, .gml_remoteSchema, .xlink_href, .xlink_role and .xlinktitle, so where do I put soilInvestigationPurpose Value (specificSoilSurvey)?

I then expected there to be a way to 'link' to a SoilPlot but rather than anything like 'contains' the writer only has 'isObservedOnLocation' which appears to be the wrong way round!

The SoilPlot writer seems to be much more obvious in that I can see how to write soilPlotLocation although again, I don't quite follow how to write soilPlotType Value. Similarly for observedSoilProfile and locatedOn - what are all the sub attributes like .owns, .xlink_href etc. and am I supposed to provide values for them?

Any help greatly appreciated!

  • Linton Donovan

    By Linton Donovan

    Hi Malcolm,

    I am using Hale (and not FME) for the harmonisation of the datasets in Soil-theme, but I think I can help you anyway.

    A SoilSite contains a SoilPlot (and is as such observed on that location). Also the other way can be used as a SoilPlot is located on a SoilSite. Beware for automated process here, as you might create an endless loop in this, pointing to each other. The SoilPlot is the actual geometry of the ObservedSoilProfile, so there is a direct link between them (the location of the ObservedSoilProfile is SoilPlot with its soilPlotLocation).

    The soilInvestigationPurpose is assigned by the codelist SoilInvestigationPurposeValue in the 'sub' attribute xlink_href. In your case that should be . Next to that you can also use xlink_title to give it a more readable name ("Specific Soil Survey"), but this is not required.

    Same for the soilPlotType. It is assigned by the codelist SoilPlotTypeValue in the 'sub' attribute xlink_href. This could possibly be:

    An overview of codelists in Soil-theme can be found here:

    I hope this answers your questions.


  • Katharina SCHLEIDT

    By Katharina SCHLEIDT

    Hi Linton,

    since you seem fairly advanced in the process of creating INSPIRE Soil data, think you could provide some XML examples for the wider community? Guidance documents are good, but from what I see, we're missing good examples!



  • Malcolm COULL

    Hi Linton

    That is very helpful, thanks. I'll need to work out how to do it in FME, but that's at least given me something to work on as I was at a brick wall before. 

    If I understand it correctly from your description, the xlink_href will work for any attribute which has a code list. Are all of the other 'sub' attributes like .owns and .xlink_title optional, and is there a page in the documentation that explains them in more detail?

    Thanks again


  • Linton Donovan

    By Linton Donovan

    Hi Malcolm,

    Xlink_href will work for all codelists as well as any external link you need to refer to. I guess you can find some more information in this document: (Annex C and D is what you are looking for).


Earth Science

Earth Science

Join this group to share your knowledge, learn and collaborate with INSPIRE Earth Science Cluster for Geology, Soils, Natural Risk Zones, Mineral resources, and Energy resources