将坐标值推送到管道堆栈

6.0.0 新版功能.

保存管道一个步骤中的坐标分量,并使其可用于在另一个管道步骤中检索。

Alias

Domain

四维

输入类型

任何

输出类型

任何

此操作允许保存坐标的组件,以便在以后的步骤中应用。移动保存的坐标组件,或 ,到属于 pipeline . 管道坐标叠加的灵感来源于计算机科学中常用的叠加数据结构。有四个堆栈可用:一个四个坐标维度。尺寸或坐标分量编号为1-4。只能在同一坐标组件编号内将数据移动到堆栈中或从堆栈中移动数据。可以使用 pop operation .

如果push操作是自己使用的(例如,不在管道中),则它将作为no操作来运行,该操作将通过未更改的坐标。

实例

推送和推送的常用用法 pop 操作是三维的 Helmert 只需要水平分量的变换。将传统垂直参照的高度与现代地心参照的高度相结合时,通常会出现这种情况。下面是这样一个转换的例子,其中水平部分通过Helmert操作进行转换,但垂直部分保持与输入完全相同。

$ echo 12 56 12.3 2020 | cct +proj=pipeline  \
+step +proj=push +v_3                        \
+step +proj=cart +ellps=GRS80                \
+step +proj=helmert +x=3000 +y=1000 +z=2000  \
+step +proj=cart +ellps=GRS80 +inv           \
+step +proj=pop +v_3                         \

 12.0056753463   55.9866540552       12.3000     2000.0000

请注意,输出中的第三个坐标分量与输入相同。

没有push和pop操作的相同转换如下所示:

$ echo 12 56 12.3 2020 | cct +proj=pipeline  \
+step +proj=cart +ellps=GRS80                \
+step +proj=helmert +x=3000 +y=1000 +z=2000  \
+step +proj=cart +ellps=GRS80 +inv           \

      12.0057        55.9867     3427.7404     2000.0000

在这里,垂直分量被显著调整。

参数

+v_1

存储管道堆栈上的第一个坐标组件

+v_2

在管道堆栈上存储第二个坐标分量

+v_3

在管道堆栈上存储第三个坐标分量

+v_4

在管道堆栈上存储第四个坐标分量

进一步阅读

  1. Stack data structure on Wikipedia