ГИС TopoL-L лес лесоустройство

4.4.1 Масштабируемые векторные условные знаки TopoL

4.4.1.1 Масштабируемые и немасштабируемые условные знаки

ГИС TopoL содержит фиксированные наборы немасштабируемых условных знаков для точечных, линейных и полигональных объектов. Немасштабируемость их выражается в том, что на экране они изображаются всегда одинаково вне зависимости от масштаба визуализации карты и заданного относительного масштаба для условных знаков (см. раздел 1.8.4.5). При печати карты с такими условными знаками изображение линий, плотность штриховок и размеры шрифтов будут зависеть от свойств драйвера конкретного принтера, то есть при печати на разных принтерах карта будет выглядеть по-разному. Для этих знаков в TopoL используются номера (идентификаторы) в диапазоне от 0 до 999.
Знаки с номерами (идентификаторами) от 1000 являются масштабируемыми, формат их документирован, имеются пользовательские средства для их подготовки и изменения. Эти знаки выглядят так, как будто они "нарисованы", при изменении масштаба визуализации карты они также изменяются, сохраняя фиксированный относительный масштаб по сравнению с другими знаками и текстами. При печати карты условные знаки будут воспроизводиться на бумаге с точными геометрическими размерами, заданными при их подготовке. Изменение относительного масштаба условных знаков (см. раздел 1.8.4.5) приводит к пропорциональному увеличению или уменьшению всех условных знаков и надписей, в том числе при печати карты.
Если масштаб визуализации или печати карты совпадает с установленным относительным масштабом условных знаков, то параметры знаков в файлах их описаний, заданные в мм, обеспечат визуализацию или печать знаков такого же размера на экране или бумаге. Таким образом, при проектировании знаков размер их элементов задается в мм

4.4.1.2 Форматы файлов и средства редактирования наборов знаков

Форматы файлов масштабируемых условных знаков в большинстве являются текстовыми, исключением являются только файлы *.ZVF для точечных условных знаков, которые являются файлами векторных шрифтов формата BGI фирмы Borland. Ниже приводится описание этих текстовых форматов.
Для подготовки условных знаков фирмой TopoL Software поставляются специализированные программы - редакторы:
P_DEFINE.EXE - редактор точечных условных знаков ;
L_DEFINE.EXE - редактор линейных условных знаков;
A_DEFINE.EXE - редактор закрасок полигонов.
При подготовке новых знаков с помощью редакторов L_DEFINE.EXE и A_DEFINE.EXE можно создать новый знак в отдельном файле, а затем перенести его описание как текстовый фрагмент в основной файл библиотеки условных знаков.
Важный вопрос проектирования новых условных знаков - их отладка. Для линейных и площадных знаков можно поступить следующим образом:
·        Запустить ГИС и открыть карту лесничества, затем установить масштаб визуализации около 1 : 2000, чтобы условные знаки выглядели достаточно крупно.
·        Отлаживаемый файлы LINZN.TXT и SRAFY.TXT должен находиться в каталоге стартовых параметров. Для прорисовки линий и закраски полигонов нужно будет выбрать отлаживаемые условные знаки.
·        Создать новый пустой блок и в режиме прорисовки новых линий нарисовать тестовые линии с характерной для отлаживаемого вида линий степенью извилистости и дробности. Нарисовать несколько замкнутых полигонов для отлаживаемых закрасок. Для лучшей ориентировки с взаимными масштабами символов можно рисовать поверх уже открытой повыдельной карты.
·        Если отлаживаемые файлы LINZN.TXT и SRAFY.TXT  открыты в текстовом редакторе, то рекомендуется использовать такой редактор, который не блокирует доступ на чтение файла другими программами. Если используется редактор условных знаков, то надо открыть эти файлы в соответствующем редакторе. После внесения изменений в отлаживаемые условные знаки нужно сохранить в своих файлах.
·        Чтобы заставить TopoL повторно считать файл LINZN.TXT , следует в режиме редактирования повторно выбрать курсором одну из тестовых линий, затем нажать кнопку OK в форме задания параметров линии, после чего перерисовать окно (F5) или изменить масштаб визуализации. Файл SRAFY.TXT обычно считывается при каждой прорисовке окна карты, обновляя изображение измененных знаков.

