In my earlier post on workflow automation in Whitebox, Simon Seibert left a comment asking, “I would like to know if it possible to include for loops in the Scripter as well? I would like to run the same script over many files. Could you also provide an example for such a problem?” Well Simon, yes you can. Here is an example of a simple Python script that finds all of the raster files contained within the current working directory and then performs a very simple analysis on each file:
import os # The following code will find each raster # file (.dep) in the working directory and # then run a mean filter on the image. wd = pluginHost.getWorkingDirectory() a = 1 for file in os.listdir(wd): if file.endswith(".dep"): inputFile = wd + file outputFile = wd +"output" + str(a) + ".dep" a += 1 xDim = "3" yDim = "3" rounded = "false" reflectEdges = "true" args = [inputFile, outputFile, xDim, yDim, rounded, reflectEdges] pluginHost.runPlugin("FilterMean", args, False)
If you want to take it to the next level, you can parallelize the script so that each iteration is run on a separate thread. So, there you have it. Leave your comments below and, as always, best wishes and happy geoprocessing.