5 votos

Modelo Generador - nombre único segmento de la creación

Es posible para nosotros dar a cada salida de un proceso con un nombre único segmento (en línea nombre). Así, por ejemplo, tengo un proceso que se disuelve, a continuación, elimina y búferes de un solo archivo de entrada. Necesito guardar el itermediate pasos en un gdb.

Así tenemos [TownNameX_slope]--Dissolve[\townDissolves.gdb\TownNameX_dissolve]--eliminate[townEliminates.gdb\TownNameX_eliminate] etc. luego TownNameY etc.

Así, en un proceso por lotes que tengo que introducir la TownNameX para cada tipo de salida. Sé que en los iteradores puede utilizar %n , pero esto es solo para la salida de una herramienta. Podemos extender a todos la salida donde

%n=townnamex y, a continuación, para disolver el resultado es %n_Dissolve etc

Supongo que la otra opción es ejecutar el programa en python en un ciclo "for", pero yo prefiero quedarme en el modelo del generador como la presentación de informes es más fácil.

Esto es similar a la pregunta en Model Builder de ArcGIS 10 En la línea de la sustitución de variables de entrada de la ruta de datos

Gracias

6voto

Jon M Puntos 206

Creo que Analizar Camino (un Modelo Generador-única herramienta) es lo que usted está buscando, utilizando el NOMBRE de la opción. Se establece como una condición previa para el resto de la Modelo, y lo utilizan para agarrar el nombre de la ciudad del nombre de archivo del archivo de entrada. Usted puede utilizar el valor de salida nombre de una variable de la línea de las otras herramientas a la hora de nombrar las clases de entidad. Por ejemplo, si se llama al Analizar la Ruta de salida Output, su disueltos clase de entidad puede ser creado como townDissolves.gdb\%Output%_dissolve.

El único problema aquí es que Analizar Camino sólo puede devolver un nombre de clase (por ejemplo, la anterior clase de entidad que se llama "TownNameX_slope_dissolve" más que de "TownNameX_dissolve"), para hacer esto usted tendrá que escribir su propio corto de secuencia de comandos de Python (y agregarlo a una caja de herramientas, por lo que la puedes usar en tu modelo) que recibe el nombre de hacer algo como esto, después de ser aprobada la clase de entidad como un parámetro:

import arcpy, os
def GetName(input):
    Name = os.path.basename(input).strip("_slope")
    return Name
fc = arcpy.GetParameter(0)
arcpy.SetParameterAsText(1, GetName(fc))

(Yo no he probado esto, así que no estoy seguro de que funciona como-es.)

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