LAG. LiDAR на Linux
Linux. Быть или не быть?
Вопрос на который вы можете ответить только сами себе и никак иначе. Правильного ответа нет, как нет и всяких там волшебных таблеток и тому подобной утопии.
Для меня Linux – это однозначный выбор для серверов и, может быть, домашних компьютеров, от которых максимум что и нужно – это просмотр видео, серфинг в сети и прослушивание музыки. В работе же, в большинстве случаев, применимость Linux определяется лишь тем на чем сидит вся отрасль и если весь отраслевой софт разрабатывается только под Windows, то ни о каком Linux (ну или ни о каком серьезном применении Linux) и речи быть не может.
Несмотря на то, что в моей работе Linux вообще не применим я все-равно решил показать как можно работать с данными лазерного сканирования в данной среде. Для примера я буду использовать ОС Ubuntu 16.10 и программу LAG, которая достаточно проста в установке и не требует каких-то сторонних программ (типа QGIS, GRASS и т.п.).
LiDAR Analysis GUI (LAG)
Описание и установка
Программа бесплатная, свободная и написана, как и многие другие программы под Linux, просто на свободных началах и для решения собственных задач. Исходники программы располагаются на GIT https://github.com/arsf/lag, где так же присутствует небольшая инструкция по ее установке.
Сами авторы программы (Plymouth Marine Laboratory) дали мне чуть более подробное описание установки (в какой последовательности ставить):
git clone https://github.com/arsf/lag.git export PKG_CONFIG_PATH=/usr/local/lib64/pkgconfig:/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH cd lag/lidarquadtree libtoolize && autoheader && aclocal && automake --add-missing && autoconf ./configure make sudo make install cd .. libtoolize && autoheader && aclocal && automake --add-missing && autoconf ./configure make sudo make install
При установке стоит не забывать про раздел “INSTALLATION” в описании программы, где указаны отдельные зависимости, которые обязательны для LAG.
Дополнительно могу сказать, что сам я столкнулся с рядом проблем, которые возникают при установке, но почти все они решаются установкой отдельных пакетов, для чего достаточно удобно использовать тот же Synaptic. Одна же проблема вполне может стать камнем преткновения: в описании к установке указано, что для установки в Ubuntu необходимо выполнить патчинг файла Makefile:
patch Makefile < ubuntu-Makefile.patch
Однако, у меня данная команда просто выдавала ошибку и пришлось данный патчинг проводить руками: банально в файле Makefile ищем строчку “$(lag_LINK) $(lag_OBJECTS) $(lag_LDADD) $(LIBS)” из файла ubuntu-Makefile.patch и заменяем ее на 3 строчки:
$(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(lag_LDFLAGS) \ $(LDFLAGS) -o $@ $(lag_OBJECTS) $(lag_LDADD) $(LIBS) \ $(lag_LDADD) $(lag_LDFLAGS)
После всех этих манипуляций успешно выполняется и make, и make install. Запуск может также сопровождаться ошибками (ох уж этот Linux): в моем случае программа ругалась на то, что она не может никак найти файл liblaslib.so.20160606, который точно был в системе. Для исправления этой ошибки я выполнил следующую команду:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib64
В общем может у вас будут другие проблемы при установке, а может их не будет вовсе – тут наверное как в казино и Почте России, т.е. “на удачу”.
Запуск и тесты
Ну вот мы и добрались до запуска и тестирования программы. Вбиваем в терминале три заветные буквы, жмем Enter и видим два окна, которыми встречает нас эта программа.
Подобное конечно довольно странно видеть, но почему бы и нет – два так два.
После первого взгляда становится понятным, что основным окном у нас является LAG Overview, а вот LAG Profile окно вспомогательное. Ну что же – загрузим тестовый las-файл.
Как видим даже окно открытия файла обладает рядом настроек, хотя что либо менять мы не будем – оставим всё это для личных экспериментов. Добавляем выбранный файл и радуемся результату – файл загружен. Для более удобного восприятия я изменил раскраску точек на Height.
Теперь можем построить профиль, нажав соответствующую кнопку, а потом посмотреть результат этой операции в окне LAG Profile. Ну а дальше можем пробовать проводить классификацию внутри заданного контура (Fence), менять режим визуализации точек, добавлять различные элементы окон (шкалы высот, легенду и т.п.), ну и конечно можно почитать Help для программы – уж точно лишним не будет.
Для удобства использования программы управление многими функциями продублировано на клавиатуре, что как минимум избавляет от постоянных перескакиваний с основного окна на вспомогательное просто для того, чтобы отобразить в нем результаты построения профиля.
Заключение
Конечно назвать LAG хоть каким-то аналогом связки Microstation+TerraScan из Windows нельзя, но ведь и смысл этой программы не в этом. Ее возможностей вполне достаточно для просмотра, анализа и более ли менее оперативного изменения (классификации) данных лазерного сканирования.
И все же наличие подобной программы говорит о том, что сам Linux для решения подобных задач вполне применим и даже применяем, и вопрос лишь в том, что на сегодняшний день никакой коммерческой выгоды здесь найти нереально, а значит серьезными разработками никто тут заниматься и не будет – решили свою частную задачу и отлично!