Next: 1.1.4 Overview of GMT Up: 1.1 What is new Previous: 1.1.2 Overview of GMT Contents Index

## 1.1.3 Overview of GMT 4.2.1 [October-10, 2007]

Changes in GMT 4.2.1 once again address many structural issues as well as numerous bug fixes. System-wide changes include a revamping of the entire configure/make setup for both regular installations and CVS users, an improvement to how the BCR 2-D interpolations for images and grids are done by adding B-spline and nearest neighbor as optional interpolants, introduction of a new PostScript Level 2 pattern machinery in pslib.c, an updated GSHHS coastline version (which also includes Australia internal state boundaries, fixes to the Yemeni and Lebanese borders, and more river lines), and general improvements and corrections to the documentation, such as placing all man pages in section 1 (except pslib which goes in section 3). Starting with GMT 4.2.1 we will also begin naming the coastline-related archives by the GSHHS prefix and use the actual GSHHS version number (now 1.9).

Individual programs have also seen some new options or enhancements:

1. gmtselect has enhancement -Lp to limit points beyond a line's endpoints.
2. grdfilter has new option -D5 to allow direct filtering of Mercator grids (img).
3. grdmask has an enhanced -A option; append m or p to design a mask polygon by first following a meridian, then a parallel, or vice versa.
4. gmtmath has several new operators, such as PLMg (geophysical normalization and suitable for high degree and order), FACT, SKEW, KURT, PQUANT, EULER, PSI, PV, QV, COT, COTD, ACOT, SEC, SECD, ASEC, CSC, CSCD, and ACSC.
5. grdmath has the same new operator as gmtmath, plus YLMg and CBAZ.
6. grdproject now considers -R an optional setting.
7. mapproject has an enhanced -G- option where increments rather than cumulative distances are returned. Also, for UTM projections with -C, the -R option is now optional provided the UTM zone is properly specified.
8. ps2raster has now a new -P option for forcing portrait orientation.
9. pshistogram has now a new -C option for using a cpt file to paint the bars.
10. pstext will now accept the @_, @: and @; escape sequences for underline, font size change, and font color change regardless of mode.
11. psrose has a new option -L to control the labels.
12. psxy has an enhanced -A option; append m or p to draw a line by first following a meridian, then a parallel, or vice versa. Can now plot a notched box-and-whisker symbol, and we added +n dx/dy to nudge placement of quoted line labels. Encanced-E.../[-+]pen where + means apply cpt color (-C) to symbol and bar - means apply to bar only (no fill). Likewise, -W[+-]pen controls if -C sets outline (-) or both fill and outline (+).
13. psxyz hass enhanced -W[+-]pen that controls if -C sets outline (-) or both fill and outline (+).
14. sample1d now accepts -Fn for no interpolation (returns nearest value).
15. Two additional color maps have been added: panoply mimics the default colormap in the netCDF viewing program Panoply; cyclic provides a full spectrum of 360 degrees in hue.
16. originator (spotter supplement) has new option -Q to specify constant r/t for (x,y,z) data only.

Below is a list of previous problems that we have identified and corrected in the current release:

gmt_agc_io.c
  : Failed when nx and/or ny was multiple of 40 + 1.
gmt_custom_io.c
  : Surfer grid start at lower, not upper left.
gmt_io.c
  : Combinations of OUTPUT_DEGREE_FORMAT=ddd:mm:ss.xxxF and -: would add WE to lat and SN to lon for formatted output. Blank lines were not recognized under cygwin/SFU. When no delimiters are used for input date format (e.g., yyyymmdd) then yyyy must be 4 characters and we must use %4d. Leading zeros are required if year 1000.
gmt_init.c
  : For quoted lines, the :Lh modifier did not reset label if a segment header had no label specified. Also, label would include the leading ïn a multi-word label. Now, UTM zones may be A,B,Y,Z or 1-60 with modifiers C-X (except I and O). Parsing of psxy's -Sf incorrectly scaled a count to inches. Suffices h+- in -J were mistaken for units.
gmt_map.c
  : KM_PER_DEG was not reset in `GMT_set_spherical`. This may have caused errors in scaling when ELLIPSOID was not set to Sphere. `GMT_distances` function did not work with correct pointer. Great circle intersection did not select correct vector sign so points 180 degrees from a line could pass as close in gmtselect. Removed restriction that east and west limits can not be both negative. This fixed the remaining Hexagone problem.
gmt_nc.c
  : The attribute `actual_range` was erroneously stored in grid units in stead of actual units. The difference is only relevant when storing scaled integers. A backward compatibility for grids written with previous versions is built in. Also the GMT version number is added to the global attributes and text attributes are truncated to their proper length.
gmt_plot.c
  : Failed to activate ddd.mm.xxx format for maps. Oblique tickmarks sometimes were missing for latitudes.
