arcgis for python 批量投影變換


 接到的需求是對文件夾下包括子目錄所有影像進行投影變換,在網上找了找,大家的代碼好像和需求不太一致,自己寫了一個小工具。

思路是遍歷文件夾所有.tif文件。

1.用os.walk()函數來獲取路徑和文件名

2.用 if 語句限制讀取后綴為.tif的文件

3.將文件路徑和文件名組合起來

4.調用arcpy.ProjectRaster_management語句投影變換並輸出

 

由於剛剛接觸python,難點主要在於os.walk()目錄的讀取這個函數的了解上。

以下是代碼

 1 #coding = utf-8
 2 import os
 3 import arcpy
 4 from arcpy import *
 5 
 6 #定義一個函數,第一個參數是一個集合,用來接收所有.tif的路徑。第二個函數是指定的文件夾。
 7 def huoqu(jieshou,lujing):
 8     for dirpath,dirnames,filenames in os.walk(lujing):
 9         for filename in filenames:
10             if  os.path.splitext(filename)[1] == '.tif':
11                 file1 = dirpath+'\\'+filename
12                 jieshou.append(file1)
13 
14 #這里變量的設置,GetParameterAsText函數來獲取對應在python工具箱中的位置
15 env.workspace = GetParameterAsText(0)
16 work = env.workspace
17 ref = GetParameterAsText(1)
18 tifz = []
19 
20 #調用自定義的函數
21 huoqu(tifz,work);
22 
23 #對所有的影像進行循環投影變換,並且將輸出路徑設置為指定的文件夾+原本的名字
24 for file in tifz:
25     out = GetParameterAsText(2)+"/"+ os.path.basename(file)
26     ProjectRaster_management(file,out,ref)

 

以下是工具箱參數設置

 

設置好輸出和輸出的文件夾以及坐標系就能輸出了

 

 

有了對文件夾下所有指定后綴的函數,只要改動arcpy提供的函數,可以對指定文件進行很多操作,比如位深升降,刪格復制等。

工具箱下載地址:

 https://files.cnblogs.com/files/EVELE/%E6%8A%95%E5%BD%B1%E5%8F%98%E6%8D%A2.zip

 

 

 轉載請聯系作者1600331047@qq.com


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM