了解要素类型和属性
要素类型:源数据集架构或结构。
属性:可以引用用户属性或格式属性。
关于要素类型
在FME中,一个特征类型指源数据集架构或结构。
FME使用的每种格式都通过分类方案识别特征。这种分类在FME中称为特征类型。要素类型用于区分不同类型的要素(例如道路、河流、建筑物、等高线)。
例如:
- 在MicroStation设计文件(DGN)格式中,每个标高都是要素类型。
- 在AutoCAD图形文件(DWG)格式中,每个图层都是要素类型。
- 在Smallworld格式中,每个类都是要素类型。
- 在Esri Shapefile格式中,每个文件基本名称(*.shp文件)都是要素类型。
要素类型包含在数据集中。
使用数据集创建工作空间时,该数据集中存在的要素类型将显示在工作空间画布的左侧:
关于属性
Workbench支持两种类型的属性:
- 用户属性可以调整其名称和数据类型以满足用户的需要。它们对应于转换期间创建的任何属性表中的列。
- 格式属性由FME固定。中给出了每个读卡器(输入格式)和写卡器(输出格式)可用属性的描述FME读者和作者手册(从工作台>帮助菜单中选择FME读写器参考。)格式属性可以是暴露的在工作区中,以便可以将它们设置为特定值。
格式属性
格式属性是内置的、FME生成的属性,与任何给定格式的特征的结构或符号有关。例如,“格式”属性记录要素的颜色。
通过使这些属性成为工作区的一部分,可以使用这些属性执行某些任务。
使用Inspector(FME数据检查器)查看数据集时,格式属性最为可见。查询功能时,不仅会显示用户属性,还会显示格式化属性。在这种情况下,属性以其源形式反映数据的性质。
更多格式属性示例
特征的颜色是格式属性的最简单示例。然而,还有很多,它们的复杂程度各不相同。格式属性的一些示例包括以下内容。
- 旋转:许多特征具有围绕Z轴的旋转度。此旋转也存储为格式属性;例如,fm0_旋转(GeoMedia格式的特征旋转)。
- 子类型:对于支持子类型的格式(一种内置查找表),子类型代码对应的值可以作为格式属性放置;例如,geodb_subtype_name(Esri Geodatabase格式的子类型字段)。
- 光栅棱锥体:光栅要素的处理方式与矢量要素略有不同,其中一个差异是更依赖于格式属性。光栅棱锥体的详细信息通常以格式属性存储或设置;例如,oracle_光栅_金字塔_类型(将光栅数据写入oracle数据库时应用的金字塔类型)。
将属性从读卡器映射到写卡器
一组特定的格式属性具有前缀fme_
. 这些属性表示FME感知的数据。它们有时被称为FME属性或通用FME属性。
在翻译过程中,会发生以下情况:
- FME读取源数据并将其特征信息存储为格式属性。这些格式属性反映以原始读取器格式存储的数据。
- FME将源数据的格式属性转换为FME属性。这些FME属性反映了FME内部格式存储的源数据。
- FME通过创建一组新的格式属性来写入目标数据。这些格式属性反映了将以Writer格式存储的目标数据。
FME从一种格式转换为另一种格式,而无需将源数据的格式属性直接映射到每种格式的目标格式属性。FME将所有内容转换为FME标准,然后再次将其转换为writer格式。
数据类型映射
不同的格式支持不同的数据类型。即使两种格式支持相同的数据类型,它也通常由不同的名称表示。在这种情况下,FME必须决定如何在数据类型之间映射属性。
FME的增强型数据模型支持以类似于上述属性映射的方式映射数据类型。读取器格式的元文件指示FME如何将其属性数据类型映射到FME模型,第二个元文件指示FME如何将其模型类型映射到目标模式。
例如,考虑MapInfo和Oracle数据的数据类型映射:
MapInfo数据类型 | FME数据类型 |
---|---|
字符(宽度) | fme_字符(宽度) |
日期 | fme_日期 |
十进制(宽度,十进制) | fme_十进制(宽度,十进制) |
浮动 | fme_real64 |
整数 | fme_int32 |
必然的 | fme_布尔 |
短整型 | fme_int16 |
Oracle数据类型 | FME数据类型 |
---|---|
字符(宽度) | fme_字符(宽度) |
浮动 | fme_real32 |
数字(宽度,十进制) | fme_十进制(宽度,十进制) |
双重的 | fme_real64 |
整数 | fme_int32 |
必然的 | fme_布尔 |
短整型 | fme_int16 |
这些映射显示MapInfo十进制的
数据类型属性成为十进制
在FME数据模型中,然后成为数字
写入Oracle时的数据类型。