西班牙
斯潘4
子类型定义了与数据分类相关的地理数据库模式的各个方面。换句话说,子类型不是为一组要素创建不同的要素类,而是作为在单个地理数据库要素类中定义要素子集的方式发挥作用。要素类中的属性存储定义子类型的整数值,子类型表包含相应整数值的定义。例如,名为“road”的表可能有一个名为“condition”的属性字段,其值映射到包含good、mediate和bad值的子类型。
通常,每个表只能有一个子类型,所有代码都必须是唯一的并且是有效的整数,并且所有代码:描述对都必须是唯一的。
应注意,子类型是特定于特定要素类的。因此,它不能被geodatabase中的其他要素类以共享域的方式共享。
读取地理数据库时,fme可以选择“解析子类型”。
选中此选项时,格式属性geodb_子类型名称将使用子类型定义中包含的描述性值填充。
请注意 :如果可以,我们建议使用描述的地理数据库模板在这里.这通常比定义FME特征类型中的子类型更容易和更灵活。
由于子类型只能应用于单个特征类,所以不可能创建新的表并将其与现有的子类型相关联。因此,在编写geodatabase子类型时,工作流需求将属于以下两种情况之一:亚搏在线
上述情况主要由以下参数控制:
-数据类型:子类型/子类型代码
-验证要写入参数的功能:是/否
尽管提到了上述场景,但应该注意的是,使用XML工作区文档(包含所需的子类型定义)作为geodatabase编写器上的模板,是编写geodatabase子类型的一种高效且高度推荐的方法。有关使用架构导入XML文档的详细信息,请参见地理数据库编写器文档.
方案1:写入包含现有子类型的现有表
不需要额外的工作来写入具有现有子类型的现有表。为了验证子类型值,甚至不需要设置writer参数“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作为源属性和输出属性类型。对于范围查找表,请输入以下值:
从 | 到 | 产值 |
一万 | 1个 | |
一万 | 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安全亚搏在线软件公司|合法的