Question

WFS reader, filtering a non-spatial class by attributive criterias

  • 6 February 2017
  • 8 replies
  • 14 views

Badge

Hi,

I am using the WFS Reader for downloading data. The reading of spatial and non spatial feature classes works. Spatial feature I can filter applying a search envelope. I am now facing the problem that the reading of the non spatial feature classes ends (successfully) after 100.000 datasets.

My first question:

Since I did not set the maximum number of features to be read I wonder where the limitation to 100.000 features comes from? Maybe from the server side?

My second question:

How can I filter out only those records that meet a certain criteria. I assume it has something to do with the XML-filterencoding?


8 replies

Userlevel 5
Badge +26

The answer to your first question is: yes, that could very well be. If it stops at exactly 100000 features it's a good sign there's an artificial limit in place. WFS 2.0 supports Response Paging, I'm not sure whether I ever got that working in FME myself, I'll have a rummage in my archive. Or maybe @itay can shed some light on this, I know he's worked with Dutch government datasets which have those limits in place.

Badge +16

Hi @femo,

I agree that the chance is that the limitation is server side.

You can check this yourself by querying the getcapabilities of the service, there a constraint will be set for the limit of features.

0684Q00000ArKpYQAV.png

This is the value you need to specify in the WFS reader parameters, be sure to use the version 2.0.0 (which versions are supported is also in the getcapabilities document) available from version 2016.1.0.0 (build 16492)

0684Q00000ArL34QAF.png

Regarding your question about filtering, you can use where clause like filtering.

This again depends on the service and its capabilities a good place to search for the filtering possibilities is in the server documentation.

An example of filtering on two conditions:

<Filter>
<Or>
<PropertyIsEqualTo>
<PropertyName>woonplaats</PropertyName>
<Literal>Ede</Literal>
</PropertyIsEqualTo>
<PropertyIsEqualTo>
<PropertyName>woonplaats</PropertyName>
<Literal>Wageningen</Literal>
</PropertyIsEqualTo>
</Or>
</Filter>

Hope this helps,

Itay

Badge

Hi @redgeographics and @itay,

from the service provider I have been told that the limitation is set to 100.000 features. However,

I can't find any respective remark in the capabilities document. I have tried some filtering, unfortunately without success:

Here you find the URL to the wfs:

https://www.wfs.nrw.de/geobasis/wfs_nw_alkis_aaa-modell-basiert

The service is free of charge, no registration is required. Thanks a lot for your support so far!

Badge +16

Hi @femo,

Then to start with you can set the count parameter to 100.000 and the version to 2.0.0 and see if you get a response.

Badge +16

Hi @femo,

Unfortunately the service does not support pagination, the parameter is set to FALSE see the getcapabilities document.

You could ask the provider implement that, but I think that is more of a long term solution.

Good news is that most of the fillters are supported.

Hope this helps

Userlevel 5

Hi @redgeographics and @itay,

from the service provider I have been told that the limitation is set to 100.000 features. However,

I can't find any respective remark in the capabilities document. I have tried some filtering, unfortunately without success:

Here you find the URL to the wfs:

https://www.wfs.nrw.de/geobasis/wfs_nw_alkis_aaa-modell-basiert

The service is free of charge, no registration is required. Thanks a lot for your support so far!

The presence and name of the constraint tag depends on the version of the WFS implementation used. I suspect it might also depend on which WFS server software is used.

 

Badge +6

Is it possible to remove the place name from a list.

Or a selection on the bassis of an area?

Badge +2

Is it possible to remove the place name from a list.

Or a selection on the bassis of an area?

Hi @gvenhorst, Thank you for your question. I'm not very clear how is your question related to the original post. (But it is a long and deep conversation, it's very possible that I've missed something.)

 

To help ensure your question get adequate attention, I'd recommend that you post your question with more context and background details, as a new Question. Some tips:

 

  • If some part of the conversation here are helpful to describe your issue/question, you can add a link to it, and reference the particular part that's related to your question.
  • If you think some people involved in this conversation can help you with your new question, you can use @ in front of their username (no space) to send a notification to them about your new question.
Hope you can get a helpful answer to your new question.

 

 

Reply