Next: 1.1.3 Overview of GMT
Up: 1.1 What is new
Previous: 1.1.1 Overview of GMT
Contents
Index
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 -Gxfile: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:
- 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.
- gmt_map.c also has added support for enhanced -E option for 3-D perspective views.
- gmtmath.c has added new operators NOT and INRANGE.
- grd2cpt.c can now accept multiple grid files at once.
- 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].
- mapproject.c has extended the -A option by making the fixed point
optional; if not given we compute azimuths between successive data points.
- minmax.c has optional /col that may be added to -Tdz to select another column [third].
Added -S to leave space for error bars. Useful with -I and subsequent psxy -E.
- 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.
- psimage.c has new -Gt option, with assignment of color to be made transparent.
- pslegend.c lets N (number of columns) also affect the printing of labels.
Can now use rectangle among the symbols.
- psmask.c now has modifiers +nn_points and +q to the -D option to limit the minimum number of
points a polygon must have and, to suppress PostScript output, respectively.
- pstext.c has enhanced -Z+ option expects z-level values in 3rd column.
- 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.
- 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 -Cgs-command to pass one or more
custom switches directly to ghostscript, and -Q[g
t]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.
- psxy.c has new option -Iintens to modulate fill color via a fixed illumination value.
- psxyz.c has the same new option -Iintens.
- 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.
- mgd77/mgd77track.c has enhanced -A option to place cruise ID equidistantly (distance or time) along the track.
- spotter/backtracker.c has new option -e to specify a single fixed total
reconstruction rotation that will be applied to all input points.
- x2sys/x2sys.c internals now has automatic swabbing of index files, if required.
Can now handle netCDF 1-D COARDS files.
- 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.
- 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.3 Overview of GMT
Up: 1.1 What is new
Previous: 1.1.1 Overview of GMT
Contents
Index
Paul Wessel
2009-07-13