我在之前的部落格:批處理檔案(.bat)并行Arcpy腳本提高效率的思路,闡述了如何編寫Arcpy腳本,如何利用Windows bat批處理腳本同時打開多個cmd視窗,以實作并行處理,提高資料處理效率。但是上述部落格仍然存在着:1、需要編寫多個Arcpy腳本;2、參數修改麻煩。最近做了一些修改,解決了上述問題。現進行分享。
目錄
前言
Arcpy腳本
導入庫
函數定義
循環實作
批處理(.bat)腳本
我在之前的部落格園部落格裡,闡述了如何編寫Arcpy腳本,如何利用Windows bat批處理腳本同時打開多個cmd視窗,以實作并行處理,提高資料處理效率。但是上述部落格仍然存在着:1、需要編寫多個Arcpy腳本;2、參數修改麻煩。最近做了一些修改,解決了上述問題。現進行分享。
借鑒知乎批處理教程,腳本分為運作參數準備函數定義、Arcpy掩膜提取函數定義、循環實作三大部分。
首先定義運作參數準備函數,将所有輸入輸出參數存儲到一個嵌套清單中,友善掩膜提取函數調用。然後定義掩膜提取函數。
利用sys.argv語句擷取指令行輸入的參數,調用pre_parameter函數生成掩膜提取函數運作參數清單。然後利用for循環,根據start與end處理特定檔案數。通過多個cmd視窗打開多個腳本分别運作,便可以同時處理多個檔案,提高效率。本例中,若隻運作一個腳本需要70多個小時,同時運作7個腳本隻需要10個小時左右。
第一句要設定為你的Arcpy python.exe所在完整路徑。要完全按照順序依次輸入: inpath(輸入路徑), outpath(輸出路徑), inf(掩膜檔案), start(第一個處理檔案的編号), end(最後一個處理檔案的編号)
指令的具體含義請參考參考這篇部落格 。
以上思路或許還有更加優秀的解決辦法,歡迎牛人大佬朋友下方留言交流。