4

In QGIS 3.20 (or QGIS 3.18) I have a shapefile with point geometry, this shapefile has a field with the value of error in "x" and a field with the value of error in "y". I would like to create error ellipses, then if error of "y" increases in a point, then the symbol only changes the major axis of the ellipse, and the same with "x".

Basically, I need to use two fields to define the size of the symbol in two different axes. Is there any way of doing this?

I have tried Rule-Based symbology but I haven't been able to make it, maybe I just don't know how to use it.

2 Answers 2

4

You could use an ellipse symbol marker with a data-defined override to define the symbol width & height.

As an example, I created some random points and added two fields "x_err" and "y_err". Just for the example I filled these fields with random float values between 2.0 and 6.0.

My attribute table looks like this:

enter image description here

With the error values stored in your attribute table, go to layer properties -> symbology. Click on the simple marker symbol layer and change the symbol layer type to Ellipse marker. You can then set up a data-defined override expression to define symbol width and height by clicking the Data-defined override symbol on the far right and selecting Edit. See Screenshot below:

enter image description here

You can then enter the field names which contain your x and y error values in the expression builder. Depending on what those values are you could multiply or divide them by some constant factor and/ or change the units if required. See below:

enter image description here

You need to do this for both symbol width and symbol height. The resulting symbology is shown below:

enter image description here

2

Check "Rectangles, Ovals, Diamonds (Variable)" geoalgorithm in the QGIS's Toolbox

result

Your Answer

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

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