inList = []
for filename in rasterFiles:
if filename.endswith('14'):
inList.append(filename)
arcpy.sa.CellStatistics(inList, outRaster, "MEAN", "DATA") # this line was incorrect in your example
# Import system modules
import arcpy
from arcpy import env
from arcpy.sa import *
# Check out the ArcGIS Spatial Analyst extension license
arcpy.CheckOutExtension("Spatial")
# Input data source
arcpy.env.workspace = "S:/Work/Risa/Trial & Error/input"
arcpy.env.overwriteOutput = True
# Set output folder
OutputFolder = "S:/Work/Risa/Trial & Error/output/"
# Loop through a list of files in the workspace
rasterFiles = arcpy.ListRasters()
# Local variables:
for filename in rasterFiles:
print("Processing: " + filename)
inRaster = arcpy.env.workspace + "/" + filename
if filename.endswith("*.14.tif"):
inRaster.append(filename)
# Process: Cell Statistics
outRaster = CellStatistics(inRaster, "MEAN", "DATA")
# Save the output
outRaster.save("S:/Work/Risa/Trial & Error/output/AvgPrecip01.tif")
print "Average Calculated!!!"
# Import system modules
import arcpy
from arcpy import env
from arcpy.sa import *
# Check out the ArcGIS Spatial Analyst extension license
arcpy.CheckOutExtension("Spatial")
# Input data source
arcpy.env.workspace = "S:/Work/Risa/Trial_and_Error/input" # don't use spaces or special characters in path names
arcpy.env.overwriteOutput = True
# Set output folder
OutputFolder = "S:/Work/Risa/Trial_and_Error/output/"
# Loop through a list of files in the workspace
rasterFiles = arcpy.ListRasters()
# The loop does nothing else but build the list
inRasters = [] # you need to do this outside of the loop
for filename in rasterFiles:
print("Processing: " + filename)
if filename.endswith("14.tif"):
inRasters.append(filename)
# Now we have a list of the files we want to average, but you only need to calculate the average once,
# which means this part should not be in the loop, so we remove indentation
outRaster = CellStatistics(inRasters, "MEAN", "DATA")
# Save the output
outRaster.save("S:/Work/Risa/Trial_and_Error/output/AvgPrecip01.tif")
print "Average Calculated!!!"# Import system modules
import arcpy
from arcpy import env
from arcpy.sa import *
# Check out the ArcGIS Spatial Analyst extension license
arcpy.CheckOutExtension("Spatial")
# Input data source
arcpy.env.workspace = "S:/Work/Risa/Trial_Error/input" # don't use spaces or special characters in path names
arcpy.env.overwriteOutput = True
# Set output folder
OutputFolder = "S:/Work/Risa/Trial_Error/output/"
# Loop through a list of files in the workspace
rasterFiles = arcpy.ListRasters()
# The loop does nothing else but build the list
inRaster = [] # you need to do this outside of the loop
for filename in rasterFiles:
print("Processing: " + filename)
if filename.endswith("*.14.tif"):
rasterFiles.append(filename)
# Now we have a list of the files we want to average, but you only need to calculate the average once,
# which means this part should not be in the loop, so we remove indentation
outRaster = CellStatistics(rasterFiles, "MEAN", "DATA")
# Save the output
outRaster.save("S:/Work/Risa/Trial_Error/output/AvgPrecip18.tif")
print "Average Calculated!!!"
#takes the average and including the file that ends with *.14
Dear Darren,
Thank you very much for your reply. Maybe I said something wrong at the beginning. I want to include the files that ends with *.01 to *.12 but exclude *.14.
inRaster = [] # you need to do this outside of the loop
for filename in rasterFiles:
print("Processing: " + filename)
if filename[-6:] in [str(x).zfill(2) + '.tif' for x in xrange(1, 13)]:
rasterFiles.append(filename)
if not filename.endswith("*.14.tif"):
Or, just to be lazy:if not filename.endswith("*.14.tif"):
>>>filename = 'ppt_1970.14.tif'
>>>filename.endswith('14.tif')
True
>>>filename.endswith('*.14.tif')
False