ArcGIS中实现数据平移可采用如下办法:
(1) 使用move工具
(2) 使用“project”工具实现平移
(3) 使用“spatial ETL”工具实现平移
方法一
Move适用小数据量的平移,如果数据量大的话,容易出现运行时间过长或者直接导致ArcMap崩溃。
操作流程:打开编辑,选中需要移动的要素类,点击编辑器下的move,在Delta xy中输出需要移动的数值;这些坐标使用地图单位进行测量,如果是投影坐标系,以米为单位输入需要偏移的数值。
方法二
使用“project”工具实现平移的原理就是通过相同的椭球、相同的投影方法、东偏移和北偏移的参数不一样,从而实现数据平移。
需求:现有一个地理坐标系的shapefile文件,所在的投影坐标系是CGCS2000_GK_CM_111E;原始数据有上百万条记录;想将此数据向东平移1000m,向南平移500m。
分析:上百万条记录,如果使用move实现平移时间长,难以实现需求。选择方法二实现。
操作流程:
1) 确定原始数据坐标系的类型
如果我们拿到的数据是地理坐标系,需要使用工具project将其转换为投影坐标系(数据实际所在的投影坐标),测试数据所属投影坐标系为CGCS2000_GK_CM_111E。如果数据本身就是投影坐标系,那么直接从步骤二开始。
2) 建立自定义坐标系,设置偏移系数。
在数据框属性中,找到CGCS2000_GK_CM_111E,右键点击copy and modify,重命名坐标系名称为CGCS2000_GK_CM_111E_move,将False_Easting设置为501000(向东平移1000m),False_Northing设为-500(向南平移500m),其余的保持不变。设置如下:
点击确定后,在custom中就出现了我们刚才所建立的坐标系,右键可将其另存为磁盘上,以.prj为后缀。
3) 使用project工具,将原始数据投影坐标系转换为自定义投影坐标系,实现数据的偏移。
生成的数据命名为:DK_Project_Projectmove
4) 将转换后的坐标重新定义回原始投影坐标,使用define project
平移结果如图:
方法三
ArcGIS数据互操作模块中提供给了一个Offsetter函数,使用“spatial ETL”工具实现平移非常方便。
1)在 my toolboxs上新建一个工具箱,在工具箱上右键,新建spatial ETL tool,输入reader和writer数据路径。
添加Offsetter函数,设置x,y的Offset即可。如下图所示。