将坐标值弹出到管道堆栈

6.0.0 新版功能.

检索在上一管道步骤中保存的坐标的组件。

Alias

流行音乐

Domain

四维

输入类型

任何

输出类型

任何

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

如果pop操作是自己使用的,例如不在管道中,则它将作为no操作来运行,使坐标通过。类似地,如果堆栈上没有要弹出的坐标组件,则该操作不会执行任何操作。

实例

常用的 push pop操作是3D的 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