1

In QGIS 3.10.2 I have created a process modeler file that takes inputs from 5 input layers and creates a new layer as an output. The output layer is needed by an external program and the processing modeler is to ensure it can be updated frequently.

At the end of the file I want to "select by expression" based on two attributes, and then apply the "Join by Location" function to the selection and another point layer. I tested it manually and it worked. I copied the same expression and used this in the Processing Modeler.

However when I run the processing model, I get different result. First I cant figure out how to restrict the Join to only the selected features - there is a tick box when doing this command manually. Secondly the Processing Model Join by Location doesnt seem to work correctly, giving different results than doing it manually.

My process model follows a linear pattern, where I have selected most of the layers. Overview with Problem Area Shown

The last two steps I want to "Select by Expression" firstly: Select by Expressin

And then "Join by Location" on the Selection above Join by Location

The results firstly dont return the "Selected" features, but also the Join doesnt seem to work as well as using the function manually.

Results

I am not sure if I am doing something fundamentally wrong on this, but have tried many combinations and cant seem to get it function as if I were doing it manually.

1 Answer 1

1

I am not too familiar with processing modellers, but see if these work for you:

For your first question about restricting to selected features - instead of Select by Expression, try Extract by Expression - that should make sure non-matching features are discarded.

For your second question about the join returning incorrect results (I presume the ones where mAuthNodeNo is NULL), perhaps you want to set 'Discard records which could not be joined' to 'Yes'?

1
  • Extract by Expression was what I was missing. I changed to "Join to Nearest" also and it now works. Thanks
    – boberdorf
    Apr 17, 2020 at 6:12

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.