网格文件格式
GMT 支持的网格数据格式主要分为四大类,这四大类也可细分为更多的数据格式:
netCDF4 标准网格文件格式
netCDF3 “旧”网格文件格式
GMT 自定义二进制文件
其它网格文件格式
netCDF4 标准网格文件格式是最常见的,也最推荐使用的网格数据格式。
它也是 GMT 默认的网格数据格式,一般以 .nc
或 .grd
作为文件后缀。
本章也将只对 netCDF 格式做重点介绍。
GMT 所支持的所有网格文件格式在下表列出,每种网格文件格式均对应一个两字符 ID。
ID |
说明 |
---|---|
GMT netCDF4 标准格式 |
|
|
GMT netCDF format (8-bit integer, COARDS, CF-1.5) |
|
GMT netCDF format (16-bit integer, COARDS, CF-1.5) |
|
GMT netCDF format (32-bit integer, COARDS, CF-1.5) |
|
GMT netCDF format (32-bit float, COARDS, CF-1.5) |
|
GMT netCDF format (64-bit float, COARDS, CF-1.5) |
GMT netCDF3 “旧”格式 |
|
|
GMT netCDF format (8-bit integer, depreciated) |
|
GMT netCDF format (16-bit integer, depreciated) |
|
GMT netCDF format (32-bit integer, depreciated) |
|
GMT netCDF format (32-bit float, depreciated) |
|
GMT netCDF format (64-bit float, depreciated) |
GMT 自定义二进制格式 |
|
|
GMT native, C-binary format (bit-mask) |
|
GMT native, C-binary format (8-bit integer) |
|
GMT native, C-binary format (16-bit integer) |
|
GMT native, C-binary format (32-bit integer) |
|
GMT native, C-binary format (32-bit float) |
|
GMT native, C-binary format (64-bit float) |
其他网格文件格式 |
|
|
SUN raster file format (8-bit standard) |
|
GEODAS grid format GRD98 (NGDC) |
|
Golden Software Surfer format 6 (32-bit float) |
|
Golden Software Surfer format 7 (64-bit float) |
|
Atlantic Geoscience Center AGC (32-bit float) |
|
ESRI Arc/Info ASCII Grid Interchange format (ASCII integer) |
|
ESRI Arc/Info ASCII Grid Interchange format (ASCII float) |
|
Import/export via GDAL |
除了上面列出的网格文件格式之外,有C编程经验的高级用户还可以自己自定义网格文件
格式,并将读写该格式的子程序链接到GMT函数库中,使得GMT可以支持自定义网格文件
格式的读取。详情见GMT源码中的 gmt_customio.c
。
netCDF 格式
GMT保存2D网格时默认使用与COARDS兼容的netCDF格式。COARDS,全称为 Cooperative Ocean/Atmosphere Research Data Service,是一个海洋和大气科学相关 机构分发网格数据时所采用的一个共同标准。GMT的网格数据兼容COARDS标准,因而 GMT可以读取这些机构分发的网格数据,同时,GMT生成的网格数据也可以被其它软件 所读取。
netCDF格式中除了包含数据外,还包含了很多其它属性。
属性 |
说明 |
---|---|
全局属性 |
|
Conventions |
COARDS, CF-1.5 (可选) |
title |
标题 (可选) |
source |
文件是如何创建的 (可选) |
node_offset |
网格配准方式,0 表示网格线配置(默认值),1 表示像素配准 |
X 和 Y 变量属性 |
|
long_name |
坐标名称 (如 “Longitude” 和 “Latitude”) |
units |
坐标单位 (如, “degrees_east” 和 “degrees_north”) |
actual range (or valid range) |
x 和 y 的最小最大值 |
Z 变量属性 |
|
long_name |
Z变量名称 (默认为 “z”) |
units |
Z变量单位 |
scale_factor |
z 值要乘以的因子 (默认值: 1) |
add_offset |
z 值乘以因子后的额外偏移量 (默认值: 0) |
actual_range |
Z值的最小最大值 |
_FillValue (or missing_value) |
数据缺失或无效数据对应的值。若未指定,则根据数据类型自动设置该值 |
GMT 自定义二进制文件
GMT在老版本中并没有使用netCDF作为其网格文件标准格式,而是自定义了一种网格文件格式。 该格式已不推荐使用。该格式的文件包含了一个892个字节的头段,以及数据。下标列出了 头段中所保存的所有信息。
参数 |
描述 |
---|---|
int n_columns |
Number of nodes in the x-dimension |
int n_rows |
Number of nodes in the y-dimension |
int registration |
0 for grid line registration, 1 for pixel registration |
double x_min |
Minimum x-value of region |
double x_max |
Maximum x-value of region |
double y_min |
Minimum y-value of region |
double y_max |
Maximum y-value of region |
double z_min |
Minimum z-value in data set |
double z_max |
Maximum z-value in data set |
double x_inc |
Node spacing in x-dimension |
double y_inc |
Node spacing in y-dimension |
double z_scale_factor |
Factor to multiply z-values after read |
double z_add_offset |
Offset to add to scaled z-values |
char x_units[80] |
Units of the x-dimension |
char y_units[80] |
Units of the y-dimension |
char z_units[80] |
Units of the z-dimension |
char title[80] |
Descriptive title of the data set |
char command[320] |
Command line that produced the grid file |
char remark[160] |
Any additional comments |
TYPE z[n_columns*n_rows] |
1-D array with z-values in scanline format |
其它网格文件格式
除了netCDF和GMT自定义格式外,GMT还支持其它几种网格文件格式。更重要的是, GMT支持通过GDAL读取数据,因而几乎可以读取任意格式的网格文件。
GDAL所支持的光栅格式列表见: https://gdal.org/drivers/raster/index.html