Generating xy coordinates with project module

I’m trying out the new project module and wanted to use it to generate coordinates along a projection line, defined by a center, azimuth and length, so that I can plot the line. In GMT I would have done something like:

gmt project -C$Longitude/$Latitude -A$Azimuth -L-50/50 -Q -G0.1 | gmt plot -W3p,-

Is this currently possible in PyGMT? It seems the generate parameter won’t output xy values

Hi @FinniganIK, It should be possible to use pygmt.project generate the coordinates. Could you provide a sample Longitude/Latitude/Azimuth so that we can check that it works?

The PyGMT code would look something like so:

import pygmt

df = pygmt.project(center=[-50, 10], azimuth=45, length=[-50, 50], unit=True, generate=0.1)

where df is a pandas.DataFrame table with three columns like so:

              r          s     p
0    -50.322550   9.681888 -50.0
1    -50.321906   9.682525 -49.9
2    -50.321261   9.683161 -49.8
3    -50.320617   9.683798 -49.7
4    -50.319972   9.684434 -49.6
...         ...        ...   ...
996  -49.679406  10.315259  49.6
997  -49.678759  10.315895  49.7
998  -49.678112  10.316530  49.8
999  -49.677465  10.317165  49.9
1000 -49.676818  10.317800  50.0

[1001 rows x 3 columns]

You’ll then be able to plot the points. The x and y coordinates are the r and s columns respectively.

fig = pygmt.Figure()
fig.plot(x=df.r, y=df.s, pen="3p,-", frame=True)
fig.show()

produces:

P.S. @mgrund is just finishing up a new gallery example for pygmt.project at Generate points along great circles — PyGMT, so you can refer to that too

1 Like

Hey @weiji14. That works great! Thank you :slight_smile:

1 Like