4.4.1.3 Условные знаки точечных объектов

Условные знаки этого типа создаются в редакторе P_DEFINE.EXE. Его интерфейс имеет следующий вид:

В левой части размещена таблица для 256 векторных условных знаков, справа - поле редактирования и инструменты редактирования, снабженные всплывающими подсказками. Для создания точных геометрически правильных знаков рекомендуется ориентироваться на значения координат, которые высвечиваются в нижней части правой панели в режиме редактирования.
Записываются точечные условные знаки обычно в файлы *.ZVF. Таких файлов может быть несколько. Эти файлы задают геометрические образы условных знаков и могут использоваться как для формирования наборов точечных условных знаков, так и при описании некоторых сложных видов линий. Файл принятых в лесном хозяйстве условных знаков с названием Cz_CLP.ZVF, поставляется вместе в системой TopoL_L - это результат совместной работы наших коллег из Чехии, специалистов Центрлеспроекта и ЛесИС.
Сами наборы точечных условных знаков различного размера и с разной толщиной линий задаются в файле FONTY.TXT. Кодовое обозначение точечных условных знаков складывается из обозначения строки описаний в файле FONTY.TXT и кода знака внутри файла *.ZVF (см. ниже), которые вместе образуют ссылочный код знака.
Примерный вид файла FONTY.TXT:
1 Cz_CLP.zvf M 0.8 0.1
2 Cz_CLP.zvf M 1.0 0.2
3 Cz_CLP.zvf M 1.4 0.2
. . .
10 Cz_CLP.zvf M 10.4 0.3
11 Cz_CLP.zvf M 13.8 0.3
12 Cz_CLP.zvf M 1.2 0.3
. . .
19 My_Zn.zvf M 8.8 0.3
20 My_Zn.zvf M 11.8 0.4
Каждый набор знаков определяется одной строкой в файле (первая строка - пустая). В строке задаются пять параметров, разделенных, как минимум, одним пробелом (первый символ не должен быть в первой позиции). Первый параметр является номером набора (шрифта) и представляется числом в интервале от 1 до 32. Это значение - одна или две цифры, образует первую часть кода точечных знаков, за которыми следуют три цифры кода самого условного знака.
Второй параметр - имя файла с набором векторных условных знаков. Файл ищется сначала в каталоге параметров запуска, затем в каталоге программы TopoL. Файлов наборов знаков может быть несколько, как показано в приведенном выше примере файла FONTY.TXT, то есть пользователи могут создать свои собственные знаки в отдельном файле в дополнение к набору знаков, поставляемому ЛесИС. Такой путь предпочтительнее, чем дополнение стандартного файла Cz_CLP.zvf так как набор знаков в Cz_CLP.zvf постоянно дополняется, что может привести к разночтениям в различных вариантах файла Cz_CLP.zvf.
Третий параметр определяет способ изображения точечных условных знаков. Он может принимать следующие значения:
·        D - динамическое изображение, когда знак меняет свой размер в зависимости от масштаба изображения; значение высоты знака задается в метрах (в единицах карты);
·        S - статическое изображение, когда знак не меняет своего размера и сам размер задается в пунктах (как для шрифтов Windows);
·        M - метрическое изображение, когда знак меняет свой размер в зависимости от масштаба изображения; значение высоты знака может задаваться в мм с учетом относительного масштаба символов (см. 1.8.11
).
Четвертый параметр задает размер символов в наборе в единицах с учетом выбранного выше способа изображения этих символов. Пятый параметр задает толщину линий знака, которая при способе изображения М задается в мм.
Пустые строки файла и строки, первое поле которых не является числовым, считаются комментариями (строки комментария не должны начинаться с чисел). Прописные и строчные буквы не различаются. Из формата номеров наборов знаков (шрифтов) следует ограничение количества описаний в файле 32 наборами.
Наборы знаков, заданные в файле FONTY.TXT, появляются в списке точечных условных знаков TopoL после его стандартных знаков и видны при выборе точечных знаков в диалоговых формах. Сам файл FONTY.TXT может находиться в каталоге параметров запуска, или же в каталоге, откуда запускается TopoL .

