在自然資源調查中,一個很重要的基礎性工作就是以縣域為單元對遙感影像進行裁剪,在以往的工作過程中,影像裁剪工作均是手動操作,首先需要參照影像圖幅框中各影像的空間位置,在全省的影像中找到與某縣域相交的所有影像,然後在Arcgis中進行裁剪,一個單元裁剪完成後,再手動進行下一個單元的裁剪配置,不僅工作量大,效率低,而且在查找影像過程中容易混淆出錯。而採用Python腳本語言,則只需要設置好全省縣界面、影像圖幅框和全省遙感影像圖的存放位置,就可以實現對全省一百多個單位和幾百景遙感影像進行自動裁剪。具體實現代碼如下:
#導入站點包和環境參數
import arcpy
from arcpy import env
import os
#定義初始條件
arcpy.CheckOutExtension("spatial")
arcpy.gp.overwriteOutput = 1
env.workspace = "c:/zygx"
xjm = "c:/zygx/xjm.shp"
tfk = "c:/zygx/tufukuang.shp"
xnum = "XIAN"
#加載全省縣界面
arcpy.MakeFeatureLayer_management(xjm, "xjm")
#定義查詢遊標,遍歷縣界面中的元素
xcursors = arcpy.da.SearchCursor("xjm", ["XIAN","XIAN_NAME"])
for xcursor in xcursors:
qry= xnum + "=" + "'" + xcursor[0] + "'"
#選中裁剪單元
arcpy.SelectLayerByAttribute_management("xjm","NEW_SELECTION",qry)
#定義裁剪後影像的存放路徑
folder = "c:/zygx/cj/ " + xcursor[1]
os.makedirs(folder)
#定義查詢遊標,遍歷圖幅框中的元素
qryy = "XIAN" + "= '" + xcursor[0] + "'"
tcursors = arcpy.da.SearchCursor(tfk, ["XIAN","TNAME"],qryy)
for tcursor in tcursors :
inpt = "c:/zygx/yx/" + tcursor[1] + ".ers"
outpt = folder + "/" + tcursor[1] + "_clip.img"
#裁剪影像
arcpy.Clip_management(inpt,"",outpt,"xjm","","NONE")
print(tcursor[1] + "Has Done")
print(xcursor[1] + "All Done")
print("All Done")