自定义转换器的应用(五)——仿射变换

原文发布时间:2011-05-17

自定义转换器的应用(五)——仿射变换

                           ——结合探讨发布参数

 

作者:跑

联系QQ:44295133

  
第一部分  仿射变换

我们都知道,FME有两个坐标仿射变换转换器——Affiner、3DAffiner,分别应用于2维、3维数据模型

     

上面的公式中,我们不难看出它分别有6个(A~F)、12个(A~L)系数。

实际使用中,与之对应的是4参数、7参数坐标相似变换,其一般公式如下:


上式,4参数为ΔX、ΔY、α、m  ,7参数为  。其中, 表示坐标平移量, 表示坐标轴旋转量,m表示缩放尺度。

比较可知,将求解的参数代入Affiner、3DAffiner,需要计算其对应系数。为使它符合实际使用习惯,可以通过定制自定义转换器的方式,将习惯上使用的4参、7参作为独立参数发布,从而简化输入步骤。

下面谈谈如何发布这些独立参数,以及如何获取这些参数输入值。


第二部分  发布参数

参考FME帮助文件相关章节,我们知道有两种方式来发布参数:一是在参数区新增;一是在转换器区直接发布。它们都在Workbench的导航窗内。

   


       


FME在运行一个带发布参数的工作空间前,会提示用户输入参数值(无默认值的情况下),该参数值将被应用于(Apply to…)相关联位置。此外,还可以通过转换器ParameterFetcher获取参数值。当然,这里还有一个技巧,当参数区有若干相同的输入(如指定Joiner文件所在位置)时,可以通过“Setting to a Published Parameter”来简化这些重复输入



关于发布参数的更详细解释,之前有博文  发布参数(Published Parameter),不再赘述。这里补充一点,可能是大家在使用过程中忽略的小细节。在上一篇博文  自定义转换器的应用(四)——属性传递  中,我们试图将属性传递所需字段发布至参数区,从而实现供、求双方属性字段的可选性传递。在事先并不知道该字段名称的情况下,如何获取该字段及其字段值?以下通过分别将字段值、字段名的发布,实现属性传递。








猜你喜欢

转载自blog.csdn.net/fmechina/article/details/80896219