He estado trabajando en una herramienta ArcGIS Python script que toma el sistema de coordenadas de un raster de entrada y reproyecta un vector al mismo sistema de coordenadas.
El script funciona bien cuando codifico las direcciones del espacio de trabajo y los conjuntos de datos de entrada. Pero en cuanto intento pasarlas como parámetros en una caja de herramientas ya no funciona.
¿Puede alguien indicarme qué estoy haciendo mal?
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 = "Toolbox"
self.alias = ""
# List of tool classes associated with this toolbox
self.tools = [Tool]
class Tool(object):
def __init__(self):
"""Define the tool (tool name is the name of the class)."""
self.label = "Test_tool"
self.description = ""
self.canRunInBackground = False
def getParameterInfo(self):
"""Define parameter definitions"""
param0 = arcpy.Parameter(
displayName="Input workspace",
name="workspace",
datatype="DEWorkspace",
parameterType="Required",
direction="Input")
param1 = arcpy.Parameter(
displayName="Input classified raster",
name="input_raster",
datatype="GPRasterLayer",
parameterType="Required",
direction="Input")
param2 = arcpy.Parameter(
displayName="Input features",
name="input_features",
datatype="GPFeatureLayer",
parameterType="Required",
direction="Input")
params = [param0, param1, param2]
return params
def execute(self, parameters, messages):
"""The source code of the tool."""
# Define some paths/variables
outWorkspace = arcpy.GetParameterAsText(0)
arcpy.env.workspace = outWorkspace
input_raster = arcpy.GetParameterAsText(1)
input_features = arcpy.GetParameterAsText(2)
output_features = outWorkspace + "\\projected.shp"
out_coordinate_system = arcpy.Describe(input_raster).spatialReference
proj_grid = arcpy.Project_management(input_features, output_features, out_coordinate_system)
return
Cuando ejecuto la herramienta da el siguiente error:
Traceback (most recent call last):
File "<string>", line 75, in execute
File "c:\program files\arcgis\pro\Resources\arcpy\arcpy\__init__.py", line 1245, in Describe
return gp.describe(value, data_type)
File "c:\program files\arcgis\pro\Resources\arcpy\arcpy\geoprocessing\_base.py", line 370, in describe
self._gp.Describe(*gp_fixargs(args, True)))
OSError: "" does not exist
Failed to execute (Tool).
me parece que las variables de entrada de los parámetros no se están pasando correctamente.
0 votos
Prueba con arcpy.GetParameter() en lugar de arcpy.GetParameterAsText()
1 votos
Arcpy.GetParameter() no funcionó. Lo que sí funcionó fue: parameters[].valueAsText Gracias por la ayuda tho.