I'm trying to run Mean annual cell statistics for groups of monthly rasters.
The output I'm getting is the same as the last raster in the list ("camp_t_srf_sep" in this example) so i assume the script is not actually iterating through all rasters.
Any help will be greatly appreciate it.
# Example of list of rasters: # camp_t_srf_apr # camp_t_srf_aug # camp_t_srf_dec # camp_t_srf_feb # camp_t_srf_jan # camp_t_srf_jul # camp_t_srf_jun # camp_t_srf_mar # camp_t_srf_may # camp_t_srf_nov # camp_t_srf_oct # camp_t_srf_sep import arcpy from arcpy import env from arcpy.sa import * arcpy.CheckOutExtension("Spatial") env.overwriteOutput = True env.extent = arcpy.Extent(-180.0, -90.0, 180.0, 90.0) env.workspace = arcpy.GetParameterAsText(0) StageAge = arcpy.GetParameterAsText(1) rasterlist = arcpy.ListRasters(StageAge + "_*") for raster in rasterlist: output_mean = CellStatistics(raster, "MEAN", "DATA") output_mean.save(env.workspace + "\\" + raster[:11] + "ann")
Solved! Go to Solution.
Throw a print statement in... just to make sure you are getting the correct names, it will silently do nothing otherwise
And also.. Cell statistics expects a list/stack of rasters, not one at a time
Thank you Dan.
yes, the print statement gives me the list of rasters I want to calculate the mean from.
I thought I was giving the script the list of rasters with the variable rasterlist. I don't quite understand why it only processes the last raster in the list.
because you are cycling through each raster one at a time.
give it the whole list... examine the syntax in the code sample in the link I provided
I know it works like as below. Just thought there would be a more elegant and economic way to put it using ListRasters
rasterlist5 = [StageAge + "_t_srf_apr", StageAge + "_t_srf_aug", StageAge + "_t_srf_dec", StageAge + "_t_srf_feb", StageAge + "_t_srf_jan", StageAge + "_t_srf_jul", StageAge + "_t_srf_jun", \ StageAge + "_t_srf_mar", StageAge + "_t_srf_may", StageAge + "_t_srf_nov", StageAge + "_t_srf_oct", StageAge + "_t_srf_sep"] output_mean = CellStatistics(rasterlist5, "MEAN", "DATA") output_mean.save(OUTWorkspace + "\\" + raster[:11] + "ann")
I see what you mean. Thanks so much Dan.
rasterlist5 = arcpy.ListRasters(StageAge + "_*") for raster in rasterlist5: print raster output_mean = CellStatistics(rasterlist5, "MEAN", "DATA") output_mean.save(env.workspace + "\\" + raster[:11] + "ann")