# coding:utf-8
# 程序说明:使用ARCGIS自带的python2.7编译器。
import os
import arcpy
from arcpy import env
from arcpy.sa import *
import string
arcpy.CheckOutExtension("spatial")
arcpy.gp.overwriteOutput = 1
arcpy.env.overwriteOutput = 1
arcpy.CheckOutExtension("spatial")
arcpy.gp.overwriteOutput=1
Up_Path="D:\\EVI_1\\" #第一个变量的文件路径
Down_Path="D:\\EVI_1\\" #第二个变量的文件路径
OutPath="D:\\EVI_divide\\" #输出结果路径
n = 1 #起始编号
for i in range(0,460): #总文件数量
OutName=OutPath+"divide"+str(n+1)+"_"+str(n)+".tif"
a=Up_Path+"EVI_"+str(n)+".tif" #第一个变量文件名描述
b=Down_Path+"EVI_"+str(n+1)+".tif" #第二个文件名描述
c=arcpy.sa.Float(Float(Raster(b)-Raster(a))/Float(Raster(a)))#减法方程
c.save(OutName)
print(str(n)+" has done")
n=n+1
i=i+1
我发现我用Arcpy计算的栅格影像与ENVI计算的像元值统计出来不一样(只在除法中出现),我觉得是Arcpy本身计算误差(就计算时间来说Arcpy比ENVI计算快一点,按道理与这个貌似没什么关系)。各位看官如果发现我的错误希望可以帮我指出,万分感谢!