grdreformat − Converting between different grdfile formats. |
grdreformat ingrdfile[=id[/scale/offset[/NaNvalue]]] outgrdfile[=id[/scale/offset[/NaNvalue]]] [ −N ] [ −Rwest/east/south/north[r] ] [ −V ] |
grdreformat reads a grdfile in one format and writes it out using another format. As an option the user may select a subset of the data to be written and to specify scaling, translation, and NaN-value. |
ingrdfile |
The grdfile to be read. Append format =id code if
not a standard COARDS-compliant netCDF grdfile. If
=id is set (see below), you may optionally append
scale and offset. These options will scale the
data and then offset them with the specified amounts after
reading. |
outgrdfile |
The grdfile to be written. Append format =id code
if not a standard COARDS-compliant netCDF grdfile. If
=id is set (see below), you may optionally append
scale and offset. These options are
particularly practical when storing the data as integers,
first removing an offset and then scaling down the values.
Since the scale and offset are applied in reverse order when
reading, this does not affect the data values (except for
round-offs). |
−N |
Suppress the writing of the GMT header structure. This is useful when you want to write a native grid to be used by grdraster. It only applies to native grids and is ignored for netCDF output. |
||
−R |
xmin, xmax, ymin, and ymax specify the Region of interest. For geographic regions, these limits correspond to west, east, south, and north and you may specify them in decimal degrees or in [+-]dd:mm[:ss.xxx][W|E|S|N] format. Append r if lower left and upper right map coordinates are given instead of wesn. The two shorthands −Rg −Rd stand for global domain (0/360 or -180/+180 in longitude respectively, with -90/+90 in latitude). For calendar time coordinates you may either give relative time (relative to the selected TIME_EPOCH and in the selected TIME_UNIT; append t to −JX|x), or absolute time of the form [date]T[clock] (append T to −JX|x). At least one of date and clock must be present; the T is always required. The date string must be of the form [-]yyyy[-mm[-dd]] (Gregorian calendar) or yyyy[-Www[-d]] (ISO week calendar), while the clock string must be of the form hh:mm:ss[.xxx]. The use of delimiters and their type and positions must be as indicated (however, input/output and plotting formats are flexible). |
||
−V |
Selects verbose mode, which will send progress reports to stderr [Default runs "silently"]. |
By default, grids will be written as floating point data
stored in binary files using the netCDF format and meta-data
structure. This format is conform the COARDS conventions.
GMT versions prior to 4.1 produced netCDF files that
did not conform to these conventions. Although these files
are still supported, their use is depreciated. To write
other than floating point COARDS-compliant netCDF files,
append the =id suffix to the filename
outgrdfile. |
id |
GMT 4 netCDF standard formats |
||
nb |
GMT netCDF format (byte) (COARDS-compliant) |
||
ns |
GMT netCDF format (short) (COARDS-compliant) |
||
ni |
GMT netCDF format (integer) (COARDS-compliant) |
||
nf |
GMT netCDF format (float) (COARDS-compliant) |
||
nd |
GMT netCDF format (double) (COARDS-compliant) |
||
id |
GMT 3 netCDF legacy formats |
||
cb |
GMT netCDF format (byte) (depreciated) |
||
cs |
GMT netCDF format (short) (depreciated) |
||
ci |
GMT netCDF format (integer) (depreciated) |
||
cf |
GMT netCDF format (float) (depreciated) |
||
cd |
GMT netCDF format (double) (depreciated) |
||
id |
GMT native binary formats |
||
bm |
GMT native, C-binary format (bit-mask) |
||
bb |
GMT native, C-binary format (byte) |
||
bs |
GMT native, C-binary format (short) |
||
bi |
GMT native, C-binary format (integer) |
||
bf |
GMT native, C-binary format (float) |
||
bd |
GMT native, C-binary format (double) |
||
id |
Miscellaneous formats |
||
rb |
SUN rasterfile format (8-bit standard) |
||
rf |
GEODAS grid format GRD98 (NGDC) |
||
sf |
Golden Software Surfer format 6 (float) |
||
sd |
Golden Software Surfer format 7 (double, read-only) |
The standard format used for gdrfiles is based on netCDF and conforms to the COARDS conventions. Files written in this format can be read by numerous third-party programs and are platform-independent. Some disk-space can be saved by storing the data as bytes or shorts in stead of integers. Use the scale and offset parameters to make this work without loss of data range or significance. For more details, see Appendix B. Multi-variable grid files 3-Dimensional grids |
For binary native GMT files the size of the GMT grdheader block is hsize = 896 bytes, and the total size of the file is hsize + nx * ny * item_size, where item_size is the size in bytes of each element (1, 2, 4). Bit grids are stored using 4-byte integers, each holding 32 bits, so for these files the size equation is modified by using ceil (nx / 32) * 4 instead of nx. Note that these files are platform-dependent. Files written on Little Endian machines (e.g. PCs) can not be read on Big Endian machines (e.g. most workstations). For header and grid details, see Appendix B. |
Regardless of the precision of the input data, GMT programs that create gridded files will internally hold the grids in 4-byte floating point arrays. This is done to conserve memory and futhermore most if not all real data can be stored using 4-byte floating point values. Data with higher precision (i.e., double precision values) will loose that precision once GMT operates on the grid or writes out new grids. To limit loss of precision when processing data you should always consider normalizing the data prior to processing. |
To extract the second layer from a 3-dimensional grid named temp from a COARDS-compliant netCDF file climate.grd: grdreformat climate.grd?temp[1] temp.grd -V To create a 4-byte native floating point grid from the COARDS-compliant netCDF file data.grd: grdreformat data.grd ras_data.b4=bf −V To make a 2-byte short integer file, scale it by 10, subtract 32000, setting NaNs to -9999, do grdreformat values.grd shorts.i2=bs/10/-32000/-9999 −V To create a Sun standard 8-bit rasterfile for a subset of the data file image.grd, assuming the range in image.grd is 0-1 and we need 0-255, run grdreformat image.grd −R-60/-40/-40/-30 image.ras8=rb/255/0 −V To convert etopo2.grd to etopo2.i2 that can be used by grdraster, try grdreformat etopo2.grd etopo2.i2=bs −N −V |