Next: 1.1.8 Overview of GMT Up: 1.1 What is new Previous: 1.1.6 Overview of GMT Contents Index

## 1.1.7 Overview of GMT 4.4.0 [Feb-15, 2009]

This is a significant update of the official distribution and hence has a mix of bug fixes and program enhancements. We have added a new program (greenspline.c) which offers interpolation and gridding in 1-3 dimensions using Green's functions of various splines. Also, the misc supplement has a new tool (gmtdp.c) which offers line-reduction using the Douglas-Peucker algorithm we used for the various shoreline resolutions. The mex supplement has a new Matlab/Octave function (imgread.m) to directly read Sandwell/Smith *.img files. The x2sys supplement has three new programs: x2sys_list.c can extract a subset of crossovers from the list produced by x2sys_cross.c, x2sys_report.c reports statistics of crossovers, whereas x2sys_solve.c will determine systematic trends from a set of crossover errors. These programs are intended to replace the old x_system tools x_list.c, x_report.c and x_solve_dc_drift.c. We have also temporarily added `GMT_qsort` which is a 64-bit compliant version of `qsort`. The latter is broken under OS X 64-bit and is thus substituted on that platform only for 64-bit compilations until Apple fixes the problem. Finally ps2raster.c can now be used to create geotiff images if gdal is installed on your system. Here is the list of bug corrections:

gmt_customio.c
  : Fixed sub-region access in Surfer format. This bug would manifest itself mainly when doing a grdcut with a N-S sub-region.
gmt_init.c
  : Modified special checks for FreeBSD by also considering _AMD64_. -JXh was misinterpreted whereas -JXv was OK.
gmt_io.c
  : Did not properly apply PLOT_DEGREE_FORMAT=ddd.x for decimal degrees.
gmt_map.c
  : Determining where parallels and meridians intersected the map boundary was susceptible to roundoff for very small regions. Added improved clipping for geographic polygons using the Sutherland and Hodgman algorithm when there are no map jumps in longitude. Fixes problem with tiny strips of ``land'' along map perimeter for some projections.
gmt_math.h
  : Check for macro definitions for system math functions.
gmt_plot.c
  : Wrongly checked for map jumps for non-periodic map boundaries. Bug in `GMT_fill_polygon` that affected polygon outline. 3D text box was computed incorrectly. Could exceeded array size in `GMT_epsinfo`.
gmt_proj.c
  : Fixed bug in Lambert conformal conic projection for southern hemisphere.
gmt_support.c
  : Function `GMT_get_arc` did not check for division by zero. The -Gx file:radius[unit] option in grdcontour.c passed the entire argument as the file name. Function `GMT_polygon_is_open` did not test for empty polygons (n = 0). Avoid interpolating hue (converted from RGB) over more than 180 degrees. Changed `GMT_rgb_to_hsv` to integer logic to avoid errors on some compilers. As a result: much shorter code as well.
gmt_vector.c
  : Function `GMT_resample_path` would add 360 to points along meridians.
pslib.c
  : `ps_polygon` can only split line when rgb[0] == -1 not 0 since -3 now means to use a fill pattern. Redefined PostScriptcode for circle which needed a stroke (S) first, otherwise a line would be drawn from the previous symbol. Updated PSL_prologue.ps version. Image placement now in integers. Ensures that placement is consistent with e.g. box drawn with the same coordinates. Does not produce colormap with number of pixels and colors is the same.
gmtmath.c
  : The D2DT2 operator whose boundary condition yields 0 should yield NaN if one or more of the nearby nodes are NaN.
grdblend.c
  : A side-effect of the 2007-02-01 fix was that when the file is re-opened the row range is reset. Now the possible offset is computed during initialization but applied when the file is finally opened for reading. Better treatment of longitude periodicity if -fg is selected. E.g., if -Rg is used and a grid is -30/30 in longitude the output grid will consider 0-30 and 330-360 correctly
grdfilter.c
  : -D5 did not initialize xscale so filter search box was set to region width which typically is much larger. The bug did not affect the results but unnecessarily increased runtime. Complained if -R was used and xmin was less than grid xmin for a full 360-range grid.
grdimage.c
  : Failed to determine boundary of projected grid with enough precision.
grdmath.c
  : Some 2nd-order derivatives whose boundary condition yields 0 should yield NaN if one or more of the nearby nodes are NaN.
grdreformat.c
  : Since there is no longer a share/conf/gmt_formats.conf the usage message crashed. Did not initialize grid header structure and could get netCDF error ``Named variable does not exist in file''. This could also occur in grd2cpt.c, grdedit.c, grdtrack.c, grdvector.c, grdview.c, and grdvolume.c.
psbasemap.c
  : The syntax for the -L option had to change since one could not easily use the :label: specification if the coordinates were given in dd:mm[:ss] format. A new syntax has been implemented where one or more +?[args] strings are appended after the required parameters (see man page). Erroneously suggested that 3-D base was plotted at z=0, instead of at the bottom end of the z-axis.
pscoast.c
  : The -Q option incorrectly required -J. Also, see revised -L as for psbasemap.c.
pslegend.c
  : Now use Unix `remove` function to delete script after completion; this avoids a Windows problem.
psmask.c
  : Fixed a bug for -D-file which did not write multi-segment headers.
psscale.c
  : Logarithmic scale did not function properly when scale bar was vertical. When -I and -Li was used we did not draw box outlines. Did not check if -D was not given, and had wrong test for -E. Added -Aa and -Al options to move only the annotations or label to the other side of the color bar. Now requires -Ac to keep writing the vertical labels as columns.
