[GIS] Unable to Provide Input for a MultiValue Parameter Script Tool

arcgis-10.0arcpyarctoolboxparameters

I have the following script:

#Import ArcPy site package
import arcpy
from arcpy import env
from arcpy import Raster
from arcpy.sa import ZonalStatistics
from arcpy.sa import CreateConstantRaster

# Set Environment Workspace
ws = env.workspace = "MY_WORKSPACE_PATH\\FGD.gdb"
# Set Environment Raster Cell Size
env.cellSize = 10

# Check out ArcGIS Spatial Analyst extension license
arcpy.CheckOutExtension("Spatial")

# Get Parameters as Text
rasters = arcpy.GetParameterAsText(0)
inputRasters = rasters.split(";")
inZoneData = arcpy.GetParameterAsText(1)
zoneField = arcpy.GetParameterAsText(2)

# The constant raster = 0
addedRaster = CreateConstantRaster(0)

# Process each raster string
for raster in inputRasters:
    addedRaster = addedRaster + Raster(ws + "\\" + raster)

# Execute Zonal Statistics
zoneStats = ZonalStatistics(inZoneData, zoneField, addedRaster, "MAXIMUM", "DATA")

# Save the output
zoneStats.save(ws + "\\" + NewTest_12102011")

I have imported the script as a script tool in ArcMap, my parameters are in the correct order and have the correct attributes (this script works when I have, for example, just two raster inputs as parameters). The input rasters are referenced as a String (this tool will eventually be used as a Geoprocessing Task, so I cannot use rasters a input directly). The problem I have is that when I open the tool, there is no way for me to input anything into the first parameter.

enter image description here

To provide some clarity: each value that could be entered into the parameter would be the name of a raster inside the geodatabase. For instance, say the user enters "rasterOne" and "rasterTwo". This would refer to MY_WORKSPACE_PATH\FGD.gdc\rasterOne and MY_WORKSPACE_PATH\FGD.gdc\rasterTwo, which are then cast to a Raster object with

Raster("MY_WORKSPACE_PATH\\FGD.gdc\\rasterOne")

Any suggestions would be great. Thanks.

Best Answer

In addition to the above comments, I will show what this simple script and the toolbox with a filter list allows and you can decide if that is the desired outcome. The following script

import arcpy
selected= arcpy.GetParameterAsText(0)
arcpy.AddMessage("\nselected data " + str(selected) + "\n")

was added to a toolbox with one multivalue parameter with values provided to be selected. The following image shows the input stage with 3 string values selected (eg names of input data for example) multivalue selection

The following is the output.

Executing: Multiparameter first;second;third
Start Time: Mon Dec 12 10:57:45 2011
Running script Multiparameter...

selected data first;second;third

Completed script Multiparameter...
Succeeded at Mon Dec 12 10:57:45 2011 (Elapsed Time: 0.00 seconds)

Not sure if that helps, but it might useful for other posts.

Related Question