python批量裁剪遙感影像

在自然資源調查中,一個很重要的基礎性工作就是以縣域為單元對遙感影像進行裁剪,在以往的工作過程中,影像裁剪工作均是手動操作,首先需要參照影像圖幅框中各影像的空間位置,在全省的影像中找到與某縣域相交的所有影像,然後在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")


分享到:


相關文章: