接到的需求是对文件夹下包括子目录所有影像进行投影变换,在网上找了找,大家的代码好像和需求不太一致,自己写了一个小工具。
思路是遍历文件夹所有.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
思路是遍历文件夹所有.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
来源:https://www.cnblogs.com/EVELE/p/7743440.html