Я сейчас играю с ModelBuilder. Я добавил фотографию модели, которая у меня есть на данный момент.
Эта модель в настоящее время повторяет 6 шейп-файлов, поэтому каждое из «выходных значений» содержит 6 цифр в списке. Я не могу найти способ извлечь значения из этих списков в таблицу / текстовый файл или аналогичный.
Есть ли способ сделать это?
Вот что показано, когда я открываю «выходные значения» после запуска модели:
Я просто хочу как-то взять эти 6 цифр ...
Ответы:
Вы можете сделать это, используя инструмент Calculate Value (Data Management) и немного магии Python. Смотрите также этот связанный вопрос: Добавить произвольный код в компоновщик моделей Arcgis?
Многозначный переменная просто разделенных точкой с запятой строка значений, так что
multivaluesToCsv
функция ниже делает это разделить многозначными переменные в списки и перенести их в строки , которые затем записываются в виде CSV (значения , разделенные запятыми) текстовый файл.Итераторы модели запускают ВСЕ процессы в модели один раз за итерацию - это нежелательно для нашего инструмента Calculate Value, который мы просто хотим запустить один раз в конце. Способ, которым вы достигнете этого, - создать другую внешнюю модель, чтобы обернуть оригинальную внутреннюю модель. Это обсуждается в разделе справки « Интеграция модели в модель» .
Итак, вот что вам нужно сделать, чтобы это заработало:
Внутренняя модель - перебирает классы объектов, обрабатывает их, собирает значения:
Name
значений переменной, чтобы мы могли сопоставить значения статистики расстояний с соответствующими именами классов объектов.Внешняя модель - запускает внутреннюю модель, запускает инструмент Calculate Value только один раз, когда внутренняя модель завершает:
Folder
чтобы вы могли указать, где создать выходной файл CSV.String
чтобы вы могли указать имя выходного файла CSV.Вставьте следующее в соответствующие поля инструмента Рассчитать стоимость:
Выражение :
r
before"%Output CSV File Location%"
является значительным: это указывает на то, что это необработанная строка ; Поскольку пути файловой системы Windows обычно содержат обратную косую черту ( escape-символ в Python), мы должны использовать это, чтобы предотвратить неправильное истолкование Python обратной косой черты и последующих символов как последовательности специальных символов.Блок кода:
(Необязательно) Предоставьте входные и выходные переменные в качестве параметров модели, если вы хотите иметь возможность запускать их из диалогового окна инструмента модели или связывать их вместе с другими моделями / сценариями. Единственным выходом внешней модели является файл CSV.
Я проверил это с ModelBuilder и получил его работать (см. Скриншоты).
Внутренняя модель :
Наружная модель:
Внутренняя модель запускает все свои процессы один раз для каждого класса пространственных объектов, а затем инструмент «Расчет значения» запускается один раз в конце, чтобы вывести файл CSV один раз и только один раз.
источник
Вывод, который описывает ваша модель - это просто значение, обновленное в таблице атрибутов, не так ли? Не можете ли вы просто открыть файл .dbf, связанный с обновленным шейп-файлом?
В противном случае Table Select (Инструменты анализа> Извлечь) должен работать с запросом SQL.
источник