Arcpy基础入门-2、arcpy的批处理功能
发布于 4 年前 作者 admin 4500 次浏览 来自 技术

原文转自 教程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文件实现了批处理。

7 回复

楼主,你是有多厉害啊,啥都会

@sshuair 这是转载的,只会一点点,现在主攻webgis和web开发.

@admin 希望论坛越办越好,哪天我要是能达到楼主的水平,一定来这里多写文章,嘻嘻!↖(^ω^)↗

@sshuair 找到一个点学习就行了,其他的一看就会。

@admin 楼主写得深入简出,不错, 就是浏览不方便,能不能做个集合贴,每个贴不好找呀 还有一个建议,论坛打开每个问题时能不能是弹出新窗口,要不浏览结束了还要按返回键,习惯直接关了窗口,一关就要重输入网址了 再请教一个问题: 我想在图上加入文本框,和数据库一个字段绑定,选择后就可以定位,这个能做吗?

@sblisb 谢谢你的建议,可以监听文本框的改变的事件,然后定位。

@admin 能出个添加组合框,组合框绑定fid的教程吗?

赞助本站 点击广告
回到顶部