管道运营商

5.0.0 新版功能.

通过顺序管道中的菊花链操作构造复杂的操作。

Alias

管道

Domain

2D、3D和4D

输入类型

任何

输出类型

任何

备注

请参见 大地变换 更深入地介绍项目中转换管道的概念。

通过管道操作,可以在同一输入数据上依次执行多个操作。此功能使创建由多个操作组成的变换成为可能,例如,执行基准移动,然后应用适当的地图投影。理论上,两个坐标参考系之间的任何转换都可以使用管道操作来执行,前提是项目中每个步骤都有必要的坐标操作。

管道由许多步骤组成,每个步骤本身就是一个协调操作。通过依次连接这些单独的步骤,我们最终得到一个串联的坐标操作。例如,将GRS80椭球体上的大地坐标转换为已交换东西轴和东北轴的投影系统:

+proj=pipeline +ellps=GRS80 +step +proj=merc +step +proj=axisswap +order=2,1

这里的第一步是应用 墨卡托 第二步是应用 轴交换 转换。请注意 +ellps=GRS80 在第一次出现之前指定 +step . 这意味着在两个步骤中都使用GRS80椭球体,因为在第一次出现 +step 作为全局参数处理,并传递到每个单独的步骤。

管道规则

1管道必须至少包含一个步骤。

+proj=pipeline

将导致错误。

2.只有在init文件中定义了嵌套管道时,才能嵌套管道。

+proj=pipeline
+step +proj=pipeline +step +proj=merc +step +proj=axisswap +order=2,1
+step +proj=unitconvert +xy_in=m +xy_out=us-ft

导致错误,而

+proj=pipeline
+step +init=predefined_pipelines:projectandswap
+step +proj=unitconvert +xy_in=m +xy_out=us-ft

没有。

三。没有正向路径的管道无法建造。

+proj=pipeline +step +inv +proj=urm5

将导致一个错误,因为 乌尔马耶夫 没有定义逆运算。

4. Parameters added before the first `+step` are global and will be applied to all steps.

在下文中,GRS80椭球体将应用于所有步骤。

+proj=pipeline +ellps=GRS80
+step +proj=cart
+step +proj=helmert +x=10 +y=3 +z=1
+step +proj=cart +inv
+step +proj=merc

5步骤之间的操作单元必须匹配。

5.1.0 新版功能.

阶跃的输出单位 n 必须与步骤的预期输入单位匹配 n+1 . E、 例如,不能将输出投影坐标的操作传递给需要角度单位(度)的操作。下面显示了这种单元不匹配的示例。

+proj=pipeline
+step +proj=merc  # Mercator outputs projected coordinates
+step +proj=robin # The Robinson projection expects angular input

参数

要求的

+step

将管道中的每个步骤分开。

可选的

+inv

反转管道中的步骤。

+omit_fwd

6.3.0 新版功能.

在前进路径中跟随管道的某个步骤时跳过该步骤。

下面的示例显示了 pushpop 操作员,带 omit_fwdomit_inv 选项,以实现必须在不同于输入和输出中使用的水平CRS的插值CRS中进行的垂直调整。+在正向路径中省略u fwd可避免无用的水平反变换,并依赖pop运算符恢复初始水平坐标。+当管道反向执行时,省略inv也有类似的作用

+proj=pipeline
+step +proj=unitconvert +xy_in=deg +xy_out=rad
+step +proj=push +v_1 +v_2
+step +proj=hgridshift +grids=nvhpgn.gsb +omit_inv
+step +proj=vgridshift +grids=g1999u05.gtx +multiplier=1
+step +inv +proj=hgridshift +grids=nvhpgn.gsb +omit_fwd
+step +proj=pop +v_1 +v_2
+step +proj=unitconvert +xy_in=rad +xy_out=deg
+omit_inv

6.3.0 新版功能.

在反向路径中跟随管道的某个步骤时跳过该步骤。