Terrasolid TerraScan. Часть пятая. Макросы.
Бесконечно можно смотреть на три вещи: горящий огонь, бегущую воду и на то, как работает другой человек.
Эта цитата отлично иллюстрирует макросы в любых программах, в том числе и в нашем любимом TerraScan.
Итак, что такое макрос? Макрос – это небольшая программа, написанная пользователем и позволяющая в автоматическом режиме выполнять последовательность действий, заложенных пользователем. Фактически макрос избавляет пользователя от рутинного выполнения одних и тех же действий над одним или несколькими наборами данных.
Фактически мы можем говорить о том, что не умея писать макросы мы никогда не сможем обрабатывать данные лазерного сканирования за приемлемое время. Конечно, все то же самое мы всегда сможем сделать и в ручном режиме, однако это займет у нас уйму времени, а главное, с определенной вероятностью, вызовет множественные ошибки, связанные с необходимостью выполнять специфические условия, необходимые для получения качественного результата работы тех или иных алгоритмов обработки данных.
Основной интерфейс
Каких-либо сложных опций в интерфейсе нет и всё достаточно интуитивно:
- Меню File. Позволяет нам создать новый макрос (пункт New), открыть уже существующий (пункт Open…),
а также провести сохранение макроса или его перезапись в случае изменений (Save и Save as… соответственно); - Меню Run. Дает возможность запустить созданных макрос и имеет два варианта запуска: обработать уже загруженные точки (On loaded points) или же обработать указанные файлы (On selected files…);
- Description. Простое описание макроса, чтобы не забыть, что именно он должен делать;
- Author. Позволяет указать автора макроса. Особой ценности не вижу, но в больших компаниях видимо может быть актуальным;
- Process lines separately. Позволяет обрабатывать точки не в виде одного массива, а с разделением на включения. Является неотъемлемой опцией при подготовке данных для коррекции с помощью TerraMatch;
- Process scanners separately. Аналогично предыдущему пункту позволяет обрабатывать точки раздельно, а именно по признаку сканера. Опять же полезна в случае подготовки данных для коррекции;
- Step. Позволяет пройти отдельно каждый шаг макроса в ручном режиме: жмем кнопку и выполняется выбранный этап. Бывает крайне полезным для подробного изучения только что написанного сложного макроса;
- Add. Самая популярная кнопка. Добавляет новую операцию в конец макроса;
- Insert. Аналогична кнопке Add, но добавляет новую операцию перед выделенной;
- Edit. Позволяет изменить выделенную операцию макроса;
- Delete. Удаляет выделенную операцию макроса;
- Move up. Дает возможность поднять выделенную операцию на один шаг;
- Move down. Дает возможность опустить выделенную операцию на один шаг.
Интерфейс On selected files
Зачастую макрос запускается сразу по целому набору файлов. Сделать это можно двумя способами:
- Использовать опцию On selected files из меню Run основного окна макроса;
- Использовать возможность запуска макроса (Run macro) из проекта. При прочих равных этот способ предпочтительней, т.к. позволяет не только избежать ошибки в выборе файлов, но также дает возможность автоматически догружать точки из соседних блоков, что крайне необходимо, например, для классификации поверхности земли;
Давайте коротенько рассмотрим возможности, которые дает нам запуск по файлам:
- Add…. Позволяет добавлять файлы через стандартное окно их выбора;
- Remove.. Дает возможность удалить ранее добавленные файлы;
- Fit view.. Позволяет отобразить загруженные точки в выбранном окне (на мой взгляд практически бесполезная вещь);
- Input format. Позволяет принудительно указать формат файлов для обработки. По умолчанию установлен режим автоматического определения (Automatic recognition) и менять его можно только в том случае, если вы действительно понимаете зачем вам это нужно;
- WGS84. Достаточно полезная опция, которая позволяет одновременно с обработкой провести изменение проекции;
- Transform. Тоже крайне полезная опция, которая позволяет применить любую трансформацию к обрабатываемым данным;
- Save as. Регулирует сохранения результата обработки. По умолчанию установлен режим, при котором результаты работы не сохраняются (Do not save all points). Позволяет выбрать для записи результата любой формат, который поддерживает TerraScan, а также активирует дополнительные опции, которые позволяют выбрать папку для сохранения (Directory), имя файла и его расширение (File name и Extension соответственно).
Что касается сохранения результата: режим Do not save all points установлен по умолчанию не просто так – зачастую гораздо удобнее использовать сохранение результата в виде отдельного шага самого макроса, т.к. он имеет гораздо более гибкие настройки.
Шаги
В макросе может быть использована практически любая функция самого TerraScan, которая отвечает за ту или иную операцию над лазерными данными. На самом деле проще перечислить то, что нельзя добавить в макрос в качестве шага, чем указать все его возможности.
TerraSlave
Думаю, можно немного раскрыть и такую тему как распределенное вычисление. Для подобных расчетов компания Terrasolid предоставляет небольшой вспомогательный модуль под названием TerraSlave.
Принцип работы этой небольшой программы показан на следующей картинке:
Использование TerraSlave может быть крайне полезным в том случае, если речь идет об обработке очень больших массивов данных. Конечно, стоит учитывать, что использовать его нужно только в том случае, если вы являетесь счастливым обладателем двух и более рабочих станций.
Проблема версий
TerraScan постоянно развивается и существует зависимость макросов от той версии TerraScan, в которой они были созданы. Конечно, существует обратная совместимость и лично я не встречал случаев, когда макрос, созданный в старой версии программы, не работал в новой. А вот обратные ситуации вполне часты, особенно в случаях, когда приходится передавать свои наработки коллегам. Но к счастью TerraScan сразу после загрузки такого макроса закрасит красным цветом те его шаги, которые не могут быть выполнены и требуют коррекции. Зачастую коррекция проводится легко и быстро и никаких проблем не вызывает.
Заключение
Как я и писал в самом начале – макросы крайне важны для обработки данных лазерного сканирования. Умение их составлять и применять позволяет сильно сократить время на обработку, а также повысить качество этой самой обработки.
Еще одним бонусом можно назвать тот факт, что необходимость (именно необходимость) писать макросы побуждает пользователей глубже изучать принципы работы и обширные возможности TerraScan, что в конечном итоге позволяет вырабатывать наиболее эффективные подходы к качественной обработке данных.