教程1中我们简单的说了arcpy的使用方法,这应该特符合中国的国情吧,先会用再说。我们这一节还是讲arcpy的使用。说一下arcpy的批处理功能。
ArcGIS作为世界领先的平台GIS软件,其应用的广泛性和良好的用户体验已经毋庸置疑。ArcGIS从地理数据库、地理处理框架、地理数据可视化三个方面构架起整个平台。同许多平台一样,arcgis有效的对其核心代码进行了封装,并提供了对功能的定制。这也算是许多平台软件都提供的功能,像CAD提供的宏命令。
来个示例代码看下:
import arcpy
arcpy.env.workspace = r"C:\Users\Administrator\Desktop\H48G026039.gdb"
fcs = arcpy.ListFeatureClasses()
fcCount = len(fcs)
for fc in fcs:
arcpy.RepairGeometry_management(fc)
print fc
print fcCount
这个代码是对一个gdb数据库进行了遍历,并对遍历的每一个要素类图层进行要素修复。相信大家应该都用过RepairGeometry工具,但是每次只能对一个要素图层进行修复,arcmap里的Batch功能也只能对要素图层一个一个添加,很是麻烦,而上面的代码却很好的解决了这个问题。
这就是arcpy的第一个用处:弥补arcgis桌面版软件对工作空间(数据库或者文件目录)直接处理和批处理的功能性不足。
再来个示例代码看下:
import arcpy, os, time
path = r'D:\可达性分析'
res = 100
print '程序开始:' + str(time.ctime())
for afile in os.listdir(path):
if afile[-3:].lower() == 'mxd':
mxd = arcpy.mapping.MapDocument(os.path.join(path,afile))
arcpy.mapping.ExportToJPEG(mxd, os.path.join(path,afile[:-3] + 'jpg'), resolution = res)
del mxd
print '程序结束:' + str(time.ctime())
这段代码对一个文件夹下的mxd文件进行遍历,并导出为jpg文件,这也很方便的对大批量的mxd文件实现了批处理。