FME的ESRI Geodatabase (MDB)格式介绍(二)

原文发布时间:2010-10-14

 

作者:毛毛虫

来源:

FME的ESRI Geodatabase (MDB)格式介绍(一)

性能:

通常ArcSDE reader/writer提供了比Geodatabase_SDE reader/writer更好的性能。ArcSDE writer允许缓冲的写入,这改进了加载数据的性能。也可以在SDE中设置load_only_mode(关闭索引),然后在转换后重新设置为正常模式。

可以加速包含所有writer的转换,提交转换是一项高消耗的工作,建议尽可能的加大时间间隔(或者如果没有必要,就把提交关闭)。Safe Software Inc执行了速度测试,把转换间隔从500 (默认的)切换到1000,结果指定的转换加快了2.5%。更改转换间隔到5000,相同的转换加快了5.5%。关闭转换,提高了12%19%。更个转换间隔或关闭转换的性能优势在不同的数据集间也会不同。

对于Geodatabase,如果可能,使用Transaction Type: TRANSACTIONS  NONE替代EDIT_SESSION (MDB, GDB) 或 VERSIONING (Enterprise Geodb)。EDIT_SESSION 或 VERSIONING对性能有重要的影响。为什么Geodb需要这个模式比较复杂——可能是因为aGeodb是版本化的或者,b)有确定的用户行为或触发器(也就是加载网络拓扑,有关系表等)。

FME的ESRI Geodatabase (MDB)格式介绍(二) - peri - FME空间数据转换、集成、共享和挖掘

另一种提高写入要素速度的方法是提前创建所有的要素集,要素类和表,这样 Geodatabase Writer 只需要打开它们,而不是创建它们。

设置SIMPLIFY_GEOM NO会加速几何的写入,避免或最小化注记要素的数目——写入这些是很慢的。当写入没有用户定义字段的注记时也会有所改进。

通过修改到需要的精度,可以改进性能。如果只需要32位精度,在Writer要素类型参数上设置32位代替64位。相同的可以在空间分辨率上执行。如果只需要分米级精度,不要使用给出的0.00001 mm精度。这两种情况下,执行和处理比实际需要的多的数据。减少有效分辨率和精度会加快速度,特别是对于大数据集。如果没有给出足够精度的数据,事先告知减少分辨率/精度可能引起边界错误或者多边形转换为点。更多信息查看创建Geodatabase

对于Enterprise Geodatabase  ArcSDE,可以删除空间索引,切换图层(空间列)到LOAD_ONLY模式来减少加载时间。这需要使用SDE管理命令或在目标参数上设置网格大小为-1。在这种模式下,基础SDE 服务器不执行任何空间索引的更新。之前的图层可以使用的指令必须由系统管理员重建,这个操作可能花费大量时间,但是从纯数据加载的立场,加载基础SDE层到LOAD_ONLY模式可能产生非常大的不同。

最后,确保你的数据集 Writer FME 工作空间导航树中的第一个 writer (在 writer 上点击右键并使用 Move Up 菜单)。 FME 缓存第二个和接下来的 writer 的数据,所有第一个数据集的 writer 确保要素直接通过。

关系类(Relationship Classes)
读入关系类,不能只选关系类读入,也要有相关的表/要素类。如果相关的表没有同时读入,会在日志中出现警告信息:
Relationship class contains no rows. Relationships will only be read if the associated tables/feature classes are being read.(关系类没有包含任何行,如果相关的表/要素类被读入,关系只能读)
当写入到关系类,与要素相关的关键字,FME使用geodb_rel_origin_oid and geodb_rel_destination_oid格式属性,也就是格式属性geodb_type 必须被设置为"geodb_relationship"。
相关的要素类必须同时写入。每个源和目标要素类必须有一个geodb_oid,这参考关系要素上的geodb_rel_origin_oid 和geodb_rel_destination_oid属性,geodb_feature_has_relationships属性必须被设置为“yes”。

 
问题和解答:
1、如何设置写入到的Geodatabase Feature数据集?
FME可以写入要素类到已存在的数据集或者创建一个新的数据集。在输出要素类型参数中简单的输入要素数据集的名称,如果不存在,FME使用指定要素集的空间域参数来创建。

2、API如何用来写入到Geodatabase

对于普通的ArcSDE,使用ArcSDE C API

对于 Enterprise (SDE), File based, 和 Personal Geodatabase  ,使用  ArcObjects API 。当读或写入 Geodatabase 时, FME 会使用 ArcGIS 的权限。

3、FME支持ArcFM geodatabases吗?

因为ArcFM数据集从Miner&Miner中比较用户对象,官方网上不支持这种格式。不过,使用这种数据时可能的,成功度取决于你的提取或加载。

安装了ArcFM object ReaderFME能够在ArcFMGeodatabase中读入大部分项目。这个ArcFMMiner&Miner网站来回的对象,是可用的,访问http://www.miner.com下面有支持和下载链接来找Object Reader下载。
 完


猜你喜欢

转载自blog.csdn.net/fmechina/article/details/80698660