4.4.1.4 Условные знаки линий

Набор масштабируемых векторных условных знаков для линейных объектов размещается в файле LINZN.TXT . Для подготовки знаков можно использовать программу - редактор L_DEFINE.EXE, либо сформировать описание в текстовом редакторе, скопировав в качестве основы описание близкого по типу существующего знака.
В описаниях линейных условных знаков можно задать цепочку значков с любой стороны от базовой линии и на любом расстоянии от ее оси. Существуют три способа задания таких цепочек:
·        на основе базовых линейных символов TopoL;
·        в виде набора линейных звеньев, которые представляют собой одиночные линии с заданным углом и расстоянием от предыдущего звена;
·        в виде набора точечных символов из файлов *.ZVF (см. выше).
На основе этих трех способов можно составить сложную комбинацию из различных описаний.
Размеры при задании параметров линейных условных знаков задаются в мм , реальные же их размеры при визуализации и печати карт будут зависеть от значения относительного масштаба (см. разделы 1.8.11 и 4.4.1.1 ). Углы задаются в градусах. Что же касается толщины линий, то если параметр ZakladniZnacka находится в диапазоне 1 - 38, то используются стандартные линии TopoL, если же этот параметр равен 0 или более 999, то толщина задается в мм с учетом значения относительного масштаба символов.
Описание линейного знака может быть написано заглавными или строчными буквами, количество пробелов может быть произвольным. Последовательность описаний параметров внутри каждой группы несущественна. Последовательность самих групп влияет на последовательность прорисовки элементов условного знака и, соответственно, может влиять на его итоговый вид. Тексты, находящиеся вне групп, ограниченных ключевыми словами, считаются комментариями. Синтаксические конструкции для описания каждого линейного знака состоят из определения, заключенного между ключевыми словами [LiniovaZnacka] и [end]:
[LiniovaZnacka]
kod = 10591
nazev = reka
[Retez]
.
.
[end]
[Retez]
.
.
[end]
[end]
где:
·        kod - уникальный код линии, число в диапазоне от 1000 до 32500;
·        nazev - пользовательское название вида линии (до 255 символов);
Затем следуют описания любого числа цепочек, заключенные между ключевыми словами [Retez] и [end]:
[Retez]
ZakladniZnacka = 0
vzdalenost = 0
strana = L
.
.
[end]
где:
·        ZakladniZnacka - код базового знака TopoL : 0 - масштабируемый, 1 - 38 - из стандартного набора, 1000 и более - масштабируемый, вычерчиваемый с заданной толщиной;
·        vzdalenost - расстояние смещения в мм (в случае использования точечных символов это расстояние до базовой точки символа);
эта конструкция позволяет определить линию, параллельную (эквидистантную) заданной оси, смещенную в заданную сторону на заданную величину;
·        strana - сторона смещения: P, R, L ;
·        sila - толщина в мм с учетом относительного масштаба;
·        barva - цвет, число в диапазоне 0 - 15 или цвет в представлении цветов TopoL (см. 6.4.1.1 ); позволяет изменить цвет для отдельной цепочки относительно цвета, установленного в TopoL для всей линии.
Примечание. Цветные и многоцветные условные знаки линий, то есть линии, где цвета заданы в самом описании знака, TopoL показывает правильно только в режиме Установки для цвета и символа. В других режимах визуализации заданный цвет символа может перекрывать цвета, заданные в самом знаке.
Более сложные линии могут иметь следующие элементы в описании:
[Retez]
vzdalenost = 1
strana = L
sila = 3
barva - 1
[Petrklic]
soubor = LINZN.ZVF
Kod = 4
uhel = 0
velikost = 0.7
vzdalenost = 10
[end]
[Clanek]
uhel = 0
velikost = 0.2
vzdalenost = 1.9
[end]
[end]
где [Petrklic] - описание точечных символов TopoL, которое заключено между ключевыми словами [Petrklic] и [end]:
·        soubor - имя файла с точечными символами (типа *.ZVF, может включать полный маршрут доступа);
·        Kod - код символа в файле;
·        uhel - угол поворота символа в градусах, отсчитываемый от горизонтальной линии против часовой стрелки;
·        velikost - задает ширину точечного символа (а не высоту символа, как определено для пользовательских точечных условных знаков) ;
·        vzdalenost - вставка между этим и следующим звеном типа [Clanek] или [Petrklic] .
[Clanek] - звено, описание которого заключено между ключевыми словами [Clanek] и [end], состоит из одиночной линии, ориентированной под определенным углом, и расстояния до следующей линии:
·        uhel - угол в градусах, отсчитываемый от горизонтальной линии против часовой стрелки;
·        velikost - длина линии в мм ;
·        vzdalenost - вставка между этим и следующим звеном типа [Clanek] или [Petrklic] ; если угол равен 0, то длина линии добавляется к длине вставки.
Директивы управления знаками, которые дают расширенное управление воспроиз­ведением знаков PetrKlic и задаются в формате:
·        LamatZnacku = N
где сами параметры принимают значения да (A или 1) или нет (N или 0).
Определены следующие директивы:
·        LAMATZNACKU - указывает, надо ли знак с возможностью излома (деформации) действительно "ломать" в точке излома линии; по умолчанию установлено да (A или 1).
·        KRESLITPOSLEDNI - информация о том, должен ли недеформируемый знак быть вычерчен целиком перед точкой излома линии, если места недостаточно (A или 1); если нет (N или 0), знак будет отодвинут за точку излома; по умолчанию - нет (N или 0).
·        KRESLITZBYTEK - показывать ли оставшуюся часть для знака с возможностью излома (деформации), вычерчиваемого на конце линии; по умолчанию для звена установлено - да (A или 1), а для знаков PetrKlic - нет (N или 0).
Список ключевых слов в алфавитном порядке:
·        BARVA - цвет из набора цветов TopoL, число в диапазоне 0 - 15; позволяет изменить цвет для отдельной цепочки относительно цвета, установленного в TopoL для всей линии.
·        [CLANEK] - звено, описание которого заключено между ключевыми словами [Clanek] и [end], состоящее из одиночной линии, ориентированной под определенным углом, и расстояния между ними;
·        [END] - обязательный элемент завершения синтаксических конструкций (LINIOVAZNACKA, RETEZ, CLANEK, PETRKLIC ... которые всегда заключаются в квадратные скобки ... [ ]) .
·        KOD - обязательный параметр, имеющий два применения:
уникальный код линии, число в диапазоне от 1000 до 32500;
код знака PetrKlic из файла (типа *.ZVF).
·        [LINIOVAZNACKA] - описание каждого линейного знака в файле LINZN.TXT; делее следуют описания элементов условного знака; собственные параметры - KOD и NAZEV, а также NAHRADNIZNACKA.
·        NAHRADNIZNACKA - определяет простую заменяющую линию для целей быстрого воспроизведения; эта линия будет использоваться вместо основной при включении"чернового" режима визуализации.
·        NAZEV - пользовательское название вида линии, задается в описании LINIOVAZNACKA .
·        [PETRKLIC] - определяет точечный знак PetrKlic.
·        [RETEZ] - определяет описание цепочек, из которых формируются пользовательские условные знаки.
·        SILA - позволяет задать толщину линии.
·        SOUBOR - этот параметр задает путь и имя файла, содержащего точечные знаки PetrKlic (типа *.ZVF ).
·        STRANA - задает направление, в котором производится смещение элементов условных знаков.
·        UHEL - действительное число, задающее угол отклонения звена или условного знака.
·        VELIKOST - задает размер объекта в мм.
·        VZDALENOST - задает разрыв между текущим и следующим однотипным знаком.
·        ZAKLADNIZNACKA - определение цепочки из параллельных (эквидистантных) классических линейных условных знаков.
Наборы знаков, заданные в файле LINZN.TXT , появляются в списке линейных условных знаков TopoL после его стандартных линий и видны при выборе видов линий в диалоговых формах. Сам файл LINZN.TXT  может находиться в каталоге параметров запуска, или же в каталоге, откуда запускается TopoL .
Поставляемый с системой TopoL_L вариант файла LINZN.TXT и используемый с ним совместно файл CzCLP.ZVF, содержат набор условных знаков линий для отечественных лесных карт. Простые сплошные линии различной толщины прокодированы в этом файле номерами типа 10006, где 06 соответствует толщине линии 0.6 мм . Затем следуют линии с кодами, соответствующими кодификатору векторных объектов TopoL для российского лесного хозяйства Кодификатор99.xls (файл можно получить в ЛесИС). Кроме кодов линий по кодификатору (четырехзначных) в файле могут содержаться их модифицированные варианты, код которых образован прибавлением к основному коду величин 10000 или 20000. Это могут быть варианты линий границ с отмывкой, противоположно направленные асимметричные условные знаки линий и т.п. Большинство асимметричных условных знаков линий помечено в названии вида линий латинскими буквами L или R, подсказывающими их направленность.
В конце списка размещаются специальные линии рамок лесных карт с кодами 10080 и более. Обычно они состоят из нескольких сдвинутых линий различной толщины. Эти линии рассчитаны на обход карты по часовой стрелке, при этом стык (точка замыкания) рамки должен находиться на какой-либо прямой стороне рамки (не на углу!). Рисовать рамки рекомендуем по сетке (см. 1.10.4 ). Базовая линия рамки, которая собственно должна быть прорисована, для большинства линий совпадает с внутренней рамкой карты, но может иметь и другое размещение - для рамки плана лесонасаждений она проходит по внешней границе листа, а рамка сдвинута внутрь.

