今天教教大家用arcmap批量处理,很简单哦,一键操作,别害怕,坐稳,真的很简单的!大家一般在上课、学习期间都用不上批处理,就几张图而已,是我我也不用,纯属装bi,真讨人嫌。
教教你简易快速批处理
arcmap批处理方式很多,最简单的是在工具上右键选择“批处理”,
这种方式比较简单,适合不那么多的情形,十个八个的,十几个都能勉强接受。不要问为什么,因为你点开就会发现,我去,这是半自动,顿时有种被欺骗的感觉,那是一个气啊,这还是手动啊!右键“浏览”可以一次输入多个文件,切记,切记,不然1/16自动了简直。
脚本处理
脚本处理
这个真的是最容易接受的了,你以为要你写代码?oh my God,很多人一听见就头疼,我不学我不学,我拉肚子,我腿抽经,我困!别怕,叔叔是不会骗人的!来,很简单,就一个字,“脱”,呸呸呸,是“拖”。
第一步:打开python窗口
第二步:将需要的功能拖进上面的脚本,我拖进去的是“面转栅格”
第三步:要干嘛?看不懂这个框啊?没关系,右键你刚才拖动的按钮,查看“项目描述”,在这里面,它会告诉你所需要输入的参数,说的非常详细,按照它说的,把参数写进去就Ok了,按键盘的“Enter”就行了,真的非常简单,不需要你写代码,是真的简单一“拖”就OK。
实际上,我骗了你们,不是“拖”了不认账啊?不能胡说的啊!大家都知道,那是命令行,虽然可以一次处理多个文件,但是比较麻烦。那怎么才能一次处理很多个呢?往下看,真的下次你直接复制过去就能用。
脚本批处理
第一步:打开arcgis自带的python编辑器。下图最下面的那个。然后,“file”--->"New window",这里打开的是编辑器,为什么要用自带的呢?因为它里面有arcpy的包,这个要付费,不能装在自己的python编辑器里面,只能用它这个又丑又慢的编辑器。
第二步:在刚才打开的“项目描述”中,往下翻,能看见示例代码,别多想,直接复制进第一步的编辑器里面。下面的是我直接复制进去的。我复制的仍然是刚才“面转栅格”的功能。
第三步:怎么批处理呢?这时你得让程序知道你需要处理的文件在哪里?下面,将展示一下我写的读取文件的全部shp文件,并转为栅格tif文件的代码,你们用的时候直接复制我的进去,改改路径就好。是不是很Nice,我还不懂你,复制多爽。写完后,点击"run"运行即可
# Name: PolygonToRaster_Ex_02.py
# Description: Converts polygon features to a raster dataset.
# Import system modules
import arcpy
from arcpy import env
import os
import sys
import time
def vector_tif():
path = r"E:/BS2/data/shp"#存放shp的文件夹,改为自己的
list_name = []
#读取文件中的全部.shp
for file in os.listdir(path):
file_path = os.path.join(file)
if os.path.isdir(file_path):
os.listdir(file_path, list_name)
elif os.path.splitext(file_path)[1]=='.shp':
list_name.append(file_path)
#下面程序就是复制arcmap工具里面的”项目描述的内容“
# Set environment settings
env.workspace = r"E:/BS2/data/shp"#工作空间,选择自己的
# Set local variables
for i in range(len(list_name)):#玄魂全部shp文件
name = list_name[i]
print(name)
#以下参数,可以根据不同功能所需的输入做出更改
inFeatures = r'E:/BS2/data/shp/'+name#shp文件的名字
valField = "gwaterEle"#输出栅格的分配字段
outRaster = r'E:/BS2/data/tif/tif'+name[:-4] + '.tif'#输出tif的名字
assignmentType = "CELL_CENTER"#像元分配方法
priorityField = "NONE"
cellSize = 25#栅格大小
# Execute PolygonToRaster
arcpy.PolygonToRaster_conversion(inFeatures, valField, outRaster,
assignmentType, priorityField, cellSize)
if __name__ == "__main__":
print("shp转为tif")
s_time=time.time()
vector_tif()#调用函数
e_time=time.time()
print("程序共耗时: %.2f s!" % (e_time - s_time))
对于工具栏力的其他功能,都能通过查看“项目描述”,复制参考代码,然后简单修改即可,关于怎么一次性读取文件件下所用文件,这个可以参考我写的,也可以根据需要去查一查,还是需要一点编程功底的。
还有一种最牛的方式是模型编辑器,这玩意儿是真的一句代码不写,就能完成批处理,但是逻辑性行要求比较高,我也不怎么会,学通透了在来刚告诉你们。