I am trying to build a Python Toolbox, like in the attached example. I would like to implement an evaluation of mean like in Focal Statistics and subtraction like in Raster Calculator. In the documentation page is an example how to implement Focal Statistics, but this example is for Script Tool Wizard, not for Python Toolbox. Is there some example how to implement it and combine with raster calculator in Python Toolbox?
Below is attached my code. For now I implemented Focal Statistics, but it does not work.
Thanks in advance.
import arcpy
class Toolbox(object):
def __init__(self):
"""Define the toolbox (the name of the toolbox is the name of the
.pyt file)."""
self.label = "My"
self.alias = "model"
# List of tool classes associated with this toolbox
self.tools = [MyModel]
class MyModel(object):
def __init__(self):
"""Define the tool (tool name is the name of the class)."""
self.label = "MyModel"
self.description = ""
self.canRunInBackground = True
def getParameterInfo(self):
# Workspace parameter
param0 = arcpy.Parameter(
displayName="Input Workspace",
name="in_workspace",
datatype="DEWorkspace",
parameterType="Required",
direction="Input")
# Set the filter to accept only local (personal or file) geodatabases
param0.filter.list = ["Local Database"]
# First parameter
param1 = arcpy.Parameter(
displayName="Input Raster Dataset",
name="in_rasterdataset",
datatype=["DERasterDataset","DERasterCatalog"],
parameterType="Required",
direction="Input")
in_features.filter.list = ["Raster"]
# Second parameter
param2 = arcpy.Parameter(
displayName="Units",
name="units",
datatype="Double",
parameterType="Optional",
direction="Input",
enabled=False)
# Third parameter
param3 = arcpy.Parameter(
displayName="Output Raster Dataset",
name="out_rasterdataset",
datatype=["DERasterDataset","DERasterCatalog"],
parameterType="Derived",
direction="Output")
out_features.filter.list = ["Raster"]
param2.parameterDependencies = [param1.name]
param2.schema.clone = True
params = [param0, param1, param2, param3]
return params
def isLicensed(self):
"""Set whether tool is licensed to execute."""
return True
def updateParameters(self, parameters):
"""Modify the values and properties of parameters before internal
validation is performed. This method is called whenever a parameter
has been changed."""
return
def updateMessages(self, parameters):
"""Modify the messages created by internal validation for each tool
parameter. This method is called after internal validation."""
return
def execute(self, parameters, messages):
# Import system modules
import arcgisscripting
# Create the Geoprocessor object
gp = arcgisscripting.create()
try:
# Set local variables
InRaster = "in_rasterdataset"
OutRaster = "out_rasterdataset"
InNeighborhood = "NbrRectangle,3,3,Map"
InNoDataOption = "DATA"
# Check out the ArcGIS Spatial Analyst extension license
gp.CheckOutExtension("Spatial")
# Execute FocalStatistics
gp.FocalStatistics_sa(InRaster, InNeighborhood,"", InNoDataOption)
except:
# If an error occured while running a tool, then print the messages.
print gp.GetMessages()
return