Next: 1.1.5 Overview of GMT
Up: 1.1 What is new
Previous: 1.1.3 Overview of GMT
Contents
Index
Most changes in GMT 4.1 are improvements ``under the hood''. The most significant of these are
- Addition of ability to both read and write netCDF files that are COARDS compliant. This means
that GMT, for the first time, is able to read netCDF files created by applications other than itself,
and that other applications capable of reading COARDS-compliant netCDF grids can directly import data
from GMT. We have added the new parameter GRID_FORMAT to the GMT defaults with ``nf'' as default.
Users who, against our recommendation, prefer to maintain the old non-COARDS compliant format as their
default grid format can instead select ``cf''. Support for extracting 2-D slices from 3-D netCDF grids has
also been added.
- An overhaul of how the pslib library encodes PostScript images, resulting in vastly smaller files when
certain conditions are met, and general shrinking overall by enabling RLE or LZW compression. We
have also added hooks for setting three new PostScript parameters via gmtdefaults settings:
PS_LINE_CAP, PS_LINE_JOIN, and PS_MITER_LIMIT. See gmtdefaults for details.
- Improved alignment of strings ending in ``1'' in the PostScript output.
- Adjustments to how native GMT grid headers are read and written in order to be fully 64-bit safe.
GMT now runs in full 64-bit mode on platforms that supports it (e.g., Mac OS X G5).
- Making GMT tread-safe by replacing strtok with our own GMT_strtok function.
- Implemented full inverse Winkel map projection based on a new algorithm by Ipbuker, 2002,
Cartography & Geographical Information Science, 29, 37-42.
- Extended the options that is used to specify grid spacing (usually -Ixinc/yinc) to allow for
specifying nx/ny instead (by appending +). Also, append ! to adjust the range so it fits exactly the
given increment [by default the range is kept fixed and sloppy increments are adjusted accordingly].
Append ekin for increments in meter, km, miles
or nautical miles, respectively. These increments are converted to degrees
longitude (at the middle latitude) and degrees latitude.
- The polar projection -Jp now takes an optional suffix r that reverses the
radial coordinates (useful when is elevation as used by sky plots.)
- The misc supplement has two new items: ps2raster uses ghostscript to
fascilitate the rasterization of PostScript files, while nc2xy allows extraction of data columns from
COARDS-compliant netCDF files.
- The mgd77 supplement has two new items: mgd77convert translates between different
MGD77 formats (including a new netCDF-based format), while mgd77manage assists in the management
of trackline data sets.
- We now have improved PDF layout and navigation (thanks to Misha Tchernychev).
- The HTML versions of all manual pages are now generated with groff, and has active links
for GMT Default parameters as they are references in the documentation.
Many programs or options have received minor updates and new features, such as
- -b
- : Ability to specify byte-swapping for native binary input and output tables by using upper
case SD. This is useful if you have binary tables created on a little-endian machine (e.g.,
Linux PC) and need to read them on a big-endian machine (e.g., most RISC-chip machines from Sun, HP, Apple).
- filter1d.c
- : Allow NaNs in all but the ``independent data'' column.
- grdcontour.c
- : Label option +ap[ud] for always having labels be readable up or down hills.
- gmtconvert.c
- : New -N option suppresses output records when all fields are NaNs.
- gmtmath.c
- : Added TN function
for evaluating Chebyshev polynomials; new constant Tn was added to easily select normalized T
(gives coordinates from -1 to + 1 suitable for evaluating Legendre and Chebyshev polynomials).
Finally, we added CORRCOEFF for calculation of correlation coefficients, and -I to reverse
the output by printing the last row first.
- grd2cpt.c
- : New option D sets the back- and foreground colors to the colors at the limits of the cpt file.
- grd2xyz.c
- : Added -E for ESRI interchange ASCII grid dump.
- grdfilter.c
- : Geographic boundary conditions are now in effect if -D4 is selected.
- grdgradient.c
- : Added option -E for Lambertian or Peuckeer illumination.
- grdmath.c
- : Allow -bi to be used with input files for commands PDIST, LDIST,
and INSIDE. When spherical calculations are selected we now use the ELLIPSOID setting to
determine if distance calculations should be along geodesics or great circles. Also added TN function
for evaluating Chebyshev polynomials; new constants Xn and Yn was added to easily select
normalized X and Y. Finally, we added CORRCOEFF for calculation of correlation coefficients.
- grdraster.c
- : Optionally select a data set by giving a text pattern instead of data ID number.
This makes it easier to specify a certain data set (i.e., ``ETOPO2'') than having to remember its arbitrary numerical
ID. Also, native grids with GMT headers can also be placed in the database by appending Hnbytes to the
corresponding grdraster.info entry, where nbytes is the size of the header that should be skipped
(use 892 for GMT headers).
- makecpt.c
- : New option D sets the back- and foreground colors to the colors at the limits of the cpt file.
- mapproject.c
- : -L now outputs both the minimum distance and the coordinates
of the nearest point on the line.
- pscoast.c
- : Added -Z for 3-D map z-level (as in psbasemap and others).
- pshistogram.c
- : New option -Tcol lets user select any column to be used, starting
with 0 (first). The old -2 option is retired (but remains accessible for backwards compatibility).
- psimage.c
- : Now support inclusion of EPS images.
- pslegend.c
- : Added layout option B for inserting color bars via psscale.
- psscale.c
- : Now supports an optional ;label at end of each line in cpt files.
If present this label will replace the default annotations when option -L is used.
- psxyz.c
- : Added -Q to disable sorting of points based on distance.
- sample1d.c
- : Allow NaNs in all but the ``independent data'' column.
- xyz2grd.c
- : Added -E for ESRI interchange ASCII grid digest.
Inevitably, when new features are added, new bugs come along with them. Below is a list of problems
that we have identified and corrected in the current release:
- install_gmt
- : No longer test netcdf installation since that can fail even when install was
successful [e.g., under Mac OS X Tiger].
- gmt.h
- : GMT_swab4 used unsigned long instead of unsigned int which could cause
64-bit problems.
- gmt_time_system.h
- : Fixed MJD offsets by subtracting 10 days.
- gmt_calclock.c
- : time to hr,min,sec was vulnerable to round-off when optimized. Also, hh:mm data
(without trailing :ss) would loose the minutes (hh:mm:ss was OK).
- gmt_grdio.c
- : Bug in scale/offset for grdblend's row-by-row i/o.
- gmt_init.c
- : Would eat number with leading plus sign without checking if it actually was
a +gmtdefaults file instruction; thus gmtmath could not see numbers such as +13.5.
Command line argument -BASEMAP_FRAME_RGB=color was not passed through to tick-, grid- and
annotation-properties. GMT_end now frees memory used for hashing. Did not use custom ellipsoid to set
DEG2M parameter so we got large errors for planets with significantly different radii.
- gmt_io.c
- : Bug in reading yyyy[/]jjj data fixed. GMT_lines_init
had trouble if 2000 segments had no data at all. It also allocated 2000 points for each segment but never
deallocated the unused portions, thus running up memory fast. GMT_write_segmentheader wrote nothing
if input was binary and output is ASCII. Fixed a few memory leaks.
- gmt_map.c
- : Azimuth to angle calculation for linear projections now properly handle different
scales in x and y. The calculation was also vulnerable to bad wrap-around, giving strange directions for
vectors in psxy. Geodesic distance calculation could get wrong quadrant.
- gmt_plot.c
- : 360 polar basemaps could lack outline. Direction for map roses were inaccurate.
Circle and - boundaries did not allocate enough memory for arrays. Would plot both -180 and +180 annotations
for periodic maps.
- gmt_shore.c
- : Must explicitly close polygons since inside/outside test in other programs expects it.
- gmt_support.c
- : Trouble extracting subregions of grid with east = 0. Cartesian LDIST failed
when mininum distance was requested (only done via grdmath). Color names got truncated to 16 characters.
Improved workings of GMT_sample_cpt in support of makecpt. Fixed more memory leaks.
Bad LF/CR removal for coastline.conf dir.
- filter1d.c
- : -Ff with even number of coefficients sometimes skip a coefficient.
- gmtconvert.c
- : Missed first multisegment output header if input file was ASCII.
- gmtmath.c
- : No longer have to say -Ca if there is only one input column. Did not understand
dateTclock as command line data.
- gmtselect.c
- : If -M is on and a portion of a segment is skipped, we must
reissue the multisegment header when segment resumes. Now handles both Cartesian
and spherical polygons correctly.
- grd2xyz.c
- : Sloppy -R resulted in bad x,y values and sometimes allocation error.
- grdfilter.c
- : Convolution filters now use correct area normalization.
- grdgradient.c
- : If -M is used with grids that include poles, ignore the poles
when normalizing the slopes.
- grdimage.c
- : Cannot use -R to extract subset when -J is oblique. Reverse log-axes did not work.
- grdmask.c
- : Now handles both Cartesian and spherical correctly.
- grdmath.c
- : Wrong sign in D2DY2, and bogus value at y = ymin. Now handles both Cartesian
and spherical polygons correctly. Constants given on command line can now be absolute time, geographic coordinates, or
regular floating-point numbers.
- grdtrack.c
- : Would fail to skip first two columns for ASCII input if dd:mm:ss format was used.
- grdview.c
- : Cannot use -R to extract subset when -J is oblique.
- grdvolume.c
- : -Clow/high/delta did not check for low < high, etc.
- pscoast.c
- : Recursive painting could get tricked when boundaries were curved.
- pslegend.c
- : Did not pass +gmtdefaults and -PAR=val onto system calls.
- psscale.c
- : Vertical annotations w/custom D_FORMAT were not aligned. Now uses more optimal means
to display the color bar, leading to smaller PostScript files. -E did not flip sides when a negative width was used.
- psxy.c
- : -Sp is now a true point, but can also take an optional size. Pentagon symbol had wrong
normalization scale. If a fixed symbol size was given in -S, with the symbol type supplied from file,
we would not scale symbols correctly if upper case symbols were given.
- psxyz.c
- : Wrong index used in assigning color from cpt and in updating vector lengths. If a fixed symbol
size was given in -S, with the symbol type supplied from file,
we would not scale symbols correctly if upper case symbols were given
- spectrum1d.c
- : Bugs in error expressions for admittance, gain, and phase have been corrected.
- x2sys & mgd77
- : Made DOS-format (CR/LF) tolerant. Both supplements are now undergoing rapid
development.
Next: 1.1.5 Overview of GMT
Up: 1.1 What is new
Previous: 1.1.3 Overview of GMT
Contents
Index
Paul Wessel
2006-05-31