1. 程式人生 > >基於IDLE(arcgis)的.shp檔案批裁剪

基於IDLE(arcgis)的.shp檔案批裁剪

工具:Arcgis 10.2;Excel;Txt

一 基於IDLE的批處理

  1. 開啟IDL工具 arcgis-IDLE,之後file-New Window複製以下程式碼;更改所在、存放目錄和shp檔案位置後,run-run Module(F5)。正常情況下就可以看到clp.tif檔案了。
import arcpy
import glob
import os

arcpy.CheckOutExtension('Spatial')

#指定先前拼接後的遙感影像所在目錄
inws = r"d:\xingan\mrt\MOD11\pichuli"

#指定裁剪後的影響存放目錄
outws = r"d:\xingan\mrt\MOD11\11"

#指定shp範圍邊界檔案,即目標區域的邊界
mask = r"d:\xingan\data\xingan.shp"

#利用glob包,將inws下的所有tif檔案讀存放到rasters中
rasters = glob.glob(os.path.join(inws, "*.tif"))

#迴圈rasters中的所有影像,進行按掩模提取操作
for ras in rasters:
  outname = os.path.join(outws, os.path.basename(ras).split(".")[0] + "11_clp.tif")  #指定輸出檔案的命名方式(以被裁剪檔名+_clip.tif命名)
  out_extract = arcpy.sa.ExtractByMask(ras, mask)  #執行按掩模提取操作
  out_extract.save(outname)  #儲存資料

二 問題

  1. 但我的出現了下列錯誤:在這裡插入圖片描述 經反覆試驗,發現是在生成醃膜檔案時,因我檔案的特點,其醃膜檔案一致(均是MOD11A2),因此導致程式出現錯誤在這裡插入圖片描述 因無Python基礎,不知道如何更改程式,因此想到了批量更改檔名。 三 批量更改資料夾名稱

  2. dir命令自動提取檔名

  3. 以檔案在d:\xingan\mrt\MOD11\pichuli 內為例,具體方法如下 命令-輸入cmd- d: -cd xingan\mrt\MOD11\pichuli-dir/b>1.xls 在這裡插入圖片描述 1.xml檔案開啟 在這裡插入圖片描述 在左側加列,第二行輸入ren,點右下角位置下拉,使檔案前均有ren, 在這裡插入圖片描述 在這裡插入圖片描述 因我需要的是A開頭及之後的部分,操作如下 在第3列第二行(C2)輸入=right(B2,24),其中B2是第2列第2行(原檔名稱),24為24個字串,right(B2,24)為第二行第2列從右開始向左查到第24個字串, 在這裡插入圖片描述

    右下角下拉單元格 在這裡插入圖片描述 複製除第一行的需要更改資料夾的前三列到新建的TXT檔案中, 在這裡插入圖片描述 將該檔案的字尾改為.bat,雙擊該檔案,可看到該資料夾內的MOD11A2.已經去掉,此時在進行第一步批裁剪操作即可成功 在這裡插入圖片描述