Out of all the essential software packages that I’ve mentioned on this blog, the Generic Mapping Tools are certainly the one that I’ve used the longest, for more than 20 years. Back then I think it was major version 2, we’re now at 6. I created all the geographic data plots for my Master’s thesis and my PhD thesis with GMT, and still use it regularly.
Like the name implies, GMT is a tool for creating maps. It supports many different map projections and plot types. It comes with its own database of coast lines for creating maps. But it’s more than that. It comes with a load of very powerful and fast programs for (pre)processing data. This includes things like gridding and spatial filtering, typical steps in processing spatial data.
GMT is controlled through script files (batch under Windows, bash under Linux). This makes well suited GMT to automatic data processing. For example, the weather observation maps of the Dutch weather authority KNMI are clearly generated with GMT. The downside is that GMT is a bit more complicated to work with, as there’s no GUI for configuring plots. I suggest taking a look at the examples to see how various plot types are made and progress from there. GMT is very well documented. One of my favorite examples is #23, which I modified back in the day with ETOPO2 as background map to create a very nice looking map of distances from Delft.