Обработка данных по сценарию на языке Lua |
Для простоты и удобства обработки значительных объёмов данных в программах на C++ используется скриптовый язык программирования Lua. В Lua имеются средства для выполнения математических функций, обработки файлов, таблиц метаданных.
Диалог для интерактивного ввода и выполнения скриптов имеет вид:
Для расчётов семантических характеристик принимаются во внимание выделенные на картах объекты или объекты, для которых установлен фильтр поиска по кнопке диалога Фильтр.
Окно сценария служит для ввода различных вычислительных операций, в которых используются встроенные функции, перечисленные в поле диалога Подсказки для написания сценария. По двойному клику левой кнопкой мыши на строке подсказок выбранная функция копируется в поле ввода сценария.
В одном сценарии допустимо присутствие произвольного числа действий для расчётов семантических характеристик.
Например, умножить площадь объекта на длину из семантики с кодом 1 и запомнить полученное значение в семантике с кодом 7 (коды зависят от классификатора карты):
value = getSquare() * getCodeSem(2) setCodeSem(7, value)
Если параметром встроенной функции в скрипте является символьное значение, его надо заключить в двойные или одинарные кавычки. В диалоге можно открывать и создавать произвольное число сценариев. Сценарии размещаются в динамически подгружаемых закладках. Имя файла сценария устанавливается программно (временное имя «temp») или пользователем (кнопка Сохранить). Чтобы удалить закладку надо нажать левой кнопки мыши на крестик в правом углу заголовка закладки.
Для удобства выбора кодов семантик в правой части окна диалога указан перечень семантик классификатора карты. Список семантик открыт только для просмотра. Сценарий по окончании процесса выполнения автоматически сохраняется в папке LOG для открытой карты. Ошибки, возникшие в ходе выполнения расчётов по сценарию, помещаются в протокол работы программы и могут быть просмотрены по активизации кнопки Протокол ошибок.
|