感謝arcpyqq群裡的熱心大神,幫我找出了城市名提取上的錯誤,並提供了多種簡潔正確的方法!反思自己的基礎還不紮實,連字串常用的split()方法都忘記了...但也無須沮喪,繼續多多練習吧!
自頂向下設計,自底向上測試。把細節的測試做得足夠細緻,把問題再細分,記得費曼先生的學習方法,大而化之。
inworkspace = arcpy.getparameterastext(0) #輸入英文城市名檔案所在路徑,下含已轉好的dae_shp資料夾
#inworkspace = "d:/pythoncode_inwork/09dae_shp_check/process/data/yangzhou"
#城市名自動提取
#【方法1,在python指令碼中提取正常,但在arcgis指令碼工具中錯誤,需要修改】
##city_reverse= ""
##for i in range(1,len(inworkspace)):
## if inworkspace[-i] == "/":
## break
## else:
## city_reverse += inworkspace[-i]
##city = (city_reverse[::-1])
##arcpy.addmessage(city)
#【方法2】
#city = inworkspace.split('\\')[-1] if '\\' in inworkspqce else inworkspqce.split('/')[-1]
#【方法3】
#city = inworkspace.split(os.path.sep)[-1]
#【方法4】
city = os.path.split(inworkspace)[-1]
#_h合併tile
shps_dir = inworkspace + "/dae_shp"
shps = os.listdir(shps_dir)
shps_h =
for i in shps:
if '_h_poly.shp' in i:
arcpy.addmessage('start merging...')
#merge_name = city + "_merge.shp"
#merge_result = os.path.join(inworkspace,merge_name)
merge_result = inworkspace + "/"+ city + "_merge.shp"
#print merge_result
arcpy.merge_management(shps_h,merge_result)
arcpy.addmessage('merging succeed!')
#按pid融合
arcpy.addmessage('start dissolving...')
dissolve_result = inworkspace + "/"+ city + "_dissolve.shp"
arcpy.dissolve_management(merge_result, dissolve_result,["pid","ftype"])
arcpy.addmessage('dissolving succeed!' )
#與tile面交集取反
outline = ""
arcpy.addmessage('start symdiffing...')
for j in os.listdir(inworkspace):
if "submit_outline_m.shp" in j:
outline = j
infeatures = inworkspace + "/"+ outline
updatefeatures = dissolve_result
outfeatureclass = inworkspace + "/"+ city + "_symdiff.shp"
arcpy.symdiff_analysis(infeatures, updatefeatures, outfeatureclass, "all",0.05)
arcpy.addmessage('symdiffing succeed!' )
#漏藍結果排除邊界外
blue_union = inworkspace + "/"+ city + "_blue_union.shp"
arcpy.clip_analysis(outfeatureclass, infeatures, blue_union)
#拆分多部件要素
blue = inworkspace + "/"+ city + "_blue.shp"
arcpy.multiparttosinglepart_management(blue_union,blue)
#漏藍檢查提示訊息
Python 利用wordloud製作詞云
本文首發於我的部落格 gongyanli.com 詞云github 前言 第一次使用wordcloud,然後記錄了自己的點滴,使用其實很簡單。我輸出的圖形看著不太美觀,後續可以深入研究,輸出自己想要的形狀。pip install wordcloud from wordcloud import wor...
Python 利用PIL庫製作字元畫
利用pil庫將轉換為字元畫 點陣圖是由不同的顏色畫素點組成的規則分布,如果採用字串代替畫素,影象就成了字元畫.from pil import image 定義ascii char字符集,將之代替影象中的畫素點,讓每個字元對應影象中的不同顏色,字元種類越多,越能還原原圖中的色彩 asccii char...
利用python製作簡單計算器
利用python的定義函式,加上if的條件語句進行程式設計 def add x,y 相加 return x y defsubtract x,y 相減 return x y defmultiply x,y 相乘 return x y defdivide x,y 相除 return x y 使用者輸入 ...