- 工作上用的数据,涉及中文的使用,所以加上转码u
- 代码中使用的路径不要过长,容易报错
- Arcgis10.1如果结果为空不生成shp,Arcgis10.2会生成空shp
#coding = utf-8
import arcpy
import os
#Workspace
inWorkspace = r'D:\19Q4\DATA\19Q4_BACK\prjBACK'
updateWorkspace = r'D:\PythonCode_inWork\06BACK_SYMDIFF_COUNT\19Q3G2_BACK\prj_result_19Q3G2'
outWorkspace = r'D:\19Q4\DATA\19Q4_BACK\BACK_SYMDIFF_19Q4G2'
#City List
##file_names_ls = os.listdir(inWorkspace)
###print(file_names_ls)
##city_ls = []
##for file in file_names_ls:
## city = file.split('_')[0]
## if city not in city_ls:
## city_ls.append(city)
##print(city_ls)
city_ls = [u'三亚', u'东莞', u'中山', u'乌鲁木齐', u'佛山', u'保定', u'兰州',\
u'南京', u'南宁', u'南昌', u'南通', u'厦门', u'台州', u'合肥',\
u'呼和浩特', u'哈尔滨', u'唐山', u'大连', u'天津', u'太原', u'宁波',\
u'常州', u'徐州', u'惠州', u'成都', u'扬州', u'无锡', u'昆明', u'杭州',\
u'柳州', u'武汉', u'泉州', u'济南', u'海口', u'温州', u'潍坊', u'烟台', \
u'珠海', u'盐城', u'石家庄', u'福州', u'秦皇岛', u'绍兴', u'芜湖', \
u'苏州', u'西宁', u'西安', u'贵阳', u'郑州', u'重庆', u'金华', u'银川',\
u'长春', u'长沙', u'青岛', u'沈阳', u'广州', u'上海', u'深圳', u'北京']
dict = {u'绿地':'_GREENURBAN.shp',u'水系':'_WATER.shp'}
num_ok = 0
num_fail = 0
for city in city_ls:
cnt = 0 #计数器
for key in dict:
inFeatures = inWorkspace + '\\' + city + dict[key]
updateFeatures = updateWorkspace + '\\' + city + dict[key]
outFeatureClass = outWorkspace + '\\19Q4' + city + key + u'差分量.shp'
clusterTolerance = 0.001
# Execute SymDiff
try:
arcpy.SymDiff_analysis(inFeatures, updateFeatures, outFeatureClass, "ALL", clusterTolerance)
cnt += 1
except:
print(city + key + u'差分失败!请确认!')
num_fail += 1
if cnt==2:
num_ok += 1
print(u'差分完成!共{0}城市成功,{1}差分失败项,请确认!'.format(num_ok,num_fail))
转载:https://blog.csdn.net/lzqg1990/article/details/101375879
查看评论