Next: Preface to version 3.0 Up: Prefaces Previous: New features in 3.2

# Preface to version 3.1 (Nov-1998)

GMT 3.1 is a major upgrade of the Generic Mapping Tools. However, most of the improvements are ``under the hood'', not readily visible to the user. The primary purpose of the present release is to ensure complete portability of GMT to as many hardware platforms as possible. To accomplish that goal we made three fundamental changes to the GMT source code:

1.
  All GMT source code strictly follows the ANSI C standard.

2.
  All GMT source code is POSIX compliant.

3.
  Architecture-independent files are read and written with netCDF 3.

Since the release of GMT 3.0 we have seen more 64-bit operating systems and a steady evolution of netCDF to accomodate such systems. GMT 3.0 has therefore become harder and harder to install and it was time for a significant upgrade. GMT 3.1 is now highly portable and has been installed and tested under Solaris, HP Unix, SGI Irix, Linux, MkLinuk, OSF, Ultrix, and Win32. The GMT package also is Y2K compliant. Although portability has been our main concern, GMT 3.1 also delivers several new features and programs. Among the most significant offerings are:

1.
  Two new map projections (Gnomonic and Miller).

2.
  90 built-in bit and hachure patterns and a new mechanism for color patterns. -–Gp|P now accepts pattern dpi rather than block building size; dpi = 0 uses default dpi.

3.
  Full support for native binary table input/output for all programs that read tables.

4.
  Shorthand mechanism for 5 alternative 2-D grid formats via .gmt_io file.

5.
  Four new programs: blockmode for block-averaging by mode estimates, gmtconvert to translate between native binary and ASCII table formats, gmtselect to select subsets of table data based on multiple spatial criteria, and grdvolume for calculating volumes under surfaces within a specified contour. One supplemental program, psimage , has been revised and incorporated into the main GMT while another, psmegaplot , has been relegated to the supplemental archive.

6.
  Boundary condition options for several grid-generating or manipulating programs.

7.
  Improved PostScript BoundingBox implementation.

8.
  Numerous bug fixes (see CHANGES for deltails).

9.
  More examples (for a total of 20).

10.
  A new GMT map-making tutorial book and short-course.

In addition, several programs have more functionality thanks to new options. For example, pscoast can now set up clip paths based on the coastlines or dump an ASCII table rather than drawing them, and psxy and psxyz can read symbol codes from the input data. The following is a summary of new capabilities:

Table 1.8: New capabilities in GMT 3.1
Program | Changes
blockmedian | -–Q returns median z and ( x, y) at that value
grd2xyz | -–S suppresses nodes that equal NaN
| -–Z extended to specify arbitrary binary output file formats
grdcontour | -–N sets label unit, -–Z optionally takes an offset
grdgradient | -–L sets the boundary conditions at edges
grdinfo | -–C formats output for easy parsing
grdmask | -–H added
grdsample | -–L sets the boundary conditions at edges
grdtrack | -–S suppresses output that equal NaN, also -–L as above
grdview | -–L sets the boundary conditions at edges
makecpt | -–I option to reverse grayramp
minmax | -–C formats output for easy parsing
nearneighbor | -–L sets the boundary conditions at edges
project | -–M multisegment option. Also handles any number of input colums
pscoast | -–M to dump ASCII coastline file, -Gc and -–Sc to create clip paths
pscontour | -–L to draw network triangles
pshistogram | -–L to draw transparent histogram
psmask | -–F option for pixel registration
psscale | -–E to extend scale with fore- and back-ground colors
pstext | -–D to translate basepoint after map projection
psxy[z] | -–SE plots ellipses given axes in km (and thus replaces ellipse scripts)
| -–S without symbol makes program read last column as symbol type
sample1d | -–A, -C, and -–L become -–Fa -Fc -Fl but is backward compatible.
xyz2grd | -–Z extended to specify arbitrary binary input file formats
-–JM -–Jm | Optional forms are -JM lon/ lat/ width and -Jm lon/ lat/ scale

Speaking of pscoast , the coastline and political boundaries data bases have undergone modest changes and will continue to do so as we obtain better data. Several bugs have been fixed, and new political borders have been added (but not all).

While fixing inconsistencies and enhancing the GMT programs we do occasionally get into a situation which was best resolved by renaming a command line option. We do not like to do so since it introduces incompatibilities between versions of GMT; however, sometimes this is neccesary in order to fix a bug (as in grdclip and grdpaste below). This has in particular been used to ensure that the common command line options are unique and that some others have the same meaning in as many programs as possible. Table 1.9 is a list of incompatibilities between GMT 3.0 and 3.1, revise any GMT shell scripts accordingly.

Table 1.9: Incompatibilities between GMT verions 3.0 and 3.1
Program | Changes
grdclip | -–A and -–B have been replaced by -Sa and -Sb.
| The -B interfered with the usual meaning of -–B.
grdpaste | Same problem; introduced -–Sa and -Sb.
grdview | -–D no longer an option; -M and -W follow grdcontour syntax;
| They are now set by -–Wc and – -Wm.
nearneighbor | -–M is replaced by -–S radius k as in psmask
project | -–M becomes the multisegment flag as usual; old -–M replaced by -Q.
psclip | -–S becomes -C, and -O must now explicitly be set.
psmask | -–S and -–C have reversed roles to match psclip.
| -–M is replaced by -S radius k.
psxy[z] | -–L only needed to close polygons; -–W[ pen] determines outlines.

In addition, no programs have the old option -–F to change the color of the map frame. We did this to free up this option for future enhancements since the effect easily can be obtained via gmtset BASEMAP_FRAME_RGB r/g/b.

We have received many bug reports regarding GMT 3.0 and we have attempted to correct as many problems as we have had time for. Some of you may be disappointed in finding that GMT 3.1 still has a bug you reported to us. Part of our difficulty lies in the fact that GMT 3.1 has changed significantly since 3.0 so that it is not always easy to verify that a problem has been fixed or is still with us. Thus, while not bug-free, GMT 3.1 provides a more stable platform allowing easier verification and termination of bugs. We encourage you to discover (or rediscover) bugs and bring them to our attention.

Finally, we would like to thank those of you who continue to contributed ideas, bug reports, and advice since version 3.0. We appreciate your input, and believe version 3.1 reflects many of the suggestions you have provided.

Next: Preface to version 3.0 Up: Prefaces Previous: New features in 3.2