next up previous contents index
Next: 1.1.3 Overview of GMT Up: 1.1 What is new Previous: 1.1.1 Overview of GMT   Contents   Index

1.1.2 Overview of GMT 4.3.0 [May-1, 2008]

Changes are once again a mix of structural improvements, bug fixes, and a few enhancements. The coastline files (now GSHHS 1.10) have seen minor modifications, the mex supplement now offers support for Octave, all source code is now fully 64-bit compliant, we have added an isolation mode option (if GMT_TMPDIR is defined, write temporary and hidden files to that directory), and the configure/make setup has been further improved (such as honoring CFLAGS and LDFLAGS set by user). Colors may now be specified as hexadecimal codes (e.g., #ff0000 for red), and projections can be specified by name (similar to Proj4). Finally, binary table data can now be COARDS-compliant netCDF files. As for documentation, we have now switched from C shell to Bourne shell (although the csh examples are still distributed).

The following lists specific enhancements or new program options:

  1. gmt_grdio.c is modified so the grid i/o supports the GMT_[DATA$\vert$IMG$\vert$GRID]DIR environment settings.
  2. gmt_init.c was enhanced so -U can now interpret a justification (e.g., just/dx/dy on the command line or by setting UNIX_TIME_POS) and we introduced a new default parameter UNIX_TIME_FORMAT which controls the formatting of the timestamp.
  3. gmt_io.c now implements -b[i$\vert$o]c[var1/...] option to indicate input is netCDF.
  4. gmtmath recognizes new constants TMIN, TMAX, TINC, and N.
  5. grdimage uses -N to not clip image at map boundary.
  6. grdview now uses -Wf to change the facade pen from its default value.
  7. grdmath recognizes new constants XMIN, XMAX, XINC, NX, and similarly YMIN, YMAX, YINC, NY.
  8. mapproject -G+ will compute distances between coordinates in first 4 columns.
  9. ps2raster has new option -D to specify alternative output directory and -V to report progress.
  10. psrose has new option -F to disable the plotting of the scale bar.
  11. psxyz has new option -D to match option set in psxy.
  12. mgd77/mgd77list added -Ga$\vert$brec to limit output to a certain record range.
  13. spotter/hotspotter added -S to normalize output to percent of CVA maximum.
  14. spotter/grdspotter is a new program, like hotspotter, but using gridded data as input.

A long list of bugs has been squashed since the last release, the most important are listed below:

gmt_grdio.c
: Fixed 3 bugs in GMT_decode_grd_h_info that caused problems parsing -D option. Explicitly exclude = sign from becoming separator.
gmt_io.c
: Now skips blank lines that has leading whitespace.
gmt_init.c
: c for seconds was not recognized as TIME_UNIT (expected s, which is kept for backwards compatibility). -B processing of labels used an internal string that was too short, which could lead to label truncation. Fixed ``Holiday-bug'' in GMT_parse_J_option introduced 2007-12-21. GMT_str_tolower could run out of bounds. Probably only affected 32-bit compilers. GMT_is_a_blank_line is now used wherever ascii input is processed.
gmt_map.c
: Fixed bug in radial clipping. The radial clipping would sometimes add arcs using the arc that exceeds 180 degrees. Added new rectangular clip function using Sutherland/Hodgman algorithm in order to fix incorrect results in grdlandmask. Minor bug in 4th term in conformal to geodetic lat. Round-off could mess mapping of west/east to xmin/xmax. Now has a safety valve for checking that this does not occur.
gmt_plot.c
: 3-D basemap axis did not use LABEL_OFFSET.
gmt_proj.c
: Fixed bug in azimuthal equal area projection that had the horizon shifted from where it ought to be. Avoid error in GMT_lamb_sph when lat is 90 degrees. Clip path for general perspective projection was not closed. For -JS: Would set slice to NaN if central meridian was not Greenwich. For -JR: Longitudes beyond 180 were set to 180.
gmt_stat.c
: Bug in GMT_median would sometime give subtle mistakes, most noticeable when only a few values were passed to the function. Traced to the use of size_t variables in expressions that could yield a negative value. Fixed minor issues in GMT_PvQv function.
gmt_support.c
: Made GMT_polygon_is_open tolerant of round-off and if polygon is not open set last to exactly equal first point. GMT_get_annot_label did not properly honor the ddd.xx setting. Now implements annotation for Gnomonic maps. In GMT_contour, would occasionally not check internal crossings for some interior contours.
pslib.c
: Bug in ps_shorten_path lead to SEGV when path resulted in a single point. Fixed error in applying pstext's -Djdx/dy shift in paragraph mode (-M). Redefine rect symbol to be less prone to round-off. Used internal point_code before it was initialized. This caused PAGE_COLOR not to work (wrote $<$NUL$>$ rather than C).
gmtmath.c
: Implemented Welford (1962) algorithm in KURT, SKEW and STD operators for more precise one-pass computation of mean and sum of squares.
gmtselect.c
: The -:o option failed to reverse output order.
grd2xyz.c
: Do not abort when -R exceeds grid; simply output common region. For gridline oriented grids: -E returned xll and yll one cell too large. Now writing [xy]llcenter properly.
grdblend.c
: Did not pick up node registration before calculating output grid size.
grdedit.c
: Adjust z_min and z_max when changing add_offset or scale_factor.
grdgradient.c
: With -D and -S the slopes were not set to NaN if data were NaN.
grdinfo.c
: Implemented Welford (1962) algorithm for more precise one-pass computation of mean and sum of squares. zmin==zmax no longer forces -M option.
grdmask.c
: Tiny bug for determining which hemisphere (N/S) unlikely to have had any effect. Needed to allow for some slop when comparing shrink to 0.0 since sometimes the result of acos is 1e-14 or thereabouts.
grdmath.c
: Implemented Welford (1962) algorithm in KURT, SKEW and STD operators for more precise one-pass computation of mean and sum of squares.
grdview.c
: The facade (-N) outline was drawn with contour pen. The -Qc option failed to set the ``build image'' flag and produced garbage surface tiles. Also, -T[s] produced polygons that were not checked for wrapping at a periodic map boundary. Clarified that -T cannot take -JZ$\vert$z.
minmax.c
: Could get confused when longitudes crossed dateline or Greenwich, and OUTPUT_DEGREE_FORMAT could interfere with result.
pscontour.c
: -T option was susceptible to infinite loop if bad record was found.
pshistogram.c
: The -R option was processed separately and did not understand time coordinates. Bug in -F option failed to center bins.
psmask.c
: The -D option used the wrong output file name.
psscale.c
: Inverted vertical scale, when using filled rectangles: Colors remained in the original order. Inverted vertical or horizontal scale, when using rectangles with gradients: Size of rectangles followed original order, not inverted. In reverse mode, -Eb was plotting foreground triangle, -Ef background triangle.
pstext.c
: Parsing of -C complained about % sign.
psxy.c
: If first symbol in list with size was not circle, it got rejected. When sizes of -Sr or -Sj were read from list, they were always assumed to be in inches. Drawing arrows with -SvS and time-coordinates did not work as 2nd time coordinate did not get processed properly.
psxyz.c
: If first symbol in list with size was not circle, it got rejected. When sizes of -Sr or -Sj were read from list, they were always assumed to be in inches.
sample1d.c
: Calendar time knots did not get properly interpreted with -N.
mgg/mgd77togmt.c
: Did not initialize the MGG_SHAREDIR path.
mgd77/mgd77.c
: Wrong header order written if mgd77convert ... -Tt was used.
mgd77/mgd77info.c
: Could get confused when longitudes crossed dateline or Greenwich, and OUTPUT_DEGREE_FORMAT could interfere with result.
mgd77/mgd77sniffer.c
: Numerous fixes and enhancements; see ChangeLog.
x2sys/x2sys.c
: Error in determining which columns had been requested.
x2sys/x2sys_binlist.c
: Could create bad bins because of incorrect reallocation of memory.
x2sys/x2sys_get.c
: The -L option did not honor any -F or -N settings.
x2sys/x2sys_put.c
: Wrong test when replacing older track info lead to data base loss.
x2sys/x2sys_cross.c
: Used wrong data column order and computed speed when there is no time.


next up previous contents index
Next: 1.1.3 Overview of GMT Up: 1.1 What is new Previous: 1.1.1 Overview of GMT   Contents   Index
Paul Wessel 2008-05-15