4.4.1.5 Условные знаки площадных закрасок

Условные знаки этого класса задаются в файле SRAFY.TXT (по-чешски: "шрафы"), размещенном в каталоге параметров запуска. Хотя файл имеет текстовый формат, для подготовки условных знаков, вероятно, придется использовать редактор A_DEFINE.EXE, так как без него определить числовые значения цветов будет крайне трудно.

Вид основной части главного окна редактора масштабируемых условных знаков закраски полигонов
A_DEFINE.EXE
Слайдеры Zoom на страницах редактора позволяют видеть условные знаки при разных относительных масштабах символов.
Чтобы увидеть знак сразу после запуска редактора потребуется увеличить текущий масштаб символов.
Файл SRAFY.TXT имеет текстовый описанный ниже формат. Площадной условный знак формируется наложением произвольного числа слоев штриховок. Один слой штриховок имеет строго один общий угол наклона для всех линий.
Каждая из множества штриховок в слое представлена рядами одинаково наклоненных, но различно окрашенных, разнотолщинных сплошных и пунктирных линий. Каждая штриховка изображается как регулярно повторяющийся набор пунктирных линий с заданным цветом, толщиной, расстоянием между линиями и параметрами самого пунктира.
Кроме того, можно выбрать цвет подложки под всем набором слоев штриховок - Background, или задать подложку прозрачной - включить Transparent.
В поле Substitute symbol выбирается базовый символ из стандартного набора, на основе которого строится условный знак. Обычно выбирается сплошной ровный цвет.
Описание каждого площадного условного знака ограничено ключевыми словами [Plosna Znacka] и [End]. Атрибуты знака:
·        Kod - номер знака > 999 , обычно означающий пользовательский идентификатор;
·        Nazev - название знака, произвольная строка длиной до 255 символов;
·        NahradniZnacka -позволяет задать код стандартного площадного знака TopoL для вычерчивания в черновом режиме;
·        Podklad - код цвета (цвета TopoL) для заполнения фона под всеми штриховками; значение 0 означает отсутствие заполнения;
Далее может следовать произвольное число наборов слоев штриховок, заключенных между ключевыми словами [VrstvaSraf] и [End]. Слой штриховок определяется углом наклона штриховки, за которым следует произвольное число описаний самих штриховок:
·        Uhel - угол наклона штриховки по фиксированной шкале, допустимы углы: 0 (по умолчанию), 45, 90 и 135 градусов;
Описание штриховки следует между ключевыми словами [Srafa]и [End]. Штриховка является основным элементом площадного условного знака. Ее параметрами являются:
·        Sirka - (по-чешски: ширка)задает толщину линии штриховки в мм с учетом установленного относительного масштаба символов;
·        Barva - код цвета от 0 до 16 либо код RGB-цвета в TopoL-е;
·        Vzdalenost - поперечное смещение до следующей линии штриховки в мм, то есть плотность штриховки;
·        D1 - просвет перед каждым прорисовываемым штрихом в пунктире, мм;
·        DelkaVzoru - длина штриха в пунктире, мм;
·        D2 - просвет после каждого штриха в пунктире, мм.
Поставляемый с системой TopoL_L вариант файла SRAFY.TXT содержат набор условных знаков закрасок по породам для планов лесонасаждений и других лесных карт. В файле представлены основные породы. При необходимости файл может быть дополнен.
Практика показывает, что подобранные нами цвета гарантируют хорошее визуальное разделение пород только при использовании принтера аналогичного типа (у нас используются 4-цветные струйные принтеры Epson Stylus Color 3000), а также сходной бумаги (обычная белая писчая хорошего качества). При использовании принтера от другого производителя или принтера с другой цветовой схемой (6-цветного), а также других печатных материалов, цвета окраски пород будут отличаться. Если возникнет необходимость коррекции цвета, придется использовать редактор A_DEFINE.EXE. После запуска редактора нужно выбрать на диске и открыть файл SRAFY.TXT .
Для большинства знаков, являющихся, по сути, равномерной окраской заданного цвета, настройка цвета сводится в основном к настройке цвета фона символа. Возможность выбора цвета появляется после нажатия цветной кнопки. Хотя штриховка в этих знаках и имеет такие параметры, что вероятность ее появления крайне мала, для чистоты в ней следует все же задать аналогичный цвет.
Чтобы начать редактирование штриховок условного знака, нажмите кнопку Edit. В следующей форме слева находится список слоев штриховок, составляющих знак. Параметры слоя штриховки соотносятся с описанными выше следующим образом:
·        Uhel = Angle
·        Sirka = Width
·        Vzdalenost = Distance
·        D1 = D1
·        DelkaVzoru = Length figure
·        D2 = D2
Чтобы редактировать штриховку, нажмите Edit C-h. В следующей форме можно изменить параметры штриховки и настроить ее цвет, нажав на цветную кнопку. Для символов лесных культур цвета фона и штриховки будут различаться.
Завершив настройку цветов, сохраните изменения, выбрав в меню команду Save. Проверить получившийся цвет можно только после печати образца цветов (блок PORODY.BLK). Выходить из редактора A_DEFINE.EXE не обязательно, достаточно просто перерисовать карту в TopoL (см. 4.4.1.2 ).
На практике иногда возникает потребность сделать полигоны прозрачными, например, чтобы сквозь слой повыдельной карты была видна растровая топокарта или аэрофотоснимок, но не выключать визуализацию полигонов полностью, чтобы иметь возможность доступа к записям базы данных по выделам. Для этого в поставляемом нами файле SRAFY.TXT определен символ прозрачной"закраски", имеющий код 9999 и название символа НЕ_ПОКАЗЫВАТЬ. Его можно использовать как для"окраски" отдельных полигонов, так и всего блока, если выбрать его в"палитре" (см. 1.8.10 ) в качестве символа для целого блока, а цвет задать по установке.