grdgdal

贡献者

周茂

最近更新日期

2022-07-02


官方文档

grdgdal

简介

从 gmt 执行 GDAL 光栅相关的程序

grdgdal 封装了一部分 GDAL 程序(当前包含 gdalinfo,gdaldem,gdal_grid,gdal_translate,gdal_rasterize 以及 gdalwarp),因此可以在该模块中实现上述命令的功能。考虑到 gmt 和 GDAL 的语法差异较大,本模块仅提供了较少的 GMT 风格的选项,而是使用 -F 选项将 GDAL 风格的语法传递给 GDAL。因此,要使用该模块的用户可能需要查阅 GDAL 文档来了解其用法。

本模块在输出网格时,提供了一个选项来设置使用 GMT 或 GDAL 来写网格文件。两种方式各有优缺点。使用 GMT 写网格时会将数据从 GDAL 拷贝到 GMT,因此可能会稍慢,但网格文件可以直接被 Matlab,Julia,Python 等使用。使用 GDAL 写网格可能会稍为快一些,但网格可能不能直接被上述编程语言使用。

语法

gmt grdgdal infile -Aprog[+mmethod+ccpt] -Goutfile [ -Fgd opts”] [ -M[+r[+w]]] [ -Rregion ] [ -V[level] ] [ -bibinary ] [ -dnodata[+ccol] ] [ -eregexp ] [ -ggaps ] [ -hi ] [ -iflags ] [ -qiflags ] [ -rreg ] [ --PAR=value ]

必选选项

infile

ASCII,二进制表数据,OGR 数据或 2—D 网格文件名。具体 -A 使用的程序有关

-Aprog[+mmethod+ccpt]

选择要运行的 GDAL 程序,prog 可选的值包括:infodemgridrasterizetranslatewarp。如果为 dem,则需追加选项 +mmethodmethod 可设置为:hillshade,color-relief,slope,TRI,TPI 或 roughness;使用 color-relief 时还需使用 +ccpt_name 指定 cpt。

-Goutgrid[=ID][+ddivisor][+ninvalid][+ooffset|a][+sscale|a][:driver[dataType][+coptions]]

输出网格文件名。通过追加 =ID 可指定 网格格式。对网格追加子选项可进行额外设置:

  • +d 将网格除以一个数 divisor [默认为 1]

  • +n 将网格中的 invalid 替换为 NaN

  • +o 将网格中的值进行一定的偏移,即加一个数 offset,或使用 a 自动对值进行调整以保证整数网格的精度 [默认为 0]

  • +s 将网格中的值缩放,即乘以 scale,或使用 a 自动对网格缩放以保证整数网格的精度 [默认为 1]

offset 操作位于 scale 之前;+sa 将会同时设置 +oa。如果需使用 GDAL 指定网格格式,则 ID 应设置为 gd,并指定 :driver 和可选的数据类型 dataType,以及 +coptions 选项传递给 GDAL 的 -co 选项。

可选选项

-Fgdal opts

传递给 -A 指定的程序的选项列表,用双引号扩起来

-M[+r[+w]]

-M 后不加任何选项时,使用 GDAL 读和写数据。

  • +r 使用 GDAL 读数据,使用 GMT 写数据,当读 OGR 格式数据时,该选项为必须

  • +w-M 相同

-Rxmin/xmax/ymin/ymax[+r][+uunit] (more …)

指定数据范围

-V[level] (more …)

设置 verbose 等级 [w]

-bi[ncols][type][w][+l|b] (more …)

设置二进制输入数据的格式

-d[i|o]nodata (more …)

将输入数据中等于 nodata 的记录替换为 NaN,或将输出数据中值为 NaN 的记录替换为 nodata

-e[~]“pattern” | -e[~]/regexp/[i] (more …)

筛选或剔除匹配指定模式的数据记录

-g[a]x|y|d|X|Y|D|[col]zgap[+n|p] (more …)

确定数据或线段的间断

-h[i|o][n][+c][+d][+msegheader][+rremark][+ttitle] (more …)

跳过或生成指定数目的头段记录

-icols[+l][+sscale][+ooffset][,][,t[word]] (more …)

设置输入数据列及简单变换(0表示第一列,t 表示文本列)

-qi[~]rows[+ccol][+a|f|s] (more …)

筛选输入的行或数据范围

-r[g|p] (more …)

设置网格配置方式 [默认为网格线配准]

-:[i|o] (more …)

交换输入或输出中的第一和第二列

-^-

显示简短的帮助信息,包括模块简介和基本语法信息(Windows下只能使用 -

-++

显示帮助信息,包括模块简介、基本语法以及模块特有选项的说明

-? 或无参数

显示完整的帮助信息,包括模块简介、基本语法以及所有选项的说明

--PAR=value

临时修改GMT参数的值,可重复多次使用。参数列表见 配置参数

示例

将 VRT 文件使用最邻近算法网格化,网格分辨率为 0.05,结果保存为 NetCDF 格式

gmt grdgdal lixo.vrt -Agrid -R0/10/0/10 -Gjunk.nc -I0.05 -F"-a nearest" -M+r

与上述功能相同,但使用 CSV 文件并使用 GDAL 保存网格

gmt grdgdal lixo.csv -Agrid -R0/10/0/10 -Gjunk.nc -I0.05 -F"-a nearest" -M+w

相关模块

grdconvert