pstext.c
  : We incorrectly removed blank lines but those mark new paragraphs when in -M mode.
psxyz.c
  : Did not pick up y-size for column from input data file.
xyz2grd.c
  : For -E under Windows we used `fscanf` with a pointer from GMT DLL which would fail for mysterious reasons.
meca/psmeca.c
  : Fixed bugs that would give strange beach balls for some input.
meca/pscoupe.c
  : Fixed bugs that would give strange beach balls for some input.
misc/gmtstitch.c
  : Check to see if format was set was wrong.
mgd77/mgd77.c
  : Index array error resulting in wrong IGRF start and stop years was fixed. Now applies recalculation of fields requested by E77 flags as part of reading netcdf mgd77+ files. However, if the original anomaly was NaN then we leave it as is.
mgd77/mgd77sniffer.c
  : Bitwise assignment error was deactivating other fields when depth field was missing from a cruise. Another bitwise error was overwriting E77 nav flags when navigation was found on land Updated sample grid function to handle longitudes for img files.
mgd77/mgd77track.c
  : Missing newline after last source line.
spotter/backtracker.c
  : The -W option always assumed the reverse rotation, i.e. from hotspot to seamount. Now obeys the -D option.
x2sys/x2sys_get.c
  : Now handles -R with longitude periodicity correctly.
xgrid/xGridEdit.c
  : Needed `GMT_io_init` to get all pieces needed to read grids.

Here is a list of the recent enhancement to various programs:

1. gmt_init.c has added support for enhanced -E option for 3-D perspective views which allows the specification of a fixed point (needed for creating animations). Updated all programs to use the new option and added updated man page and synopsis to all programs. Now, -R may take the name of an existing grid file. Then, the grid domain is used to set -R as well as the grid increment (and registration) for those programs that have such options.
2. gmt_map.c also has added support for enhanced -E option for 3-D perspective views.
3. gmtmath.c has added new operators NOT and INRANGE.
4. grd2cpt.c can now accept multiple grid files at once.
5. grdfilter.c has new options -Np to honor any NaNs found so output can be NaN, -Nr to replace output node with NaN if input node is NaN, and -Ni to ignore NaNs [Default].
6. mapproject.c has extended the -A option by making the fixed point optional; if not given we compute azimuths between successive data points.
7. minmax.c has optional /col that may be added to -T dz to select another column [third]. Added -S to leave space for error bars. Useful with -I and subsequent psxy -E.
8. pscoast.c has a new modifier + to the -D option, which determines the next lower resolution should the selected one not be available. This enhancement also affects both gmtselect.c and grdlandmask.c.
9. psimage.c has new -Gt option, with assignment of color to be made transparent.
10. pslegend.c lets N (number of columns) also affect the printing of labels. Can now use rectangle among the symbols.
11. psmask.c now has modifiers +n n_points and +q to the -D option to limit the minimum number of points a polygon must have and, to suppress PostScript output, respectively.
12. pstext.c has enhanced -Z+ option expects z-level values in 3rd column.
13. pslib.c internals now measure paper size in double precision points instead of truncating to nearest integer. To remain backwards compatible for pslib.c users we now initialize all plotting in GMT with `ps_plotinit_hires` instead of `ps_plotinit`. Allow transparency when plotting 8-bit images (as well as 24-bit). We now use a new implementation of `ps_textdim` to ensure proper alignment of texts and the optional surrounding boxes. Finally, wehave simplified the PostScript code for symbols and removed some limitations on plotting by officially moving to PostScript language level 2.
14. ps2raster.c now will scan for the optional comment `%%HiResBoundingBox` which takes precedence over the values in `%%BoundingBox`. New format -TG turns on transparency for PNG output, and -Tb selects Microsoft BMP output. Formats b, g, j, and t accept modifier ``-'' to produce grayscale images. Added -C gs-command to pass one or more custom switches directly to ghostscript, and -Q[gt]bits to set the level of anti-aliasing for graphics and text, respectively. We also added a new option -F to force a specified output file name. Finally, added -W to help create world files and geotiff output. To simplify boundary annotations for such plots (which must be inside the map region) we added the new choice inside for the BASEMAP_TYPE default parameter.
15. psxy.c has new option -I intens to modulate fill color via a fixed illumination value.
16. psxyz.c has the same new option -I intens.
17. xyz2grd.c has new format (A) for -Z which allows more than one floating point value per input record. Cannot be used if the z-values are in dateTclock or ddd:mm:ss format.
18. mgd77/mgd77track.c has enhanced -A option to place cruise ID equidistantly (distance or time) along the track.
19. spotter/backtracker.c has new option -e to specify a single fixed total reconstruction rotation that will be applied to all input points.
20. x2sys/x2sys.c internals now has automatic swabbing of index files, if required. Can now handle netCDF 1-D COARDS files.
21. x2sys/x2sys_init.c Now, the distance and speed unit settings (-C, -N) are set here and kept with the TAG for use in other x2sys programs.
22. x2sys/x2sys_datalist.c now has [experimental] support for using a correction table and can compute auxiliary data such as distance and azimuth.

Finally, we have added three new examples to demonstrate plotting of *.img grids, mixing UTM grids and geographic projections, and using greenspline.c for gridding on a spherical surface.

Next: 1.1.8 Overview of GMT Up: 1.1 What is new Previous: 1.1.6 Overview of GMT Contents Index