gmt_proj.c
  : -JS inverse did not apply quadrant check.
gmt_support.c
  : ddd:mm.xx (2 or more x) failed to format properly. Needed to reverse z_low and z_high values as well as rgb values when reversing color maps.
gmt_vector.c
  : Function `GMT_fix_up_path`: Intermediate longitudes now wrapped based on segment, not on map extent.``greenwich'' argument became superfluous and was removed. Argument ``step'' was found to be in degrees, not in inches as some calling programs assumed.
filter1d.c
  : For -Ff file, set filter width to DBL_MAX until filter is read.
grd2cpt.c
  : -E flag did not work unless -T was used.
grd2xyz.c
  : Did not switch to binary i/o mode when -Z specified binary output (Windows bug only).
grdblend.c
  : Now works with Windows DLL by using the GMT i/o functions.
grdcontour.c
  : -A value would turn off the expected default transparency.
grdcut.c
  : Domain check failed for geographic 360-degree grid with -fg.
grdedit.c
  : Disallow -T for Surfer grids since they don't support both kinds of node registration. -N did not take into account if -fg was given.
grdfilter.c
  : -I nx+/ny+ was not propagated to the output grid setup.
grdimage.c
  : Removed -T option; no more polygon drawing (use grdview). -S max_radius changed to -S[-]bcln[/threshold] to take advantage of new and improved projection function `GMT_grd_project`.
grdlandmask.c
  : Failed to set rightmost, empty bin if 360-periodicity in effect; also needed to set repeating right column to left column.
grdmask.c
  : For -S..k, did not properly account for latitude effect on dx. SEGV error when `GMT_fix_up_path` returned fewer points than originally allocated and the n_alloc variable was not reduced accordingly.
grdmath.c
  : When M=0, set Imaginary component of YLM to 0 (was same as real).
grdproject.c
  : -S max_radius changed to -S[-]bcln[/threshold] to take advantage of new and improved projection function `GMT_grd_project`.
grdreformat.c
  : Could not determine format of output file automatically since file does not yet exist (must append file-type code).
grdsample.c
  : -Q value changed to -Q[-]bcln[/threshold] to take advantage of new BCR code.
makecpt.c
  : Colormaps with non-equidistant intervals can now be reversed properly.
project.c
  : Wrong azimuth for -N and -G generating lines.
pslegend.c
  : Usage message did not explain the -L option. Added @ECHO OFF to avoid commands being echoed into the PostScript output under Windows. The color change (C) macro messed up -Xa and -Ya absolute settings.
psbasemap.c
  : Check that -L is used with geographic coordinates only.
psimage.c
  : The -I option had become always active.
pslib.c
  : Now no text is written if font size equals 0.
psscale.c
  : Annotations did not work properly if -Q and -B1p were used together.
psxyz.c
  : Fixed bug in painting outline of text symbols.
xyz2grd.c
  : -E did not process pixel grids properly.

A few bug-fixes applies to the supplements as well:

gshhstograss.c
  : Removed use of `getopt` so even the lamest systems can compile it (incuding Windows).
img2mercgrd.c
  : Fixed AND vs OR logic in lat bounds check when -D was set. Used wrong origin when -C was used. Now relative to lon = lat = 0.
DLL
  : The meca supplements now work with Windows DLL by using the GMT i/o functions.
utilmeca.c
  : Make sure that checks on floating point numbers work well, even in case of small round off errors. Thanks to Peter Lombard.
mgd77manage.c
  : -Q value changed to -Q[-]bcln[/threshold] to take advantage of new BCR code. Added E77 status attribute to MGD77+ files.
mgd77sniffer.c
  : Same. Adjusted anomaly recalculation code so that cruises with m=1 and b=0 are reported to be same as expected. Repaired 8 memory leaks. Fixed two regression bugs, one in grid comparisons in which not all data were copied into the regression arrays and the other in faa recomputation regression where eot was being applied twice. Added code to check if regression is outside a specified percent (-P). Updated e77 messages and moved along-track grid offset errors to e77 header rather than having its own error class.
gmtdigitize.c
  : Must use separate x and y-scales if -Jx is specified. Wrong coordinates used to calculate rms misfit.
  originator.c Now lists option -L in both usage and man page.
  x2sys.c `x2sys_set_system` did not initialize structures properly.
  x2sys_cross.c Skip duplicate files with a warning. Distance calculations were bogus (see gmt_map.c), and wrong number of arguments passed to readfile function pointer.

Finally, as far as CVS users are concerned, the old "gurumake" system has gone. To compile from CVS, users need to use a GNU compatible make program. A combination of GNUmakefile and makefile files make sure that those components not in the tarballs are created from scratch. Type make in the GMT directory to get a list of targets.

Next: 1.1.4 Overview of GMT Up: 1.1 What is new Previous: 1.1.2 Overview of GMT Contents Index