span8
span4
子类型定义与数据分类相关的地理数据库模式的各个方面。换句话说,不是为一组特性创建不同的特性类,而是使用子类型来定义单个地理数据库特性类中的特性子集。feature类中的属性存储定义子类型的整数值,而子类型表包含对应整数值的定义。例如,一个名为“Road”的表可能有一个名为“Condition”的属性字段,其值映射到一个包含good、moderate和bad值的子类型。
通常,每个表只能有一个子类型,所有代码必须是惟一的,并且是有效的整数,所有代码:description对必须是惟一的。
应该注意的是,子类型是特定于特定功能类的。因此,它不能以域共享的方式由地理数据库中的其他特性类共享。
读取地理数据库时,FME有一个“解析子类型”选项。
选中此选项时,选择format属性geodb_subtype_name将使用子类型定义中包含的描述性值填充。
注意 :如果可以的话,我们所描述的建议使用地理数据库模板在这里。这通常比在FME功能类型中定义子类型更简单、更灵活。
由于子类型只能应用于单个特性类,因此无法创建新表并将其与现有子类型关联。因此,在编写Geodatabase子类型时,工作流需求将属于以下两种情况之一:亚搏在线
上述情景主要由以下参数控制:
-数据类型:subtype / subtype_codes
-验证功能写入参数:是/否
尽管提到了这些场景,但应该注意的是,使用XML Workspace文档(包含所需的子类型定义)作为地理数据库编写器的模板,是编写地理数据库子类型的一种高效且高度推荐的方法。有关使用模式导入XML文档的更多信息,请参见Geodatabase作家文档。
场景1:写入包含现有子类型的现有表
写入具有现有子类型的现有表不需要额外的工作。甚至不需要设置写入器参数“Validate Features to Write”来验证子类型值。带有未定义子类型值的特性将被拒绝,并出现以下错误:
“
场景2:写入一个新表并创建一个新的子类型
需要注意的是,我们通常建议您使用ArcGIS来创建和定义子类型,在插入新特性时使用FME来输入子类型代码值。但是,创建子类型是可能的FME。该过程是定义用作子类型的属性,设置,要么属性数据类型子类型要么subtype_codes在目标地理数据库的架构定义。
该subtype_codes数据类型允许用户定义子类型的代码编号和说明。它的编辑对话框如下所示:
这不符合定义的值之一的任何属性将导致翻译有错误而失败。
该子类型数据类型只有一个字段在其编辑对话框:
FME将为每个传入值的唯一代码号。当你不知道传入的数据可能会持什么样的特定值,此选项可能是有用的。
限制
在写这篇文章的时候,FME不会让你基于特定亚型关联不同的域。例如,您将无法到0-50,000设定范围域;50,000-100,000;100,000-250,000,并将其应用到含有小,中和大的值的子类型的定义。为了实现这一点,你需要创建域:在ArcGIS亚型的关系。
下面的示例演示场景2:写入一个新表并创建一个新的子类型。
公园(MapInfo标签- MITAB)
另外,在上述图像中,我们看到与相应的数据和属性的源公园的MapInfo TAB文件的可视化。
1.阅读源数据
园区功能几何使用MapInfo的TAB(MITAB)阅读器源TAB文件读取。该文件中的数据将被用来计算园面积值将受到目标地理数据库的子类型定义。
2.计算区域和映射区域到子类型代码
所述AreaCalculator变压器被用于计算包含在源数据中的每个多边形的面积。在AreaCalculator添加到画布 - 为AreaCalculator的默认参数就足够了。对于计算的面积值将存储在名为属性_area。
的AttributeRangeMapper将被用于映射从_area属性(与AreaCalculator创建)我们将适用于子类型定义的子类型代码来值。所施加的代码将基于初始值是否落入指定范围内。在AttributeValueMapper添加到画布上,并打开参数对话框。选择_area作为源属性,并在“ParkSize”输出属性类型。对于范围查找表,输入以下值:
从 | 来 | 输出值 |
10000年 | 1 | |
10000年 | 1000000年 | 2 |
1000000年 | 3. |
完成后,AttributeRangeMapper参数对话框应类似于下图:
3.编写特性并创建子类型
添加ESRI地理数据库(文件地理数据库)作家到工作区,复制来自读取器的模式,并指定输出地理数据库到的数据将被写入(即亚型)。添加完毕后,在作家双击后,在常规选项卡,设置几何图形是geodb_polygon使用下拉菜单。接下来,单击用户属性选项卡,并在名称下,添加一个名为ParkSize属性和Type设置为subtype_codes。
点击编辑按钮和子类型编码对话框窗口将打开。输入代码和相应描述的子类型定义。
单击确定,然后保存并运行工作区。
* ESRI的地理数据库(文件地理数据库
在上面的例子中使用的)读出器/写入器要求的ArcGIS的许可版本可用给用户。有关要求ArcGIS许可级别的详细信息,请参阅FME地理数据库格式需要ArcGIS许可类型。
©2019安全亚搏在线软件公司法律