基本转换器的使用——Joiner转换器

原文发布时间:2010-11-22

作者:糖糖


新手上路之转换器应用——joiner转换器

joiner转换器是一个关联转换器,可以完成从一个外部数据库到空间要素或非空间要素的关联,能运用到对空间数据添加属性信息的操作上。通过下面的例子可以帮助我们理解它的用法

一、What we have    数据库:信息表.mdb;要素集:test.shp

二、What we want    生成的shape文件中的地类添加相应的地类名称

三、步骤

1新建一个工作空间:读模块和写模块都是shape格式,在读模块中读取test.shp

基本转换器的使用——Joiner转换器_第1张图片


然后插入joiner转换器,如下

基本转换器的使用——Joiner转换器_第2张图片


2 连接数据库:点击joiner转换器属性,在弹出来的对话框中点击 ,就会弹出以下对话框

基本转换器的使用——Joiner转换器_第3张图片

 这对话框中选择指定的外部数据库,下拉菜单中可以看到支持的数据库格式 

基本转换器的使用——Joiner转换器_第4张图片

选择”Microsoft Access”,然后在 MDB File栏里在对应路径下选中信息表.mdb

基本转换器的使用——Joiner转换器_第5张图片


因为这个数据库放在本机且没有设置密码,所以Username和Password可以不填(如果数据库设有用户名,就需要在填写用户名和密码才能访问),直接点击Next进入下一步选择我们要关联的表——信息表。

基本转换器的使用——Joiner转换器_第6张图片


3 关联:下面对话框中看到信息表中的列:大类编码,地类编码,地类名称。我们要利用“地类编码”来给shape要素添加“地类名称“,所以“地类编码”作为关联列Keys把它添加到右边的清单中

基本转换器的使用——Joiner转换器_第7张图片


将关联列与要素集中对应的属性匹配:BD Key中地类编码与test要素的DLBM关联

基本转换器的使用——Joiner转换器_第8张图片

基本转换器的使用——Joiner转换器_第9张图片


4 添加属性:在数据库中将需要添加到要素中的列,即“地类名称”移到右边的Added Attribute框中,点击Next;

基本转换器的使用——Joiner转换器_第10张图片


 下面的对话框是选择关联类型,有四种类型可供选择

基本转换器的使用——Joiner转换器_第11张图片

这四种类型表示了数据集中的行与要素集的要素之间的关联方式,由上至下为以下四种方式

a 、1:0..1   一对零或一对一,要素集中每一个要素可以与一个或零个记录关联,但是如果一个要素匹配出多个关联记录,将运行出错;

b、1:0..1+ 一对零或一对多,要素集中的要素若有任何数目的记录可以匹配,只关联第一个记录;

c、1:1     一对一 要素集中的要素与数据库的记录必须是一一关联,若出现多个匹配记录将出错

d、1:more  一对多 要素集中的要素与多个记录相关联,而且每一个记录都会列表添加到属性中去

在不确定要素集与数据库记录行关联个数的情况下,选择默认的第二种关联方式,点击Next,出现以下对话框为添加的属性值名称前加上前缀,比如我们加上前缀dlmc_


基本转换器的使用——Joiner转换器_第12张图片


点击Next,提示是否需要关联属性值修剪

基本转换器的使用——Joiner转换器_第13张图片


根据提示:如果有空间填充,就选择YES,点击Next,在优化joiner对话框中我们在Use Pretch Query项中打钩,不受默认行数或某个固定行数分配限制,利用预取语句Prefetch Query灵活分配添加的属性记录行数,在本例中我们要添加信息表中所有地类名称,如下:

基本转换器的使用——Joiner转换器_第14张图片


点击Finish,再给写模块属性中添加地类名称字段来存储我们关联的列:

基本转换器的使用——Joiner转换器_第15张图片


手动连接后,运行可以看到,有1837条记录添加到要素集中去,运行成功

基本转换器的使用——Joiner转换器_第16张图片


在FME Universal View里我们就能看到shape文件里中添加了地类名称,如下图DLMC为“城市”。

基本转换器的使用——Joiner转换器_第17张图片


初次运用该转换器遇到的问题:

在工作空间中,将数据库作为读模块,要素集作为写模块,结果JOINER转换器能运行,但是不能成功添加属性

总结:Joiner转换器直接访问和连结数据库,不在读模块中读取数据库,读模块读取要添加列的要素集,写模块输出关联后的要素集。






你可能感兴趣的:(FME转换器)