¿Establecer una ubicación de salida única para varios archivos en ModelBuilder?

8

He creado un modelo en ModelBuilder. El primer paso es que el usuario especifique la ubicación de la Geodatabase de archivos en la que se guardarán todas las salidas. Lo que quiero es que todas las salidas (de las diferentes herramientas dentro del modelo) se guarden en esa FGDB; sin embargo, podría llamarse cualquier cosa y ubicarse en cualquier lugar.

Entonces, ¿cómo hago para que la salida se guarde en la ubicación que se especifica en el primer paso?

MapMan
fuente

Respuestas:

8

Esta página en el sitio de Esri debe brindarle toda la información que necesita para hacer esto dentro de ModelBuilder. Esencialmente, crea una variable para la carpeta / geodatabase de salida, que puede ser generada por el usuario o codificada, y luego la llama en las otras herramientas por su nombre, rodeada de %símbolos.

nmpeterson
fuente
2

Primero cree un script y defina la clase de entidad de entrada y los parámetros de ruta del espacio de trabajo de salida. A continuación, exporte el modelo a Python Script o VBS. Luego, puede editar el código para usar la variable de espacio de trabajo de salida para todas las herramientas intermedias basadas en el espacio de trabajo de salida original que defina el usuario.

El siguiente ejemplo ilustra esto usando arcpy, sin embargo, tendrá que usar solo python o vbs ya que está usando la versión 9.3.1 y no la 10.

p.ej

    inputlayer = arcpy.GetParameterAsText(0)
    outputpath = arcpy.GetParameterAsText(1)

    # Process: Buffer
    arcpy.Buffer_analysis(inputlayer, outputpath + "\\buffer.shp", "50 Feet", "FULL", "ROUND", "NONE", "")

    # Process: Select
    arcpy.Select_analysis(outputpath + "\\buffer.shp", outputpath + "\\bufferSelect.shp", "")
artwork21
fuente
Esperaba hacerlo todo dentro de ModelBuilder en lugar de exportarlo. He echado un vistazo a algunos modelos que la persona que solía trabajar aquí antes que yo, y ha configurado su FGDB en el primer paso, luego ha usado "% Temp FGDB%" para las otras salidas, pero parece que no puedo para que funcione.
MapMan
1
%Temp FGDB%funcionaría si cambiara el nombre de la burbuja de parámetros en ModelBuilder a Temp FGDB: como se llame la burbuja de parámetros es cómo se puede hacer referencia en las otras herramientas.
nmpeterson
1

Descubrí una manera simple de hacer esto en el generador de modelos. Digamos que estás iterando sobre algunos archivos para hacer un clip a todos ellos.

1) Crear un interador para clases de entidad. Haga clic derecho sobre él y cree una variable para el espacio de trabajo.

2) Cambie el nombre de la burbuja del espacio de trabajo a "Espacio de trabajo", y también haga clic derecho sobre ella y seleccione "crear parámetro". Esto le pedirá que ingrese en la carpeta que contiene los archivos cuando ejecute el modelo como herramienta.

3) agrega la herramienta de recorte. ejecute una línea desde la burbuja de salida "FeatureClass" del iterador hasta la herramienta de recorte y seleccione la función de entrada.

1) agregue la herramienta "Crear carpeta" y haga clic derecho sobre ella y cree dos variables a partir de ella, nombre y ubicación.

2) haga el nombre de la carpeta como quiera que sea. Usé "Salida"

3) Para la ubicación: en mi caso, ya tenía la carpeta donde quería que la carpeta de salida residiera. Era la carpeta principal que utilicé como entrada para el iterador. Recuerde que le cambié el nombre a "Espacio de trabajo". Ahora podemos referirnos a esa ubicación escribiendo:

%workspace%

en la burbuja de ubicación para la herramienta de crear carpeta.

4) Ahora, utiliza la herramienta de conector para dibujar una línea desde la salida de la herramienta "Crear carpeta" (llamada "Carpeta de salida" para mí) hasta la burbuja del iterador principal). Se mostrará un pequeño cuadro de diálogo, seleccione la opción "condición previa". Esto le dirá que necesita crear la carpeta antes de ejecutar esta sección.

5) Finalmente, en la salida de su herramienta de recorte, puede escribir:

%Output Folder%\%Name%_clip.shp

El% de la carpeta de salida% hace referencia a la burbuja de salida de la carpeta que creamos. el iterador crea una burbuja llamada "Nombre" para usted, por lo que lo mencionamos por% Name%. Luego agrego un sufijo para dejar en claro que es una salida de la herramienta de recorte.

¡Espero que eso ayude! Adán

Adam B
fuente
0

Puede usar la herramienta "clases de entidad en una geodatabase" en la parte superior de su generador de modelos, donde puede conectarle muchas salidas. Solo tendrá que especificar su ubicación.

Mehdi
fuente