通过光栅循环计算单元内统计的平均值

2024-05-19 03:20:25 发布

您现在位置:Python中文网/ 问答频道 /正文

我正试图通过一组MODIS数据循环计算各时段的平均值。由于2000年缺少1-3个周期,我只是计算2001年到2012年期间1-3的平均值。然后我用2000年到2012年的数据计算第4-23期的平均值。我已经编写了一个脚本来执行此操作,但是一直收到错误000732,关于我的数据不存在或不受支持。我打开了一个弧形的网格,一切正常。我不知道为什么我得到这个错误,并已包括下面的代码。我尝试了多种方法来输入光栅,但得到了相同的错误。在

# Import system modules
import arcpy
from arcpy import env
from arcpy.sa import *

# Set environment settings
env.workspace = "S:\\MODIS\\DATA_v05\\modis016_0250_ndvi\\us\\"

# Check out any necessary licenses
arcpy.CheckOutExtension("spatial")

# Path names for input and output data
path = "S:\\MODIS\\DATA_v05\\modis016_0250_ndvi\\us\\or"
output_path = "B:\\MODIS_NDVI\\Avg_per_period\\avg"

for period in range (1,3):
#MODIS does not have data for the first three periods of 2000.  This will calculate an                                                                 average for the first three periods ignoring the year 2000.  It will also place a 0 in front of the single digit to match the file name.
if period <= 3:
    period = ("0"+str(period))
    grids01 = Raster('"' + path + "01" + period + "ndvius" + '"')
    grids02 = Raster('"' + path + "02" + period + "ndvius" + '"')
    grids03 = Raster('"' + path + "03" + period + "ndvius" + '"')
    grids04 = Raster('"' + path + "04" + period + "ndvius" + '"')
    grids05 = Raster('"' + path + "05" + period + "ndvius" + '"')
    grids06 = Raster('"' + path + "06" + period + "ndvius" + '"')
    grids07 = Raster('"' + path + "07" + period + "ndvius" + '"')
    grids08 = Raster('"' + path + "08" + period + "ndvius" + '"')
    grids09 = Raster('"' + path + "09" + period + "ndvius" + '"')
    grids10 = Raster('"' + path + "10" + period + "ndvius" + '"')
    grids11 = Raster('"' + path + "11" + period + "ndvius" + '"')
    grids12 = Raster('"' + path + "12" + period + "ndvius" + '"')
    #grids = grids01 + ";" + grids02 + ";" + grids03 + ";" + grids04 + ";" + grids05 + ";" + grids06 + ";" + grids07 + ";" + grids08 + ";" + grids09 + ";" + grids10 + ";" + grids11 + ";" + grids12   
    avg_temp = ('"' + output_path + period + "temp" + '"')
    avg = (output_path + period)
    outCellStatistics = CellStatistics([grids01, grids02, grids03, grids04, grids05, grids06, grids07, grids08, grids09, grids10, grids11, grids12], "MEAN", "DATA")
    outCellStatistics.save(avg_temp)
#This is will place a 0 in front of the single digit to match the file name.
elif period < 10:
    period = ("0"+str(period))
    grids00 = ('"' + path + "00" + period + "ndvius" + '"')
    grids01 = ('"' + path + "01" + period + "ndvius" + '"')
    grids02 = ('"' + path + "02" + period + "ndvius" + '"')
    grids03 = ('"' + path + "03" + period + "ndvius" + '"')
    grids04 = ('"' + path + "04" + period + "ndvius" + '"')
    grids05 = ('"' + path + "05" + period + "ndvius" + '"')
    grids06 = ('"' + path + "06" + period + "ndvius" + '"')
    grids07 = ('"' + path + "07" + period + "ndvius" + '"')
    grids08 = ('"' + path + "08" + period + "ndvius" + '"')
    grids09 = ('"' + path + "09" + period + "ndvius" + '"')
    grids10 = ('"' + path + "10" + period + "ndvius" + '"')
    grids11 = ('"' + path + "11" + period + "ndvius" + '"')
    grids12 = ('"' + path + "12" + period + "ndvius" + '"')
    grids = "[" + grids00 + "," + grids01 + "," + grids02 + "," + grids03 + "," + grids04 + "," + grids05 + "," + grids06 + "," + grids07 + "," + grids08 + "," + grids09 + "," + grids10 + "," + grids11 + "," + grids12 + "]"    
    avg_temp = (output_path + period + "temp")
    avg = (output_path + period)
    arcpy.gp.CellStatistics_sa(grids,avg_temp,"MEAN", "DATA")
 #These are double digit periods and will match the file name without correction.
else:
    period = (str(period))
    grids00 = ('"' + path + "00" + period + "ndvius" + '"')
    grids01 = ('"' + path + "01" + period + "ndvius" + '"')
    grids02 = ('"' + path + "02" + period + "ndvius" + '"')
    grids03 = ('"' + path + "03" + period + "ndvius" + '"')
    grids04 = ('"' + path + "04" + period + "ndvius" + '"')
    grids05 = ('"' + path + "05" + period + "ndvius" + '"')
    grids06 = ('"' + path + "06" + period + "ndvius" + '"')
    grids07 = ('"' + path + "07" + period + "ndvius" + '"')
    grids08 = ('"' + path + "08" + period + "ndvius" + '"')
    grids09 = ('"' + path + "09" + period + "ndvius" + '"')
    grids10 = ('"' + path + "10" + period + "ndvius" + '"')
    grids11 = ('"' + path + "11" + period + "ndvius" + '"')
    grids12 = ('"' + path + "12" + period + "ndvius" + '"')
    grids = "[" + grids00 + "," + grids01 + "," + grids02 + "," + grids03 + "," + grids04 + "," + grids05 + "," + grids06 + "," + grids07 + "," + grids08 + "," + grids09 + "," + grids10 + "," + grids11 + "," + grids12 + "]" 
    avg_temp = (output_path + period + "temp")
    avg = (output_path + period)
    arcpy.gp.CellStatistics_sa(grids,avg_temp,"MEAN", "DATA")

Tags: thepathoutputtempperiodavgrasterndvius

热门问题