9 votos

Pasar una variable desde un script en ModelBuilder

Tengo un modelo que pasa una variable a un script de python. La secuencia de comandos utiliza esa variable para algunos directorios de consulta y devuelve una lista de rutas. Lo que quiero saber es: ¿Cómo puedo entonces usar cada uno de esos caminos como parámetro en una operación subsecuente? ¿Es el puente entre python y ModelBuilder una calle de sentido único?

8voto

ESV Puntos 4591

Supongo que has añadido la secuencia de comandos de Python para el modelo de la primera por la adición de la secuencia de comandos de Python para la caja de herramientas, la configuración de la secuencia de comandos de entrada a través de la pestaña Parámetros.

En la ficha Parámetros puede agregar nuevos parámetros para la salida de secuencia de comandos. Para hacer esto solo tienes que cambiar:

  • el Direction en el Parámetro de Propiedades a Output;
  • el Data Type dependiendo de lo que el Python de salida será (probablemente una cadena o un entero, pero tal vez una clase de entidad);
  • y, a continuación, el Type en el Parámetro de Propiedades a Derived (aunque para ser justos, Required y Optional funcionará dependiendo del tipo de datos, pero voy a describir a continuación)

Entonces, simplemente puede usar arcpy.SetParameter a la salida de su secuencia de comandos de Python vuelta al modelo.

Un par de notas:

  • Si usted tiene el parámetro de salida de conjunto a Required o Optional puede de entrada de la fuente a la secuencia de comandos al proporcionar valores por defecto, que se puede obtener con arcpy.GetParameter o de sys.argv
  • El número del parámetro a configurar como salida es dependiente en el número total de parámetros para su secuencia de comandos de Python (es decir, si usted ya tiene dos parámetros de entrada antes de que su parámetro de salida, entonces usted necesita utilizar arcpy.SetParameter(2, value))

También echa un vistazo a la arcpy Configuración de la herramienta de secuencia de comandos parámetros de ayuda.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X