ArcGIS Desktop(Map、Pro)对数据进行人工位移时的坑
- 坑
- 避
如果有一份大数据量的数据需要进行整体的位置偏移,不要使用以下操作(如果时间不紧张另说)
坑
1、使用Arcmap进行数据的位置移动(二维),对大数据量勿用以下方式进行操作:
开启编辑 —> 编辑下拉条或鼠标拖动移动
问题:大数据量的情况下,运算速度极慢
原因(个人猜测):
1)、arcmap为原生32位程序,运算速度及线程、进程(后台GP可以开多个新进程跑GP不太影响正在操作的进程)管理方面优化蛮差
2)、arcmap的数据IO速度很低,尤其是对空间数据进行的操作(对.shp数据特别差,基于pg的sde去做速度还可)
2、使用ArcGIS Pro进行位置移动(二三维),对大数据量勿用以下方式进行操作:
ArcGIS Pro —> 编辑条 —> 移动(就是你选了以后,会出来一个迷你坐标轴 让你拖来拖去的那个)
问题:大数据量的情况下,运算速度极慢
原因(个人猜测):
1)、虽然ArcGIS Pro是原生64位,运算速度会比arcmap快一些,但是单论这个功能来说实际并快不了多少
2)、这个功能据我观察不调用其他线程或者进程协同操作,只在当前进程中进行操作,并且操作的时候会把GUI资源抢走,看着好像GUI还能操作,其实已经没啥能点的了
3)、这功能可能在每次移动前都要计算所有选中数据的一个整体 extent ,再计算 extent的中心点,把坐标轴生成在中心点。耗性能
4)、这个功能有个拖动预览的效果,这个功能也相当之耗费性能,并且要实时刷新 大部分资源都吃在动态刷新显示上了
避
1、Arcmap —— 新建一个ETL工具,这个需要数据互操作模块,反正我没有。。。 可以用GP里面的要素转JSON,改完坐标再转回来
2、ArcGIS Pro —— 使用编辑里面的 移动至 ,这个工具不用实时渲染 速度还是很快的
3、python —— arcpy里面没找到能直接改某个要素坐标的接口,但是通过游标读WKT、或者获取每个点的坐标值 再重新生成。或者调要素转JSON也行。GDAL之类的其他地理库也都OK
4、ArcGIS的数据交互模块和FME神似(因为咱也没了解过他们内在的py交易,就以神似表达了),类似ETL直接在FME里面做坐标偏移