斯潘8
斯潘4
没有标准的方法来建立翻译,这完全取决于模式 源数据和输出数据集中所需的结构。
如果这通常是正确的,则对于AutoCAD Map 3D对象数据来说是双倍的正确。.对象数据允许属性存储在数据表中,但在数据结构方面特别自由,数据集中的任何特定空间特征(或实体)都可以在任意数量的数据表中拥有任意数量的属性记录(或者根本没有属性记录)。
鉴于此,我们在FME中采用的方法是提供许多不同的读取模式,这样用户就可以更广泛地选择工作区布局来查看工作台中的数据模式。
下面是一些示例工作区。这些工作区的示例数据集是德克萨斯州的地图。地图包括州和县边界以及代表州公路网的许多特征。
示例数据集的说明。
国家的轮廓是黑色的,县界为红色,道路为蓝色,数据坐标系为lat/long nad 83。
边界要素存储在一个称为边界的图层上,并具有到名为县和州的数据表的链接。
道路特征存储在称为“道路”的图层上。路网只是空间数据,没有属性或对象数据表。
关于源数据的重要一点是,所有特征都是线几何图形,两个县(或一个县和国家大纲)之间的每一个边界都是一个单一特征,有两个数据记录——每个县一个(或一个县和一个国家)。
特写镜头。这个特别曲折的路段是一条单线,县数据表中有两条记录;一个是圣萨巴县,一个是兰帕萨县。
三种不同的阅读模式是”按实体分组““原始关系“和“按对象数据分组“。
将源数据集添加到工作区(或查看器)时,将在“设置”对话框中选择模式。
上面:创建新工作区。单击“设置”按钮以获取“对象数据设置”对话框
上面:对象数据设置对话框。注意对话框顶部三种不同模式的选择。
显然,由于这些设置对新工作区的布局有直接影响,因此在创建工作区后无法更改读取模式(或在将读卡器添加到现有工作区后更改其布局)。
“按实体分组”模式将工作区设置为数据集中每层数据都有一个特征类型。
与每个特征相关的数据表属性附加到特征上,这使得它成为一种非常有用的方式,可以将数据写入与GIS相关的格式,如mif/mid或shape。这不是保存原始模式结构的好模式,所以是不是如果你想写回相同的格式,那就这么做。
然而,由于对象数据格式具有很大的灵活性,需要考虑一些问题。
对价1):如果每个实体(功能)拥有多个记录(尤其是同一表中的多个记录),则会创建一个列表结构。
例如,考虑到在同一个表中有两个记录的单个功能的设置:
功能数据表字段
1个表A字段1,菲尔德2菲尔德3
1个表A字段1,菲尔德2菲尔德3
…输出功能将在其架构中包含一个列表属性:
表AData 0.fielda1
表AData 0.field2
表AData 0.field3
表AData 1.fielda1
表AData 1.field2
表AData 1.field3
对价2):因为不同的功能可以在不同的数据表中拥有记录,源功能类型的属性列表将是详细的,包括所有可能的属性。.
例如,给定此设置:
图层特征数据表字段
第1层表A字段1,菲尔德2菲尔德3
第2层表B字段B1,FieldB2,FieldB3
…layera的源功能类型将包括以下属性:
菲尔德1
菲尔德2
菲尔德3
字段数据库1
菲尔德2
FieldB3
即退出此功能类型的所有功能都将附加所有可能的属性,是否包含值。
考虑3):因为不同的数据表可能具有相同的字段名,有一个选项可以在所有属性前面加上表名来区分它们。
例如,给定此设置:
图层特征数据表字段
第1层,Tablea Field1,第二场,第三场
第2层表B字段1,第二场,第三场
…prepend选项将通过提供以下内容来确保字段命名不冲突:
表1字段1
表2字段2
小精灵
Table Bield1
Table Bield2
Table Bield3
上面:设置对话框中的预设选项。
在我们的示例数据集中,表名没有冲突,但是,模式将同时具有State和County字段(即使并非所有功能都具有状态记录)。另外,作为两个县之间边界的功能将有一个列表属性来存储两个县的名称。
如你所料,道路特征具有特征类型,但没有属性数据,因为它们没有相关的数据表。
上面:工作台中的源架构
上面:数据(在FME查看器中)显示特定功能的列表结构和列表内容。
上面:因为形状数据集不接受列表结构中的数据,我们的最终工作区被调整为将FME列表转换为逗号分隔的属性(使用列表连接符变压器)。州/县边界不包含此步骤,因为它们不包含列表。
上面:因此,在输出形状数据集中,州/县边界功能如下所示。
上面:…县/县边界特征如下。注意空状态属性的存在。
“原始关系”模式实质上是将空间实体和数据库记录作为单独的特征,其中每个都有一个属性链接,用于将它们标记为相关的。
每层数据提供一种特征类型,以及每个对象数据表的另一个功能类型。
实际上,这是用户以最适合他们的方式使用的原始数据。这种模式对于将空间数据和属性数据保存在单独的表中的数据库格式(这就是我们称之为“关系”模式的原因,因为与“关系”数据库类似,它是一种由主键相关的表表示法,也用于将数据写入某些CAD格式,在这些格式中,传统上属性与空间特征分开保存。
在这种模式下,我们不必担心“按实体分组”模式的任何考虑,因为分配给单个功能的多个记录只会通过数据库表功能类型生成多个记录。同样地,每个表都有一个单独的功能类型,因此对于过于冗长的模式没有问题,即使不同的表具有相同的字段名,也不会出现字段冲突。然而,这些问题会当然,如果用户随后尝试将属性记录合并回工作区中的功能,则重新出现。
上面:在此示例工作区中,我们选择将数据写入Oracle数据库。
上面:在“原始关系”模式下,初始工作区如下所示。注意每个图层(边界,每桌一条(CountyData,陈述)。请注意,格式属性autocad_od_entity_key是在空间数据和属性表之间充当查找键的属性。注意:图层0是所有AutoCAD数据库中都存在的默认图层。
上面:没有要连接的Oracle数据库,您只能将数据路由到检查器。这将显示一个没有用户属性的功能,但是有一个表列表(autocad_map_odtable),其中该实体有记录,加上一个实体键可以匹配这两个实体键。
上面:表格记录显然是作为FME非几何特征读取的。这里有一个与上述空间特性相关的statedata表记录。
这也是用于读取对象数据并将其写回相同格式的数据集的模式。表格(非几何)记录将被写回表格,实体(几何)特征将被写回一个层。因为格式属性(autocad oud ou entity ou key)与对象数据编写器查找的属性相同,链接将自动生成。这种任务的一个例子是在不想改变格式的情况下将数据从一个坐标系重新投影到另一个坐标系,或者用户想要加入或拆分表。
“按对象数据分组”模式几乎与“实体”模式相反。在这一点上,不是每层获得一种特征类型,每个数据有一个特征类型表,进入工作区的数据是每个表中每个记录的一个特性。
因为这个,附着到多个记录的每个AutoCAD实体将在数据中出现多次。
例如,在这种情况下,其中一个功能链接到两个记录:
功能数据表字段
1个表A字段1,菲尔德2菲尔德3
1表B字段B1,FieldB2,FieldB3
…读卡器将输出两个功能:
特性1(属性=字段1,菲尔德2菲尔德3)
特征1(属性=字段b1,FieldB2,字段Db3)
正如你所看到的,这在FME中是低效的,因为最终可以处理源数据中实际实体数的多次。另一方面,当(像在我们的示例数据集中一样)一个实体表示多个地理特征(在我们的例子中是县和州边界)时,这是一种有用的模式。
然而,数据表功能类型仅占图片的一半。没有关联记录的实体(即无对象数据)也需要输出,所以新的工作区也有包含非对象数据实体的每个层的特征类型。此外,因为在一个层上读取一些实体(没有对象数据的实体)和忽略一些实体(有对象数据的实体),会让用户感到困惑,将输出该层上的所有功能,是否已通过对象数据功能类型输出。
这显然会导致更多的重复功能和效率低下,但正如开发人员告诉我的,这个选择是为了清晰而不是为了效率,并确保与以前的Autodesk_Map对象数据读取器向后兼容。
上面:我们的示例数据以“按对象数据分组”模式添加到工作区。注意每个表的功能类型(CountyData,状态数据),包括属性,以及每层的特征类型(道路,边界;这些不包括属性(即使某些实体可能具有相关的对象数据),以将它们与对象数据表功能区分开来。
上面:因为-在本例中-我不希望两次获取边界数据,我可以简单地禁用该功能类型。
上面:不出所料,输出显示该位置的两个特征;国家边界和县边界。但没关系,因为它们在工作区中被划分并被写入两种不同的特性类型。事实上这有帮助,因为我可以….
上面:…将AreaBuilder添加到我的工作区,这让我…
上面:…为每种功能类型分离区域功能。如果没有重复的功能,我就无法做到这一点。
如果要读取对象数据并将其写回相同格式的数据集(例如执行坐标系重投影),也可以使用此读取模式。重复的功能不是问题,因为,写入对象数据时,具有重复实体键的空间特征将被丢弃。结果将是一个实体,但是多个记录——符合每行只匹配一个实体的规则,并且只提供您刚开始使用的内容!不过,我们仍然建议将“原始关系”作为用于此方案的模式。
Q)我可以在哪些版本的FME中找到此功能?
a)FME2008或更新版本。
Q)这就是安装程序现在询问有关Autodesk Realdwg许可协议的原因吗?
a)对。我们在AutoCAD阅读器下使用的是AutodeskRealdwg2008 SDK。这是必需的,并且用户必须接受此协议才能使用AutoCAD格式。
Q)我应该使用此格式读取非对象dwg/dxf数据集吗?
a)你可以,但是,除非您有特定的原因,否则建议您继续为这些文件使用AutoCADDWG/DXF(又名acad)读写器。
Q)使用AutoCAD需要什么级别的FME许可证?
a)像autocad dwg/dxf一样,这种新格式在FME基础版中可用。
Q)这个新的对象数据阅读器在Unix上可用吗?
a)不,仅在Microsoft Windows平台上[再次,大概是因为SDK的缘故。
Q)当我分解具有属性数据的特征时,会发生什么情况?
a)啊-这很复杂。块可以有整个块的一条记录,也可以有块中每个实体(部分)的一条记录,或者两者都有!如果块引用具有关联的对象数据,则它将附加到块的插入点。如果块参照的零件具有关联的对象数据,而且石块被炸开了,与块零件关联的对象数据将附加到为块零件创建的所有特征。通常,在执行对象数据>对象数据转换时,您不太可能希望分解块,因为可能存在实体/记录键冲突。
?2019安全亚搏在线软件公司|合法的