4

I have a shape file for the World Map and the following data in text file (Added as delimited text layer):

enter image description here

I would like to use QGIS 3.10 to achieve three things: a) To make a flow map to have CURVED LINES from points listed in Column B to points in Column C. b) To have curved lines of three different colours (based on the Colour ID in Column A). c) To vary the thickness of the curved lines based on Data in Column D.

I tried to follow this tutorial, but since this is based on codes (that I am yet to learn), I was unable to replicate the process.

Could someone please suggest a way of achieving the above three steps without using the code? I have tried clicking on Properties, Symbology, but was unable to achieve all three steps above.

Here is an example of what I've been able to achieve so far: lines of three different colours, as per the Colour ID:

enter image description here

4
  • Please describe what you'd like your output map to look like: globe? rectangular map? Do you want the flow lines to be straight or curved?
    – Stu Smith
    Dec 22, 2020 at 20:47
  • I have added a diagram - I'm trying for a world map, with flow lines to be curved and thickness as per the Data column in the table mentioned above. I have managed to have three distinct lines for three different Colour IDs (Column A, table above), but I haven't managed to vary the thickness of the lines as per the Data column, or to make the lines curved. Also, I would like the thickness of the lines to be as follows (from thicker to thinner, values taken from Data column): 86 (green line),45 (orange),25 (orange),23 (...),7,5,1. Any help in achieving this would be very welcome. Thank you.
    – Sarah Hagg
    Dec 22, 2020 at 23:03
  • Correction: instead of flow lines I would like to have flow ARROWS, please (of varying thickness).
    – Sarah Hagg
    Dec 23, 2020 at 0:02
  • Do the lines have to follow the globe's curvature or are they purely illustrative? Dec 23, 2020 at 17:22

1 Answer 1

0

Glad to see that you got the line color figured out, Sarah. I'll help here with the curving lines and arrow sizes. Here's my workflow:

I created this sample csv file, routes.csv, which consists of three routes (a, b, c):

route,from_long,from_lat,to_long,to_lat,arrow_size
a,-118.5,48.5,-41.5,-15.9,4
b,-71.3,-48.6,1.5,53.1,6
c,29.4,28.3,139.6,38.1,12

Note that each route contains four fields that define its starting and ending locations, each in longitude, latitude order. I've also added a arrow_size field (more on that later).

I added the csv file to QGIS. Then I loaded the Shape Tools plugin (Plugins > Manage and Install Plugins > Shape Tools). After installation Shape Tools appears under Vector > Shape Tools. (I'm not sure which QGIS release Shape Tools will work under. I use 3.16.1, so if you don't find it at 3.10 you'll need to upgrade your QGIS version)

You'll notice that Shape Tools contains a variety of tools. I used XY to Line, shown here.

The Input layer is my routes.csv. Line type Geodesic creates curving lines. The starting and ending X/Y fields are from routes.csv. FWIW, my output lines and points were stored as Geopackage layers, but you could use shapefiles or temporary layers as output.

enter image description here

Here's the result, with the curved (Geodesic) lines (For the background, I used the Natural Earth 1:110m coastline layer):

enter image description here

Now, about the arrow sizes... I used the QGIS concept of Data-defined overrides, where the input data defines the symbology by overriding the default settings. So in my example, the arrow_size field contains values which will be input as data-defined overrides.

In Layer Styling, I added a new line (via the green plus sign), which I changed to Marker Line (drop-down), then checked on last vertex only. I also moved this new line type to the bottom of the symbol list, using the blue down triangle to the right.

enter image description here

Finally, I set the marker size by: a) clicking on Simple Marker, b) clicking on the box-like symbol circled in red (that's the data-defined override symbol), c) checked on Field type, and d) checked on my field arrow_size. I also rotated the symbol by 90 degrees (not highlighted). Voila! The markers are now sized according my my input data values.

enter image description here

Sarah, in closing here's a Stack Exchange Pro Tip: SE prefers that submitted posts contain just one question, so that future users can concentrate on searches specific to their area of interest. Your post contained three separate questions, which probably should have been submitted individually. I know that might seem cumbersome, but that's the SE model! All the best.

2
  • Thank you, Stu Smith for your help with the flow map. I just have one more question, which I will post here (please let me know if I should open a new post for this question): the plotted flow map shows lines that go in the corners of the world map and then break (e.g. a potential line between Japan and USA). Instead I would like to have the unbroken lines join USA and Japan (lines connecting the two countries, plotted over Asia/Europe). Would this be possible? Thank you so much for your detailed answers, very helpful.
    – Sarah Hagg
    Dec 29, 2020 at 4:05
  • Sarah, it is bad form in SE to ask a question (either an original question or a follow-up question) within a comment. So at this point you have two options: 1) edit the original question or 2) ask a new question. I would propose that you ask a new question because your original post has been answered, and more importantly, you're now asking about a different issue: using QGIS, how to display lines that cross the international dateline. I'm curious about that as well, so I look forward to seeing your new question on SE!
    – Stu Smith
    Dec 29, 2020 at 20:36

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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