数据处理的几点经验
最近除了写技术总结,就是一直在测试我的数据备份和更新模块。数据备份模块倒也简单,就是根据源库的结构拷贝出一部分数据到一个MDB中,而更新模块的测试,让我的代码接受了程序的性能和可靠性方面的双重测试,尤其是基于要素的更新这部分,基本原理是这样的:在提交的更新数据MDB中肯定有个更新面要素类,其中有个更新面,然后找出更新数据和将被更新数据处于这个更新面中的要素,将其进行比较,如果数据一致,则不对这些数据进行处理,如果不一致,则需要将被更新库的有些数据现删除,然后将更新数据复制进行。
这次测试的更新数据有200多M,被更新数据是个MDB,大小为1G左右,整个处理的要素数目达到50万条左右,其中有个要素类特别猛,超过了33万条,在这个测试中,得到了一些经验:
1.数据的读写操作最好使用IWorkspaceEdit.StartEditing来开启一个编辑流程,千万别轻率读写删除。使用该接口,如果数据在处理过程中出现任何异常,整个操作是无效可逆的,这样能够保证你处理的数据不被破坏。
2.最好每个图层在处理的时候都使用一个的IWorkspaceEdit来启动,而不是将N个图层的处理放到一个编辑流程中。否则,如果一个图层出现问题,我们做了好几天的运算可能全完咯,每个图层都用一个编辑流程,至少能最大程度保住胜利果实。
3.如果你使用IWorkspaceEdit.StartEditing 开启一个编辑流程,却得到一个该死的自动化错误。别担心,首先检查你的工作空间是否为Nothing,如果不是,很简单,请用你现在的ArcCatalog建一个个人GeoDatabase数据库,然后将你操作的工作空间的所有数据直接复制过去即可。这个问题应该是不同版本的Geodatabase的问题。
Related Items
Comments
没错。PieChartRenderer是基于数值计算的。
您好!在前面的文章里面您提到地图裁切,我想请教矢量裁切您是怎样实现的?效率什么样?我这里是经常出错,或者是裁不出来。
两外您用的是那个版本的arcgis,我这里用9.1,但是有些代码在9.0中运行正常,但是9.1就不对了
地图裁剪是个很简单的处理过程,但是要区分两种情况,一是点和标注要素类,只需要删除包含在裁剪多边形中的要素即可;如果是线或多边形要素类,裁剪除了包含的情况,还要处理在裁剪多边形边缘的要素。
Polyline的空间关系是cross;Polygon的关系是Overlap。
谢谢jbt的指点,在你另外一篇文章里叙述了几个裁切方式的效率,我想知道的是arcgis的arctoolbox用的是哪一种的,不知道你有没有了解过
你好:
看了你的许多文章觉得很不错。现在有个比较头疼的问题,想看你有没什么好办法。
本人用ArcEngine写了个地图裁切工具,可以实现按标准图幅批量裁切出地图。
裁切后问题有两个:
1.部分和裁切框相交的线上的点的顺序反向了,这样就导致 一些复杂线形(如加固陡坎)方向反了。
2.有丢数据的现象。
不知博主曾否遇到这样的问题!
1.第一个问题我也没有想到好的解决办法
2.看看你的图幅是否有重叠的情况
您好,请教个裁切方面的问题,我经过参考范围进行裁切后,
1。要素会有整体平移的问题,大概在1:0。0005左右能看到;
2。线要素与参考范围相交部分会有超出范围问题
这样两个很影响接边效果,您碰到过这样的问题么?有没有解决方案?
两个问题都应该是数据生产时出现的,甚至是DWG数据本身的问题,我曾经遇到过这样的情况,并非裁剪的问题。
请问下我在arcserver9.3下 asp.net c#
能够在 sde 下使用IWorkspaceEdit.StartEditing (不管是version 还是非version)
Leave a comment
Or, take a look at Archives and Categories
有个问题,PieChartRenderer是否必须是数值字段才可以?如果是文本或者其它字段它是没法比较的是吧?