Vector scale with grdvector and velo

Hello,

I’m trying to plot Nuvel 1 velocity vectors on a global map with Hammer projection (i.e. -JH15c -Rg). The vector grids for x and y components are available here and here. So I have to use grdvector to plot these grid with something like:

gmt grdvector $rasterpath/plates/nuvel1.vx.1.5.grd $rasterpath/plates/nuvel1.vy.1.5.grd 
 	 -Rg -JH15c -I12 -S$velscale -Q0.25+e+n0.2 \
 	 -Wthin,black -Gorange -V

then, I want to add a vector scale of 10cm/year outside the map, with velo:

echo 140.0 0.0 $vscale 0 0 0 0 "10 cm/an" | gmt velo -A0.25+e+n0.2 -Se`echo $vscale | awk '{print(1/$1)}'`/0.95/8 -Wthicker,black -Gorange $region $projection -Xa7c -Ya-5c -V

But I don’t understand the use of -S scaling with grdvector and how to obtain the right scaling vector with psvelo. That is, what values should I use for my $velscale and $vscale parameters ?

thanks for help !

Let’s try the grdvector scaling first. I would use -Si (inverse scale). Then, you are specifying in real-world distances how long a 1-unit vector should be on the map. In your case, your 1-unit means a 1 cm/yr magnitude. The cm/yr do no enter anywhere. If I want my 1 cm/yr vector to be drawn as a 100 km long line, then I choose -Si100k. The attached command just shows a single Nuvel vector at 80,0 where I see from the data file the magnitude is ~5.31 cm/yr. So this means a 531 km long vector is drawn (the -V reports the same):

gmt grdvector nuvel1.vx.1.5.nc nuvel1.vy.1.5.nc -R75/85/-5/5 -JM16c -I8 -Si100k -Q0.2i+e -Wthicker,black -Gred -Bafg -pdf map -V

To plot your scale outside the map: Well, given how map proejctions work, a 10 cm/yr length scaled to 100 km will have different plot dimensions depending on where on the map it is placed.
Alternatively, you can give -S with a measure unit, e.g., -S10c. Now, you are getting straight Cartesian vectors whose length (for the same input length) do not change with location. I was going to say that -S1c should give us a 5.31cm vector in the case above but I am getting one that is 34 cm. So will need to look at that Cartesian case more carefully first.

Update, I fixed some issues with grdvector yesterday, so if you are able to build from github source you should. Also, much improved discussion of the vector scaling and the revised page: https://docs.generic-mapping-tools.org/dev/grdvector.html

Thanks a lot. I’ll try these two options of -Si and cartesian vectors. And I better understand the scaling options in grdvector with your answer. I will also read the discussion of vector scaling.