西班牙
斯潘4
没有标准的方法来设置翻译,它完全取决于模式的源数据和输出数据集中所需的结构。
如果这是真的一般,那么它是加倍的对AutoCAD地图3D对象数据.对象数据允许将属性存储在数据表中,但在数据结构方面特别自由,数据集中的任何特定空间特性(或实体)都可以在任意数量的数据表中拥有任意数量的属性记录(或根本没有)。
有鉴于此,我们在FME中采用的方法是提供许多不同的读取模式,以便用户可以更广泛地选择工作区布局来查看Workbench中的数据模式。
下面是一些示例工作区。这些工作空间的示例数据集是德克萨斯州的地图。该地图包括州和县的边界以及一些代表州公路网的特征。
示例数据集的说明。
州的轮廓是黑色的,县界线是红色的,道路是红色的蓝色。蓝色数据坐标系为纬度/经度NAD83。
边界特性存储在称为边界的层上,并具有指向称为县和州的数据表的链接。
道路要素存储在称为道路的图层上。道路网仅为空间数据,没有属性或对象数据表。
关于源数据的重要一点是,所有特征都是直线几何,两个县(或一个县和州轮廓线)之间的每个边界是一个具有两个数据记录的单一特征-一个县(或一个县和一个州)。
一个特写镜头。这个特别曲折的部分是县数据表中有两个记录的单行;一个是圣萨巴县,一个是兰帕萨斯县。
三种不同的阅读模式是按实体分组”、“生关系”、“按对象数据分组".
当源数据集被添加到工作区(或查看器)时,将在设置对话框中进行模式选择。
上面:正在创建新工作区。单击“设置”按钮以获取“对象数据设置”对话框
上面:对象数据设置对话框。注意对话框顶部三种不同模式的选择。
显然,由于这些设置对新工作空间的布局有直接的影响,所以在工作空间创建之后就不可能改变阅读模式(或者在阅读器添加到现有工作空间之后改变阅读器的布局)。
Group By Entity模式设置一个工作空间数据集中每个数据层的一种要素类型。
与每个要素相关的数据表属性都附加到要素,这使得将数据写入到与GIS相关的格式(如Mif/Mid或Shape)中成为非常有用的模式。这不是一个很好的模式来保存原始的模式结构,所以不是如果你想写回同样的格式,那该怎么办。
然而,由于对象数据格式的巨大灵活性,需要考虑一些因素。
考虑# 1):如果每个实体(功能)拥有多个记录(尤其是同一表中的多个记录),则创建列表结构。
例如,假设在同一个表中有两个记录的单一特性的设置:
特征数据表字段
1表A字段A1、字段A2、字段A3
1表A字段A1、字段A2、字段A3
…输出功能将在其架构中包含列表属性:
表数据{0}.FieldA1
表数据{0}.FieldA2
表数据{0}.FieldA3
TableAData {1} .FieldA1
TableAData {1} .FieldA2
TableAData {1} .FieldA3
考虑# 2)由于不同的特性可能在不同的数据表中拥有记录,因此源特性类型的属性列表将会非常冗长,并包括所有可能的属性.
例如,给定此设置:
图层要素数据表字段
第1层表A字段A1、字段A2、字段A3
LayerA 2 TableB FieldB1, FieldB2, FieldB3
…LayerA的源特性类型将包括以下属性:
FieldA1
FieldA2
FieldA3
FieldB1
FieldB2
FieldB3
i、 e.退出此功能类型的所有功能都将附加所有可能的属性,无论它们是否包含值。
考虑#3):因为不同的数据表可能拥有相同的字段名,所以可以选择在所有属性前面加上表名来区分它们。
例如,给定此设置:
图层要素数据表字段
第1层表A字段1、字段2、字段3
字段1,字段2,字段3
…prepend选项将确保不冲突的字段命名提供:
TableA_Field1
TableA_Field2
TableA_Field3
TableB_Field1
TableB_Field2
TableB_Field3
上面:设置对话框中的前置选项。
在我们的示例数据集中,表名没有冲突,但是模式将同时具有state和county字段(即使不是所有功能都有状态记录),另外作为两个县之间边界的功能将具有list属性来存储两个县的名称。
正如您所期望的,道路特性有一个特性类型,但是没有属性数据,因为它们没有相关的数据表。
上面:工作台中的源模式
上面:数据(在FME查看器中)显示特定特性的列表结构和列表内容。
上面:因为形状数据集不接受列表结构中的数据,所以我们的最终工作区被调整为将FME列表转换为逗号分隔的属性(使用ListConcatenator变压器)。州/县边界绕过了这一步,因为它们不包含列表。
上面:因此,在输出形状数据集中,州/县边界功能如下所示。
上面:…县/县的边界特征是这样的。请注意空状态属性的存在。
“Raw Relational”模式实质上将空间实体和数据库记录作为单独的特征,每个特征都有一个属性链接来将它们标记为相关的。
为每个数据层提供一种要素类型,为每个对象数据表提供另一种要素类型。
实际上,这是供用户以最适合他们的方式使用的原始数据。这种模式特别适用于将空间数据和属性数据保存在不同表中的数据库格式(这就是为什么我们称之为“关系”模式,因为像“关系”数据库一样,它是一个由主键相关的表表示,也用于将数据写入某些CAD格式,在这些格式中,属性通常与空间特征分开保存。
在这种模式下,我们不必担心“按实体分组”模式的任何考虑事项,因为分配给单个特性的多个记录会通过数据库表特性类型产生多个记录。类似地,每个表都有一个单独的特性类型,因此不存在过于冗长的模式问题,而且即使不同的表有相同的字段名,也不会出现字段冲突。但是,如果用户随后试图将属性记录合并到工作区中的特性上,这些问题当然会重新出现。
上面:在此示例工作区中,我们选择将数据写入Oracle数据库。
上面:在“原始关系”模式下,初始工作区如下所示。请注意,每个图层(边界、道路)和每个表(CountyData、StateData)都有一个要素类型。还要注意格式属性autocad_od_entity_key,它是在空间数据和属性表之间充当查找键的属性。注意:Layer0是所有AutoCAD数据库中存在的默认图层。
上面:如果没有要连接的Oracle数据库,则只能将数据路由到检查器。这将显示一个没有用户属性,但有一个表列表(autocad_map_odtable{})的功能,该实体在其中有记录,并且有一个实体键可以匹配这两个。
上面:表记录显然是作为FME非几何特征读取的。这是与上述空间特性相关的StateData表记录。
这也是您希望用于读取对象数据并将其写回相同格式的数据集的模式。表(非几何)记录将作为表写回,实体(几何)特征将作为层写回。由于格式属性(autocad-od-u-entity-key)与对象数据编写器查找的属性相同,因此将自动生成链接。这类任务的一个例子是将数据从一个坐标系重新投影到另一个坐标系,而不希望更改格式,或者不希望用户加入或拆分表。
“按对象数据分组”模式几乎与“实体”模式相反,它不是每层都得到一个特性类型,每个数据有一个特征类型表,而进入工作区的数据是每个表中每个记录的一个特性。
因此,附着到多个记录的每个AutoCAD实体将在数据中多次出现。
例如,给定此设置,其中一个要素链接到两个记录:
特征数据表字段
1表A字段A1、字段A2、字段A3
1表B字段B1、字段B2、字段B3
…读取器将输出两个功能:
特性1(属性=字段A1、字段A2、字段A3)
特性1(属性=字段B1、字段B2、字段B3)
正如您所看到的,这将使FME的效率降低,因为您最终处理的是源数据中实际实体的数倍。另一方面,当单个实体代表多个地理特征(在我们的例子中是县和州边界)时,这是一种有用的模式。
但是,数据表功能类型仅为图片的一半。没有关联记录(即没有对象数据)的实体也需要被输出,因此一个新的工作区也有包含非对象数据实体的每一层的特性类型。此外,由于读取层上的某些实体(不带对象数据的实体)和忽略某些实体(带对象数据的实体)可能会让用户感到困惑,因此将输出该层上的所有要素,无论它们是否已通过对象数据要素类型输出。
这显然会导致更多重复的特性和低效率,但正如我们的开发人员告诉我的,这个选择是为了清晰而不是效率,并确保与前一个AUTODESK_MAP对象数据阅读器的向后兼容性。
上面:我们的样例数据以“按对象分组数据”模式添加到工作空间。注意每个表(包括属性的CountyData, StateData)的特性类型,以及每个层的特性类型(道路,边界);它们不包括属性——尽管一些实体可能与对象数据相关——以将它们与对象数据表特性区分开来。
上面:因为-在本例中-我不希望获得两次边界数据,所以可以简单地禁用该功能类型。
上面不出所料,输出在这个位置显示了两个特性;这是州界和县界。但这没关系,因为它们被划分在工作区中,并被写入到两种不同的特性类型中。事实上这很有帮助,因为我可以….
上面:…将AreaBuilders添加到我的工作区中,这将使我。。。
上面:…为每种功能类型单独的区域功能。如果没有复制的功能,我就做不到。
如果您想读取对象数据并将其写回相同格式的数据集(例如执行坐标系统重投影),也可以使用此读取模式。重复的特性不是问题,因为在编写对象数据时,具有重复实体键的空间特性会被丢弃。结果将是一个实体,但是是多个记录——符合每一行只匹配一个实体的规则,并且只提供初始值!不过,我们仍然建议在此场景中使用“原始关系”模式。
问)我可以在哪个版本的FME中找到这个功能?
(一)FME2008或更新。
问)这就是安装程序现在询问Autodesk RealDWG许可协议的原因吗?
(一)是的。我们在AUTOCAD_OD阅读器下面使用Autodesk RealDWG 2008 SDK。用户必须接受此协议才能使用AUTOCAD_OD格式。
问)是否应使用此格式读取非对象DWG/DXF数据集?
(一)可以,但除非您有特定的原因,否则建议继续对这些文件使用AutoCAD DWG/DXF(也称为ACAD)读/写器。
问)使用AUTOCAD-OD需要什么级别的FME许可证?
(一)与AutoCAD DWG/DXF一样,FME基本版也提供了这种新格式。
问)这个新的对象数据读取器在UNIX上可用吗?
(一)不,只在微软的Windows平台上[同样,可能是因为SDK的缘故]。
问)当我爆炸属性数据的块特性时会发生什么?
(一)啊-这很复杂。块可以对整个块有一条记录,也可以对块中的每个实体(部分)有一条记录,或者两者都有!如果块参照具有关联的对象数据,则它将附着到块的插入点。如果块参照的零件具有关联的对象数据,并且块被分解,则与块零件关联的对象数据将附着到为块零件创建的所有特征上。通常,在执行对象数据>对象数据转换时,您不太可能希望分解块,因为可能存在实体/记录键冲突。
?2019安全亚搏在线软件公司|合法的