European Commission logo
INSPIRE Community Forum

INSPIRE download services published providing INSPIRE compliant PS data

Dear all,

We (Finnish Environment Institute, SYKE) have now published two INSPIRE dowonload services providing datasets compliant with the PS application scehma.

1) A WFS providing PS datasets according to the INSPIRE Protected Sites application schema: http://geoserver.ymparisto.fi/geoserver/wfs?service=wfs&version=2.0.0&request=GetCapabilities

(Comment: it fulfils IR requirements, but not the TG requirement for download services 5.2 as we provide both Natura 2000 sites and Nationally Designated Protected areas through the same service endpoint)

2) An Atom feed providing two separate datasets (Natura 2000 sites and Nationally Designated Protected areas) according to the PS application schema:

http://wwwd3.ymparisto.fi/d3/INSPIREAtom/inspireatomgml.xml

(Comment: it lacks 'open search' support because our national INSPIRE geoportal is based on geonetwork and geonetwork does not support 'open search' in a proper manner yet)

Both services are BETA versions, which means: 1) we have not tested performance issues (our geoserver environment is only a test, not a production environment..), 2) only 1000 spatial objects can be retrieved from the WFS service per request etc.

However, any feedback from your side is mostly welcome!

On behalf of SYKE's team,

Lena

  • Sorin RUSU

    Hey Lena,

    Thank you for sharing and congratulations to the SYKE team for this acomplishment. There are still some issues with the GML data that you are serving. I have run a test on 3 PS from your WFS through the data validator at EPSILON ITALIA, based on the OGC Team Engine Validator for GML data.

    When you try to validate you get three error messages:

    (1) geometry error: Exterior boundary of surface with @gml:id='' is not oriented CCW with respect to the up-normal. expected [true] but found [false]
    (2) id error: Attribute 'id' must appear on element 'gml:Polygon'
    (3) bounding box (aka envelope): //gml:Envelope[1] has unknown CRS (srsName: null) expected object to not be null

    I saw that you are using Geoserver 2.9 to serve the data (we have also worked with it to very good results, in conjunction with HALE) and I am guessing that you are using the AppSchema and INSPIRE plugins to serve the data. I am also assuming that you are using an PostgreSQL/PostGIS database.

    Error no.1 relates to how the geometry is read in QGIS from formats like Shapefiles (CCW instead of CW). We found that SQL Server/Oracle databases force-stores geometry with the "right" orientation, while PostGIS can work with geometry both CCW and CW. I recommend taking a look at slide 18 from our presentation at the INSPIRE conference to see how we managed to work around this issue. Link to the public presentation:
    http://inspire.ec.europa.eu/events/conferences/inspire_2016/pdfs/2016_psessions/29%20THURSDAY_PSESSIONS_H3_14.00-15.30______SorinRUSU-Teamnet-INSPIRE_Challanges.pdf

    Error no.2 is simple enough, just add a AppSchema mapping to the polygon ID so that if a PS has an id similar to "PS.EMA120001" the polygons would likely have "GEOM.PS.EMA120001" for the poly.

    Error no.3 is a known Geoserver bug, which you can get rid of if you stop calculating the bounding box on WFS members. I have raised a bug for this issue, but has seen little traction. https://osgeo-org.atlassian.net/browse/GEOS-7660

    Also there is an issue with the WMS service; it gives an error that generic.sld is not available for the resource. It would be nice to also see the data without going through the process of actually downloading all the data.

  • Stefania MORRONE

    By Stefania MORRONE

     

    Hi Lena,

    regarding the CCW orientation validation issue, a very interesting discussion can be found here. Read carefully also the last replies to the post. Anyway, this error is related to the respect of ISO19107 requirement (referred to by GML Specification) asking for orientation of the surface boundary to be consistent with the upward normal i.e. exterior boundary counterclockwise and interior boundaries clockwise. The workaround suggested by Sorin - using two databases - is a feasible one. Anyway, if you are using HALE (version 2.9.5 or subsequent releases) to upload your data directly to GeoServer instance by means of WFS-T export function, you could use the “Unify Winding order”  feature, which lets you specify a CCW orientation for the polygons (p.s. I used it for 'small' datasets - up to 10000 records - and it works, but I never tested with bigger datasets).

    Best,

    Stefania

  • Johanna OTT

    Hi Lena,

    I looked at your data and have questions concerning the attributes

    • For the inspireId.versionId.nilReason and other nilReason-attributes you are using single values (e.g. "unpopulated") and for the legalFoundationDocument.nilReason you are using links to the codelist (e.g. http://inspire.ec.europa.eu/codelist/VoidReasonValue/Unpopulated). Can you explain my why you are using different kind of nilReason-values?
    • In the GML the attribute legalFoundationDocument is filled (at least when I am opening it with FME Inspector) even though the value for legalFoundationDocument.xsi_nil is true and legalFoundationDocument.nilReason attribute is filled as well. Is that in purpose?

    Best wishes

    Johanna

     

  • Lena Hallin-Pihlatie

    By Lena Hallin-Pihlatie

    Dear Sorin, Stefania and Johanna,

    Thank you for your feedback, concrete suggestions and detailed questions. Your input is the only feedback we have got to these datasets and services so far and it is very valuable for us when developing them further. I cannot answer your questions from the top of my head. I will need look into these issues with the rest of our team and get back to you.

    Best regards,

    Lena 

     

  • Stefania MORRONE

    By Stefania MORRONE

    Hi all,

    I just want to add a consideration relevant to the nilreason attribute. In the Data Specifications (in the "Voidable Characteristic" Section) we read that "The reason for a void value should be provided where possible using a listed value from the VoidReasonValue code list to indicate the reason for the missing value". Therefore the most correct way to provide a nilreason is by means of the http URI e.ghttp://inspire.ec.europa.eu/codelist/VoidReasonValue/Unpopulated.

    Please take into consideration that the inspireId.versionId has minOccurs="0". in the abovementioned Section of the Data Specifications we also read that "In cases where the minimum multiplicity is 0, the absence of a value indicates that it is known that no value exists, whereas a value of void indicates that it is not known whether a value exists or not". Therefore, should you be sure that no value exists for the versionId in your data, you could simply omit to provide the versionId.

    Hope this helps

    Stefania  

  • Lena Hallin-Pihlatie

    By Lena Hallin-Pihlatie

    Dear Sorin, Stefania, Johanna, all,

    Once more  a big  thank you for your questions, feedback and suggestions!

    Here are our answers:

    @Sorin:

    1) We have changed the orientation for spatial objects in FME when creating the GML-files provided by the Atom feed, but apparently forgot to do the same procedure for the PostGIS database.

    2) True. We are missing the attribute mapping the gml:id of the geometry properties in AppSchema configuration.

    3) Regarding the missing CRS in the <wfs:boundedBy>. We haven't deliberately put on any calculation, so we don't know how to take the calculation off, as this part is included automatically. Any advice from your side?

    4) Our intention was only to publish a WFS, but we see that we need to make make and point at a valid SLD file here as a WMS service is also generated automatically.

    @Johanna

    5) This is a mistake from our side, the references should always be http://inspire.ec.europa.eu/codelist/VoidReasonValue/Unpopulated when the VoidReason needs to be expressed.

    6) According to our interpretation, this is correct, which means that "legalFoundationDocument.xsi_nil is true and legalFoundationDocument.nilReason attribute is filled as well" is done on purpose.

    Best regards,

    Lena & SYKE team

     

     

     

     

  • Stefania MORRONE

    By Stefania MORRONE

    Ciao Lena,

    to solve issue in your question n° 

    3) Regarding the missing CRS in the <wfs:boundedBy>. We haven't deliberately put on any calculation, so we don't know how to take the calculation off, as this part is included automatically. Any advice from your side?

    go to your GeoServer instance, in the Web Feature Service (WFS) configuration page, and just leave "return boundingbox with every feature"  unchecked.

    When this feature is checked,in fact, the WFS response calculates not only the envelope for every feature (correctly inserting the CRS) but also an upper-most bounding box <wfs:boundedBy> i.e. the envelope of all returned geometries, but in this last case inserts no CRS. It's a well known bug, read more on the GeoServer mailing list .

    Stefania

  • Sorin RUSU

    I was just about to answer the same thing about unchecking the property. Unfortunately there is still no fix for the bug mentioned in the mailing list.

  • Johanna OTT

    Hi Lena,

    I think you got me wrong concerning the legalFoundationDocument - sorry I was unclear!

    Having legalFoundationDocument.xsi_ni and legalFoundationDocument.nilReason filled at the same time is not the problem. But besides these two, the legalFoundationDocument is filled as well - which means that the whole attribtue is filled and voided at the same time. I hope I could clarify my point :)

    Best, Johanna

  • Johanna OTT

    Hi Lena,

    I have a question concerning the orientation. What exactly did you do in FME when you "have changed the orientation for spatial objects in FME when creating the GML-files provided by the Atom feed"? What data type is your input? I have shp-files and am not 100% sure if I am doing it right.

    Best regards, Johanna

This discussion is closed.

This discussion is closed and is not accepting new comments.

Biodiversity & Area Management

Biodiversity & Area Management

If themes like Protected Sites, Area Management/Restriction/Regulation Zones and Reporting Units, Habitats and Biotopes, Species Distribution, Bio-geographical Regions matters to you, join these groups!