怎样用arcgis中的python进行批量投影

 我来答
育知同创教育
2017-11-12 · 百度知道合伙人官方认证企业
育知同创教育
1【专注:Python+人工智能|Java大数据|HTML5培训】 2【免费提供名师直播课堂、公开课及视频教程】 3【地址:北京市昌平区三旗百汇物美大卖场2层,微信公众号:yuzhitc】
向TA提问
展开全部

接到的需求是对文件夹下包括子目录所有影像进行投影变换,在网上找了找,大家的代码好像和需求不太一致,自己写了一个小工具。

思路是遍历文件夹所有.tif文件。

1.用os.walk()函数来获取路径和文件名

2.用 if 语句限制读取后缀为.tif的文件

3.将文件路径和文件名组合起来

4.调用arcpy.ProjectRaster_management语句投影变换并输出

由于刚刚接触python,难点主要在于os.walk()目录的读取这个函数的了解上。

以下是代码

#coding = utf-8
import os
import arcpy
from arcpy import *

#定义一个函数,第一个参数是一个集合,用来接收所有.tif的路径。第二个函数是指定的文件夹。
def huoqu(jieshou,lujing):
    for dirpath,dirnames,filenames in os.walk(lujing):
        for filename in filenames:
            if  os.path.splitext(filename)[1] == '.tif':
                file1 = dirpath+'\\'+filename
                jieshou.append(file1)

#这里变量的设置,GetParameterAsText函数来获取对应在python工具箱中的位置
env.workspace = GetParameterAsText(0)
work = env.workspace
ref = GetParameterAsText(1)
tifz = []

#调用自定义的函数
huoqu(tifz,work);

#对所有的影像进行循环投影变换,并且将输出路径设置为指定的文件夹+原本的名字
for file in tifz:
    out = GetParameterAsText(2)+"/"+ os.path.basename(file)
    ProjectRaster_management(file,out,ref)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式