Passare la variabile dallo script ArcPy a ModelBuilder?


9

Ho un modello che passa una variabile a uno script Python. Lo script utilizza quella variabile per interrogare alcune directory e restituire un elenco di percorsi. Quello che voglio sapere è:

  • Come posso quindi utilizzare ciascuno di quei percorsi come parametro in un'operazione successiva?
  • Il ponte tra Python e ModelBuilder è una strada a senso unico?

Risposte:


8

Suppongo che tu abbia aggiunto lo script Python al modello aggiungendo prima lo script Python alla casella degli strumenti, impostando l'input dello script attraverso la scheda Parametri.

Nella scheda Parametri è possibile aggiungere nuovi parametri per l'output dello script. Per fare ciò basta cambiare:

  • il Directionin Proprietà parametro a Output;
  • la Data Typeseconda di ciò che l'uscita Python sarà (probabilmente una stringa o un numero intero, ma forse una classe di entità);
  • e quindi Typenelle Proprietà parametro a Derived(anche se per essere onesti, Requirede Optionalfunzionerà in base al tipo di dati, ma lo descriverò di seguito)

Quindi possiamo semplicemente usare arcpy.SetParameterl'output dal tuo script Python al modello.

Un paio di note:

  • Se il parametro di output è impostato su Requiredo Optionalè possibile fornire input allo script fornendo valori predefiniti, che è possibile ottenere con arcpy.GetParametero dasys.argv
  • Il numero del parametro da impostare come output dipende dal numero totale di parametri per il tuo script Python (cioè se hai già due parametri di input prima del parametro di output, allora devi usare arcpy.SetParameter(2, value))

Dai un'occhiata anche alla guida dei parametri dello strumento di script Setting arcpy .

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.