3 votos

¿Modelo padre que itera sobre modelos anidados que iteran sobre Buffer?

Tengo estos dos modelos anidados (submodelos) que están almacenando cada característica en una clase de característica y creando un shapefile para cada resultado (su geoprocesamiento es idéntico). Ambos funcionan bien cuando se ejecutan de forma independiente.

Model running Iterate Feature Selection

Model running Iterate Feature Selection

Estoy tratando de tomar la lista de shapefiles creados por ambos modelos anidados y pasarlo de nuevo al modelo padre (abajo). Entonces el modelo padre necesita iterar sobre las listas y realizar la fusión (y más). La fusión debe basarse en valores coincidentes de un atributo; hay una relación 1:1 en las listas. Así, un elemento del modelo anidado A se fusiona con un elemento del modelo anidado B, etc.

Intenté Recopilar valores en la salida de Copiar características y (en el modelo principal) la Fusión no pudo ver los resultados de Recopilar valores como entradas válidas.

¿Cómo puedo devolver las listas al padre para que pueda iterar sobre ellas?

Parent model


Basado en el comentario de @Hornbydd, he cambiado los modelos como se muestra a continuación - los dos modelos "sub-sub", es decir, la capa más interna de anidación; el modelo sub, la siguiente capa, y luego el padre. Si la primera pregunta no era clara, la intención es sólo para hacer la fusión en dos de los archivos de salida, es decir, Copiar resultados de características, a la vez. Los modelos tal y como se fusionan todos los resultados de las características copiadas en una clase de características. Quiero que la fusión tome "one_1k_ft" y "one_1_mi", luego "two_1k_ft" y "two_1_mi", etc., etc. En ambas tablas de atributos existe un campo común, por lo que lo ideal sería poder realizar la fusión basándome en valores coincidentes.

Subsubmodel_A

Subsubmodel_B

Submodel_A

Parent_model

2voto

John Kramlich Puntos 286

La herramienta Fusionar sólo puede tomar una lista como entrada. Para construir esa lista única es necesario hacer lo siguiente:

  • Añada una herramienta de recopilación de valores a la salida de cada herramienta Copiar características en cada uno de sus submodelos y exponerlos como los Parámetros no el salida de sus funciones de copia.
  • Asegúrate de que ambos modelos escriben en un único espacio de trabajo.
  • Añada estos submodelos a un modelo y conviértalos en precondiciones para un iterador FeatureClass.
  • La salida del iterador debe alimentar una herramienta de recogida de valores expuesta como parámetro
  • Este modelo se convertirá en un submodelo de su modelo maestro final y, como ha expuesto la herramienta de recopilación de valores como un parámetro, podrá conectarla a una herramienta de fusión.

¡Así que tienes tus 2 submodelos en un submodelo en un modelo maestro!

0voto

Joshua H Puntos 11

Lo solucioné haciendo un script en arcpy; estas páginas fueron fundamentales:

¿Cuál es el equivalente en Python de Iterate Feature Selection de ModelBuilder?

http://desktop.arcgis.com/en/arcmap/10.3/tools/data-management-toolbox/make-feature-layer.htm

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