grdproject
- 官方文档:
- 简介:
对网格数据做地图变换和逆变换
grdproject 根据是否设置了 -I 选项来执行不同的操作。
如果已设置,它将通过在新节点处对表面进行重采样,将网格数据集从矩形坐标系转换为地理坐标系。
如果未设置,它将把地理网格数据集投影到矩形网格上。
为了获取每个新节点的值,其位置会被反向投影回输入网格,然后在周围的输入网格值之间进行插值。
默认使用双三次插值。通过同时对输入网格节点进行正向投影来避免混叠。
如果两个或更多节点被投影到同一个新节点上,它们的平均值将在新节点值的计算中起主导作用。
插值和混叠由 -n 选项控制。可以通过指定网格间距、节点数量或分辨率等方式确定新节点间距。
未受输入数据约束的节点被设置为 NaN。
-R 选项可用于选择比网格文件范围更大或更小的地图区域。
语法
gmt grdproject
ingrid
-Goutgrid
-Jparameters
[ -C[dx/dy] ]
[ -Dxinc[+e|n][/yinc[+e|n]] ]
[ -Edpi ]
[ -F[c|i|p|e|f|k|M|n|u] ]
[ -I ]
[ -Mc|i|p ]
[ -Rregion ]
[ -V[level] ]
[ -jflags ]
[ -nflags ]
[ -rreg ]
[ --PAR=value ]
输入数据
ingrid[=ID|?varname][+bband][+ddivisor][+ninvalid][+ooffset][+sscale]
输入网格名。通过追加 =ID 可指定 网格格式 [默认为 =nf]。 追加 ?varname 可指定 NetCDF 变量 [默认为 GMT 找到的第一个 2-D 网格]。 参数详细介绍请参考 读 netCDF 文件。
必须选项
- -G
-Goutgrid[=ID][+ddivisor][+ninvalid][+ooffset|a][+sscale|a][:driver[dataType][+coptions]]
输出网格文件名。通过追加 =ID 可指定 网格格式。 参数详细介绍请参考 写 netCDF 文件。
- -J
- -Jprojection
设置地图投影方式。 (参数详细介绍)
可选选项
- -C
- -C[dx/dy]
让投影后的坐标相对于投影中心 [默认相对于左下角]。 可以添加投影后坐标的偏移量 dx/dy [默认无偏移]。
- -D
- -Dxinc[+e|n][/yinc[+e|n]]
设置新网格的网格间距。如果既未设置
-D也未设置-E,则选择与输入节点数量相同的输出节点。地理(度)坐标:附加 m 表示弧分,或 s 表示弧秒。 如果改为附加单位 e、 f、 k、 M、 n 或 u 之一, 则分别以米、英尺、千米、英里、海里或美制测绘英尺为单位,并将其转换为该区域中间纬度处的等效经度。 如果给出了 y_inc 但设置为 0,则它将被重置为等于 x_inc。否则它将被转换为纬度。
所有坐标:如果附加了 +e,则相应的最大 x (东)或 y (北)可能会稍作调整以精确适应给定的间距 [默认情况下,增量可能会稍作调整以适应给定的范围]。可以不指定间距,而是通过在提供的整数参数后附加 +n 来指定所需的节点数量。 随后将根据配准方式、节点数量和范围重新计算间距。
- -E
- -Edpi
设置新网格的分辨率,即每英寸的点数。
- -F
- -F[c|i|p|e|f|k|M|n|u]
强制 1:1 比例缩放,即输出数据(或输入,参见
-I)的单位是真实的投影长度,以米为单位 [e]。若要指定其他单位,请附加 f (英尺)、 k (千米)、 M (法定英里)、 n (海里)、 u (美制测绘英尺)、 i (英寸)、 c (厘米)或 p (磅)。 如果不使用本选项,输出(或输入,参见
-I)将采用由 PROJ_LENGTH_UNIT 指定的单位(参见-M)。
- -I
- -I
逆变换,将矩形区域变换成地理区域。
- -M
- -Mc|i|p
指定投影后的投影度量单位,附加 c、 i 或 p 表示厘米、英寸或磅 [默认值由 PROJ_LENGTH_UNIT 控制]。 不能与
-F一起使用。
- -R
- -Rxmin/xmax/ymin/ymax[+r][+uunit]
指定数据范围。 (参数详细介绍)
可以指定一个更小的 w/e/s/n 范围,从而仅投影网格文件的一个子集 [默认值为网格文件给出的范围]。
- -V
- -V[level]
设置 verbose 等级 [w]。 (参数详细介绍)
- -j
- -je|f|g
设置球面距离的计算方式。 (参数详细介绍)
- -n
- -n[b|c|l|n][+a][+bBC][+c][+tthreshold]
设置网格文件的插值方式。 (参数详细介绍)
- -r
- -r[g|p]
设置网格配置方式 [默认为网格线配准]。 (参数详细介绍)
- -^ 或 -
显示简短的帮助信息,包括模块简介和基本语法信息(Windows下只能使用 -)
- -+ 或 +
显示帮助信息,包括模块简介、基本语法以及模块特有选项的说明
- -? 或无参数
显示完整的帮助信息,包括模块简介、基本语法以及所有选项的说明
- --PAR=value
临时修改GMT参数的值,可重复多次使用。参数列表见 配置参数
示例
将远程地理网格 @earth_relief_05m 的一部分转换为比例尺为每度 0.25 英寸、分辨率为 300 dpi 的像素配准墨卡托网格:
gmt grdproject @earth_relief_05m -R20/50/12/25 -Jm0.25i -E300 -r -Getopo5_merc.nc -Mi
将文件 topo_tm.nc 反投影回地理网格。topo_tm.nc 中的坐标必须是使用相同的投影参数创建的:
gmt grdproject topo_tm.nc -R-80/-70/20/40 -Jt-75/1:500000 -I -D5m -V -Gtopo.nc
将文件 topo_utm.nc(单位为 UTM 米)反投影回地理网格,指定以米为度量单位的一比一映射:
gmt grdproject topo_utm.nc -R203/205/60/65 -Ju5/1:1 -I -Gtopo.nc -V
将文件 data.nc(单位为墨卡托米,中央经线为格林威治,东伪偏移为 -4,且基于 WGS-72 椭球体生成)反投影回地理网格,指定以米为度量单位的一比一映射:
gmt grdproject data.nc -Jm/1:1 -I -F -C-4/0 -Gdata_geo.nc -V --PROJ_ELLIPSOID=WGS-72
输出区域问题
投影(矩形)数据集的边界不一定产生矩形的地理边界(墨卡托投影是一个例外)。在这些情况下,某些节点可能不受约束(会设置为 NaN)。 为了获得完整的网格,输入网格文件可能需要覆盖比研究区域更大的范围。
选择椭球体与球面解法
如果已实现椭球体公式且用户选择了椭球体作为参考形状(见 PROJ_ELLIPSOID),GMT 将使用椭球体公式。 用户需要注意几个潜在的陷阱:
(1) 对于某些投影,如横轴墨卡托 (Transverse Mercator)、阿尔伯斯 (Albers) 和兰勃特正形圆锥投影 (Lambert’s conformal conic), 当映射区域较小时,我们使用椭球体表达式;对于较大的地图,则切换到球面表达式(并代入适当的辅助纬度)。 椭球体公式的使用情况如下: (a) 横轴墨卡托投影:当所有点都在中央经线 10 度以内时; (b) 圆锥投影:当经度范围小于 90 度时; (c) 卡西尼投影 (Cassini):当所有点都在中央经线 4 度以内时。
(2) 当尝试匹配某些历史数据(例如使用特定投影和特定参考椭球体获得的坐标)时,可能会发现 GMT 给出的结果略有不同。 这种不匹配的一个可能原因是早期的计算通常使用较少的有效数字。例如,Snyder 的示例经常使用 Clarke 1866 椭球体(他将其定义为扁率 f = 1/294.98)。 根据 f,我们得到偏心率平方为 0.00676862818(这是 GMT 使用的值),而 Snyder 则进行了取整并使用 0.00676866。这种差异可能会产生几十厘米的偏差。 如果需要重现使用这种略有不同的偏心率投影的坐标,应该指定自己的椭球体,其参数与 Clarke 1866 相同,但扁率 f = 1/294.97861076。 此外,请注意旧数据可能参考了不同的基准面 (datums),除非知道使用了哪个基准面并将所有数据转换为统一的基准面,否则可能会出现数十到数百米的偏差。
(3) 注意 PROJ_SCALE_FACTOR 对于某些投影具有特定的默认值,因此可能必须覆盖该设置以匹配使用其他设置产生的结果。 椭球体(如果可用)与球面解法的决策顺序如下:
用户指定 -je,强制使用椭球体解法。
用户指定 -jg,强制使用球面解法。
通过 -R 设置了一个特定的区域,这意味着该区域的部分内容将超出距离特定(或未设置时隐含的)中央经线的规定经度限制。
当请求或隐含球面解法时,会考虑当前选定的椭球体,并在精确方程中用相关的辅助纬度代替纬度。 最后,坐标转换还可能受到选定的 PROJ_SCALE_FACTOR 的影响,该值通常为 0.9996,但对于球体则为 1。
注意:对于某些投影,尽管用户选择了椭球体,仍可能使用球面解法。这种情况发生在用户的 -R 设置所隐含的区域超出了椭球体级数展开有效的定义域。 具体条件如下:
兰勃特正形圆锥投影 (-JL) 和阿尔伯斯等积投影 (-JB) 在地图比例尺超过 1.0E7 时将使用球面解法。
横轴墨卡托投影 (-JT) 和 UTM 投影 (-JU) 在 -R 给出的西边界或东边界距离中央经线超过 10 度时将使用球面解法。
卡西尼投影 (-JC) 同理,但限制仅为 4 度。