找回密码
 立即注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

查看: 3257|回复: 3

[求助] arcgis中的PYTHON问题

1

主题

2

帖子

2

积分

贫民

积分
2
校草 发表于 2017-6-27 19:34:38 | 显示全部楼层 |阅读模式
# Import system modules  
import sys, string, os   
dir = 'H:\\NDVI\\ndvi'   
# Import arcpy module  
import arcpy  
files = os.listdir(dir)  
for f in files:  
    if os.path.splitext(f)[1] == '.tif':  
     # Script arguments...  
     Input_raster_file = dir + os.sep + f  
     # Local variables...   
    Output_Workspace = "H:\\NDVI\\ndvi\\ASCII"  
     # =============== file name process ======================  
     basename = os.path.splitext(f)[0];  
    Output_raster = Output_Workspace + os.sep + basename + ".txt";  
    if os.path.exists(Output_raster) == False:  
        print Input_raster_file  
        # Process: Raster To Other Format (multiple)...  
        arcpy.RasterToASCII_conversion(Input_raster_file,Output_raster)  
        print Output_raster





输入文件名是这样的 heihe_2001_NDVI_recon.001.tif
        heihe_2001_NDVI_recon.002.tif
        heihe_2001_NDVI_recon.003.tif
           ....

问题如下:1.if os.path.splitext(f)[1] == '.tif': 是什么意思
     2.basename = os.path.splitext(f)[0];   中的[0]是什么意思
     3.运行报错  File "<string>", line 17, in <module>
NameError: name 'Input_raster_file' is not defined  问题出在哪

求各位大神解答,在此先谢过

回复

使用道具 举报

1

主题

2

帖子

2

积分

贫民

积分
2
校草  楼主| 发表于 2017-6-27 19:35:52 | 显示全部楼层
还有for f in files 中的f是什么意思呢?
回复 支持 反对

使用道具 举报

30

主题

116

帖子

116

积分

侠客

积分
116
chenmengdan 发表于 2017-6-28 09:00:19 | 显示全部楼层
1.if os.path.splitext(f)[1] == '.tif': 就是判断一个文件名的后缀是否为 .tif。你自己试验下,就知道了,并且第二个问题就明白了。

3. 先定义Input_raster_file为一个空的字符串试试,还有你的if没有缩进
回复 支持 反对

使用道具 举报

30

主题

116

帖子

116

积分

侠客

积分
116
chenmengdan 发表于 2017-6-28 09:03:15 | 显示全部楼层
校草 发表于 2017-6-27 19:35
还有for f in files 中的f是什么意思呢?

files 应该是一个目录下的所有文件,用列表表示

那for 循环里,f应该就是文件名
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表