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