最近一段时间,我需要处理一批数据。由于种种原因,最后选择了ArcGIS来处理。
        在尝试其中一组数据后,我对处理结果很满意。不过难题来了,怎么对付这么一堆数据呢?
        我处理的数据是全国31个省级行政区的年数据,时间范围为1961年到2008年。按每个省级行政区每年的数据算一组数据的话,那么总共有1488组数据。按每组数据我要用三步来处理,总用时要10分钟的话,那么我得花上14880分钟,即248小时,或者就是不眠不休10天多,或者是31个工作日来计算。就算我能将工作效率提高一倍,那么也相当于15.5个工作日。这样太耗时间了。我发现我的10分钟大部分都花在了确定执行步骤的选择上,真正运算并不花太多时间。所以我就想怎么提高效率。
 
        经过询问,我得知使用ArcGIS的批处理功能可以达到这个目的。
启动ArcGIS的批处理功能很简单。在ArcMap或ArcCatalog中打开ArcToolbox,选择好你想要的工具后,右键点击,选择“批处理”即可。如果你对这个工具的使用不是很熟,那么我建议先左键双击打开,试验一下单次处理再说。
打开的“批处理”是一个对话框,它由四个区域组成。面积最大的,位于左上角的是列表区,可以在里面操作生成批处理列表。列表区右边是一列操作按钮,自上而下分别是添加行、移除所选行、向上移动所选行、向下移动所选行、显示帮助和检查值。操作按钮右边是帮助信息显示区。最下面是对话框操作按钮。这个对话框还可以扩大到全屏。
在批处理操作不多的情况下,如果仅有10个以内,可以直接在列表区中一个个填写单元格中的信息,直到完成整个批处理列表。
如果批处理操作比较多,但不超过1页,即列表区还不出现纵向滚动条的情况下,可以选中其中一行或多行,用复制、粘贴的办法增加新行中的内容。
如果要增加内容相同的一行或多行,可以将要复制的一行或多行选中,使其高亮显示,再按操作按钮中的“添加行”(“+”按钮),则会自动在列表最后增加与选中内容一样的、行数相同的行。这操作中,选中的行可以是有内容的,也可以是空白的。
        如果批处理操作很多,超过1页,甚至成百上千行,那么直接在ArcGIS批处理中操作就会很烦琐也很不方便。其中一点就是当你点击任意一个单元格,列表都会自动先回到首页,再自动滚动到你点击的位置。在批处理数量少的时候,程序反应比较快,感觉不太明显。如果批处理数量多,那么反应就会很慢,直到你无法接受。这个时候,我们就要另辟蹊径了。
        在这种情况下,我们可以使用Excel来完成这项工作,具体步骤如下。
1 先在ArcGIS的批处理列表中,完成至少1行、最好是你感觉的足够多行的列表,并且检查无误。
2 选中列表中的这些行,按Ctrl+C复制。
3 打开Excel,新建一个空白的工作表,在左上角第一行第一列的单元格处Ctrl+V粘贴。
4 在Excel中检查复制好的内容,看看之后要增加的行与现有的行,哪些有所改变,哪些没有改变。这一步也可以在步骤1中操作,但因批处理列表操作较麻烦,建议还是移到步骤4中操作比较方便。
5 在Excel中制作增加的列表行,可以利用Excel的“复制单元格”、“填充序列”、“查找-替换”等功能。
6 在ArcGIS批处理列表中,用上文增加内容相同的一行或多行的办法,在列表中增加足够的行。为区别原有的行,此步骤中所增加的最好是空白行。
7 将Excel中制作好的列表行选中,Ctrl+C复制。
8 到ArcGIS批处理列表中,选中与步骤7中同样多的行,Ctrl+V粘贴。
9 如果需要,重复步骤5-8,直到ArcGIS批处理列表制作完毕。
注意,在步骤7中必须将对应ArcGIS批处理列表中的所有内容都选中,而不仅仅是部分列。复制粘贴操作仅对整个列表有效,而且在ArcGIS批处理列表中仅能按行选择,不能按列或部分连续/不连续单元格选择,所以要这么操作。
 
完成ArcGIS批处理列表制作后,可以按一下操作按钮中的最下面一个“检查值”,看一下列表中有没有弄错的地方,可以及时修改。如果需要设置操作的环境,可以点下方对话框操作按钮中的“环境”按钮进行设置。
等一切操作完成以后,点下方对话框操作按钮中的“确定”就可以执行这列表中的所有操作了。
 
        使用以上的批处理列表制作方法和利用批处理功能,我仅用一天半的时间就完成了这些数据的处理,得到了想要的结果。

原始出处:http://bbs.sciencenet.cn/home.php?mod=space&uid=485&do=blog&id=456460