Actualmente estoy jugando con ModelBuilder. He agregado una foto del modelo que tengo en este momento.
Este modelo actualmente está iterando 6 archivos de forma, por lo que cada uno de los 'valores de salida' contiene 6 figuras en una lista. No puedo encontrar una manera de extraer los valores de estas listas en una tabla / archivo de texto o similar.
¿Hay alguna forma de hacer esto?
Esto es lo que se muestra cuando abro 'valores de salida' después de ejecutar el modelo:
Solo quiero tomar esos 6 números de alguna manera ...
Respuestas:
Puede hacerlo utilizando la herramienta Calcular valor (gestión de datos) y algo de magia de Python. Consulte también esta pregunta relacionada: ¿ Agregar código arbitrario al generador de modelos Arcgis?
Una variable de valores múltiples es solo una cadena de valores delimitada por punto y coma, por lo que la
multivaluesToCsv
función siguiente es dividir las variables de valores múltiples en listas y transponerlas en filas que luego se escriben en un archivo de texto CSV (valores separados por comas) .Los iteradores de modelos ejecutan TODOS los procesos en el modelo una vez por iteración; esto no es deseable para nuestra herramienta Calcular valor, que solo queremos ejecutar una vez al final. La forma de lograr esto es creando otro modelo externo para envolver el modelo interno original. Esto se discute en el tema de ayuda Integración de un modelo dentro de un modelo .
Esto es lo que debe hacer para que esto funcione:
Modelo interno : Itera las clases de entidad, las procesa y recopila valores:
Name
valores de la variable y así poder asignar los valores de la estadística de distancia a sus nombres de clase de entidad correspondientes.Modelo externo : ejecuta el modelo interno, ejecuta la herramienta Calcular valor solo una vez cuando se completa el modelo interno:
Folder
que le permita especificar dónde crear el archivo CSV de salida.String
que le permita especificar el nombre del archivo CSV de salida.Pegue lo siguiente en los cuadros apropiados de la herramienta Calcular valor:
Expresión :
r
anterior"%Output CSV File Location%"
es significativo: esto indica que se trata de una cadena sin formato ; Debido a que las rutas del sistema de archivos de Windows generalmente contienen barras invertidas (un carácter de escape en Python), tenemos que usar esto para evitar que Python malinterprete las barras invertidas y los caracteres posteriores como secuencias de caracteres especiales.Bloque de código:
(Opcional) Exponga las variables de entrada y salida como parámetros del modelo si desea poder ejecutarlas desde el cuadro de diálogo de herramientas del modelo o encadenarlas junto con otros modelos / scripts. El único resultado del modelo externo es el archivo CSV.
He probado esto con ModelBuilder y lo he puesto a funcionar (ver capturas de pantalla).
Modelo interno :
Modelo exterior:
El modelo interno ejecuta todos sus procesos una vez por clase de entidad, y luego la herramienta Calcular valor se ejecuta una vez al final para generar el archivo CSV una vez y solo una vez.
fuente
El resultado que describe su modelo es simplemente un valor actualizado en la tabla de atributos, ¿no es así? ¿No puede simplemente abrir el archivo .dbf asociado con el archivo de forma actualizado?
De lo contrario, la selección de tabla (Herramientas de análisis> Extracto) debería funcionar con una consulta SQL.
fuente