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