Terrasolid TerraScan. Часть седьмая. Классы точек (файл PTC).
Сегодня мы проведем небольшой обзор не классификации точек, а самого понятия классов и как с ними работает TerraScan.
Для начала давайте определим основные параметры класса:
- Класс является обязательным параметром точки;
- Класс точки может иметь значение от 0 до 255.
Классов много не бывает!
Казалось бы 256 классов – это достаточно много и есть где развернуться. Однако, значение от 0 до 255 является не совсем обязательным. Дело в том, что основным форматом хранения лазерных данных все-таки является LAS (разных версий и вариантов записи) и его спецификация говорит нам о том, что класс точки может использоваться и несколько иначе. Для понимания почему так происходит можем обратиться одновременно к спецификации LAS и к документации TerraScan (раздел Point cloud file formats).
Что мы видим в документации к TerraScan:
Документация говорит нам о том, что класс точки (Code) занимает 1 байт и имеет значение от 0 до 255. Все логично и однозначно.
А теперь обратимся к документации формата LAS (картинки кликабельны):
Т.е. с одной стороны в LAS для класса точно также зарезервирован 1 байт, однако в одной из версий записи точки для самого понятия класса используются только биты 0 – 4, которые позволяют нам оперировать классами с номерами от 0 до 31. При этом стоит обратить внимание на то, что это лишь один вариант записи точек, а есть и другие варианты (более информативные), в которых стандарт ASPRS позволяет использовать тот самый байт в полном объеме, а всякие дополнительные параметры точки (флаги) хранятся в отдельном поле.
Где такое может проявиться? Давайте просто представим, что мы ведем обработку данных в родном для нас формате TerraScan BIN и, не задумываясь о таких заморочках с классами, начинаем использовать класс с номером 95. Результат работы нас просят предоставить в формате LAS 1.2, в который мы все успешно переводим по завершению работ. И вот тут возникает вопрос: а в каком софте будут использоваться результаты нашей работы?
Как мы видим результат нашей работы в Microstation:
На этой картинке нас интересуют розовые точки, которые относятся к строениям и имеют класс 95.
Как мы увидим эти же данные в GlobalMapper при стандартной загрузке данных:
И что же мы видим при такой загрузке? А видим мы то, что точки нашего класса 95 вдруг превратились в класс 31 с флагом “Model key point”. Как-то такой результат не очень соответствует нашим ожиданиям.
А теперь загружаем эти же данные в GlobalMapper, но активируем при загрузке параметр “LAS/LAZ File with Point Format 1-5 Has Classes Over 31”. Этот параметр явно нам говорит: мы хотим загрузить точки формата 1 – 5, который позволяет использовать номера классов превышающих 31.
А вот теперь мы видим правильную классификацию.
Конечно столкнуться с подобным шансов крайне мало, списки классов для проведения работ оговариваются и фиксируются еще до начала самих работ, но тем не менее знать и помнить такую особенность было бы неплохо.
Работа с классами в TerraScan
Для работы с классами в TerraScan присутствует специальный инструмент Define Classes.
Начальный набор классов доступен нам сразу же после установки TerraScan (файл tscan.ptc). Для работы мы можем использовать его (добавлять новые классы, редактировать существующие или удалять ненужные), либо же можем создать свой собственный список классов (File –> New). Зачастую файл PTC соответствует какому-либо конкретному рабочему проекту или этапу обработки данных.
Интерфейс добавления нового класса или редактирования существующего представлен ниже (может отличаться в разных версиях TerraScan):
Параметр | Что делает |
---|---|
Number | Уникальный номер класса. |
Code | Код класса. Строка, содержащая любые символы. |
Description | Описание класса. Может быть выведено в главное окно TerraScan. |
Synthetic | Если активно, то устанавливает флаг “Synthetic” в LAS 1.4. |
Keypoint | Если активно, то устанавливает флаг “Keypoint” в LAS 1.4. |
Withheld | Если активно, то устанавливает флаг “Withheld” в LAS 1.4. |
Overlap | Если активно, то устанавливает флаг “Overlap” в LAS 1.4. |
Draw as | Имеет три возможных значения:
|
Color | Цвет класса. Используется текущая активная палитра Microstation. |
Weight | Размер точки. |
Level | Слой, используемый для отображения точек класса в DGN-файле. |
Element | Определяет как будут отображаться точки в DGN-файле. Имеет 4 варианта, которые в свою очередь предоставляют отдельные настройки:
Вывод точек в DGN-файл доступен в меню Output –> Write to design file… |
Font | Шрифт, который используется для отображения точек в DGN-файле. Доступен только в случае если в качестве параметра Element установлено значение Character или Elevation text. |
Size | Размер текста, который используется для отображения точек в DGN-файле. Доступен только в случае если в качестве параметра Element установлено значение Character или Elevation text. |
Justify | Выравнивание текста относительно исходной точки. Доступен только в случае если в качестве параметра Element установлено значение Elevation text. |
Dx | Отступ текста по оси X относительно исходной точки. Доступен только в случае если в качестве параметра Element установлено значение Elevation text. |
Dy | Отступ текста по оси Y относительно исходной точки. Доступен только в случае если в качестве параметра Element установлено значение Elevation text. |
Diameter | Диаметр окружности. Доступен только в случае если в качестве параметра Element установлено значение Circle. |
Style | Стиль линии. Доступен только в случае если в качестве параметра Element установлено значение Circle. |
Зачастую для нового класса задаются только Number, Description и Color, а остальные значения не изменяются.
Формат файла PTC
Теперь рассмотрим формат файла, в котором хранятся созданные нами классы.
1 Default 0 * Zero length line 1 0 1 2 GRD Ground 1 * Elevation text 2 0.1000,0.2000m 1.000 LC 1 WORKING 6 2 3 LVG Low vegetation 2 * Circle 3 0.100 178 1 7 4 MVG Medium vegetation 0 * Character 4 88 1 ENGINEERING 9.000 66 1
Как мы видим для каждого класса используется две строки:
- Последовательно записываются значения: Number, Code, Description, Draw as;
- Последовательно записываются значения: Element, Level, Color, Weight. Соответственно в зависимости от выбранного типа элемента могут также присутствовать: отступы, размер текста, тип выравнивания, шрифт. При этом эти дополнительные значения всегда будут записываться между Level и Color.
Отдельно стоит учитывать, что при использовании параметров Synthetic, Keypoint, Withheld или Overlap их значения в файле будут записываться в виде номера класса, например номер S1 будет расшифровываться так: класс имеет номер 1 и флаг Synthetic. Можно использовать хоть все флаги сразу и тогда номер класса может получиться таким: OWKS5. Пример можно посмотреть ниже:
S1 Default 0 * Zero length line 1 0 1 K2 GRD Ground 1 * Elevation text 2 0.1000,0.2000m 1.000 LC 1 WORKING 6 2 W3 LVG Low vegetation 2 * Circle 3 0.100 178 1 7 O4 MVG Medium vegetation 0 * Character 4 88 1 ENGINEERING 9.000 66 1 OWKS5 High vegetation 0 * Zero length line 5 2 1
Как видно формат не очень сложный, однако для работы с классами лучше использовать стандартный интерфейс и не морочить себе голову с текстовыми редакторами. Использование флагов для LAS я в работе не встречал в принципе, поэтому на их счет вообще переживать не стоит.
Заключение
Теперь мы имеем общее представление о том, что такое класс точки, как создавать классы в TerraScan и как их можно использовать. Данная информация в общем-то зачастую избыточна и заниматься классификацией точек можно и без подобных знаний, однако для более гибкого подхода к работе и использования нестандартных возможностей, типа вывода точек в DGN-файл не только в виде точек, подобные знания могут оказаться полезными.