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

posted @ 2017-10-27 15:12  粥和  阅读(3486)  评论(0编辑  收藏  举报