Рецепты топосъёмки (Алексей Горбенко)

1. Подключение к проекту Хранилище

Для подключения к проекту Хранилище необходимо:

  • зарегистрироваться;
  • получить права доступа к Хранилищу.

1.1. Регистрация в проекте Хранилище

Для регистрации в проекте Хранилище необходимо перейти по адресу https://rc.cavedb.ru/_admin/register и заполнить Регистрационную форму. Регистрация требует подтверждения модератором – Сухачёв Василий.

1.2. Получение прав доступа к Хранилищу

После регистрации и модерации можно зайти на сайт Репозиториев по адресу https://rc.cavedb.ru/. В папке cavedb находятся списки всех Репозиториев доступных для пользователя.

2. Настройка TortoisHg

В стадии написания.

3. Создание структуры съёмки

Для проведения работ по построению карты пещеры необходимо создать минимальную файловую структуру, т.е. создать необходимые каталоги и файлы для генерации карт. Данная структура разработана и поддерживается красноярскими спелеологами в рамках проекта "Хранилище". Therion гибкая система и позволяет создавать структуру каталогов и файлов разными способами. В других регионах и спелеогруппах могут быть созданы структуры отличные от красноярской.

Ниже расписывается подробно структура каталогов, файлов и их минимальное содержание. При знании всех описанных ниже особенностей можно сразу перейти к скачиванию шаблона структуры каталогов и файлов (перейти).

В папке пещеры создаётся следующая иерархия каталогов:

_cl – содержит все нитки хода.

_map – генерация карт пещеры, содержит данные абрисовки. p – план пещеры, r – разрез пещеры, rr – разрез-развёртка пещеры. Создают разрез или разрез-развёртку, в зависимости от конфигурации пещеры.

_model – генерация 3d-моделей пещеры.

_survey – архивы съёмок.

В каталогах _cl, _map и _model создаётся подкаталог _th. Это говорит о том, что данные созданы или обрабатываются в системе Therion. Например, нитка хода может быть создана не в формате Therion'а, а в формате Survex'а, тогда подкаталог будет иметь название _svx.

3.1. Нитка хода (_cl)

В каталоге _cl\_th\ создаётся файл с именем пещеры в латинице с расширением .th, например: dudinskaja.th, oreshnaja.th, ruchejnaja.th. Этот файл содержит главную съёмку (survey) пещеры, в которую будут добавляться все остальные съёмки.

encoding utf-8
survey dudinskaja -title "Дудинская"
#
# Вход
#

centerline
  station 2@du1_1 "Дудинская" entrance
endcenterline

#
# Съемки
#

  input du1_1
  input du2_1_1
    equate K1@du2_1_1 K1D@du2_3
  input du2_1_2
    equate K4@du2_1_2 K3@du2_2_2

endsurvey

В данном примере создаётся съёмка (survey) dudinskaja. Блок centerline определяет пикет, который является входом в пещеру. Этой точке можно указать GPS координаты, например, для генерации kml файла и наложения нитки хода на топооснову. Командами input присоединяются файлы съёмок, которые расположены в том же самом каталоге. В данном примере в каталоге также должны быть файлы du1_1.th, du2_1_1.th, du2_1_2.th. Файлы съёмок генерируются в программе Topodroid и требуют незначительных правок. Командами equate указываются пикеты соединения съёмок.

3.2. Генерация карты (_map)

В каталоге _map\_th\ создаётся каталог p, r или rr, в зависимости от создаваемой карты. В созданном каталоге создаётся файл maps.th, содержащий следующие данные:

encoding utf-8
input ../../../_cl/_th/dudinskaja

#
# Подключение съёмок
#

  input du1_1/maps.th
  input du1_2_1/maps.th

#
# Соединение скрапов
#

  join S-du1_1-1 S-du1_2_1-2

#
# Соединение линий
#

  join i3:0 i4:0
  join i3:0 i4:0

#
# Нитка хода
#

  map cl_p -proj plan
    du1_1.dudinskaja
    du1_2_1.dudinskaja
  endmap

#
# Карта
#

  map p -proj plan -title "Дудинская"
    du1_1_p
    du1_2_1_p
  endmap

  map work_p -proj plan -title "Дудинская"
   p
   break
   cl_p
  endmap

В данном примере подключается нитка съёмки input ../../../_cl/_th/dudinskaja. В блоке Подключение съёмок добавляются отрисованные части пещеры, находящиеся в соответствующих каталогах, имеющих наименование по имени съёмки. Например input du1_1/maps.th говорит о том, что в каталоге _map\_th\ есть каталог du1_1 с обрисовкой соответствующей съёмки (структуру обрисовки съёмки в данном пункте инструкции не рассматривается).

Блоки Соединение скрапов и Соединение линий содержат данные для соединения скрапов (scrap) пещеры. При большом количестве команд соединения скрапов и линий логично вынести эти блоки в отдельный файл, например join.th, а в файле maps.th подключать его командой input join.th.

Блок Нитка хода содержит нитки хода разных съёмок, которые необходимо вывести на карту. В данном случае выводятся все сплеи съёмки (все боковые замеры, а не только нитка хода). Это удобно при обрисовке карты и соединении скрапов. У отрисованных частей пещеры нужно убирать вывод сплеев на карту.

Блок Карта содержит данные, которые указывают как генерировать итоговую карту. Рекомендуется создавать два вида карт (map). С именем p, r или rr (в зависимости от создаваемой карты), с указанием всех частей пещеры. Этот блок необходим для генерации итоговой карты. Вторая карта, с приставкой work_, создаётся для камеральщиков и служит рабочей картой. Она формируется из первой карты с добавлением отображения сплеев (cl_p).

Кроме файла maps.th необходимо создать файл конфигурации thconfig_work и thconfig. Они во многом аналогичны друг другу. Файл thconfig_work служит для генерации карты для камеральщиков, с отображением всех топоданных и нитки хода. А для генерации карты для публикации (конечный вариант карты) используется файл thconfig.

Ниже приведён пример файла thconfig_work:

encoding utf-8
source maps

input ../../../../../../_settings/th/default.thc

layout _local
  copy symbols_krasspeleo
  copy map_work
  copy hdr_top_left_in
  copy style_filled_in
endlayout

select work_p

export map -o oreshnaja_p_work.pdf -proj plan -layout _local

Команда source maps подключает файл описания топосъёмки. Команда input ../../../../../../_settings/th/default.thc подключает файлы, в которых определены настройки отображения карт (layout). Это предустановленные настройки отображения, которые применяются в красноярскими спелеологами и/или отдельными спелеогруппами. Так, в следующем блоке, к локальному layout с именем _local подключаются настройки layout с именами symbols_krasspeleo, map_work, hdr_top_left_in и style_filled_in. Некоторые layout меняют отображение символов на карте на принятые в определённом спелеоколлективе (symbols_krasspeleo), другие определяют тип отображения для камеральщиков (map_work) и положение карт и легенды на карте (hdr_top_left_in, style_filled_in). Описание существующих предопределённых layout выходит за рамки данного описания.

Команда select work_p указывает, какую гарту (map) брать для генерации. Команда export генерирует итоговый файл карты.

3.3. Генерация модели (_model)

В каталоге _model\_th\ создаётся файл конфигурации (thconfig) для генерации файлов моделей. Он состоит из следующих команд:

encoding utf-8
source ../../_cl/_th/dudinskaja

export model -o ../dudinskaja.3d
export model -o ../dudinskaja.lox
export model -o ../dudinskaja.kml

Командой source ../../_cl/_th/dudinskaja подключается нитка хода. Команды export генерируют 3d модели в нужном формате.

3.4. Архив съёмок (_survey)

Архив съёмок содержит все исходные файлы топосъёмок. В каталоге создаются подкаталоги для топосъёмки каждого топоотделения с указанием даты съёмки и фамилии ответственного за топосъёмку. Пример подкаталогов:

2022-01-04 [Vasileva]
2022-01-22 [Gorbenko]
2022-01-22 [Vasileva]
2022-01-22 [Vikulova]

В подкаталогах располагаются исходные топоданные. Например, при съёмке в Topodroid загружаются zip-архивы.

3.5. Шаблон создания новой топосъёмки пещеры

Ниже можно скачать шаблон для создания новой топосъёмки. В архиве содержится вся необходимая структура каталогов и файлов для генерации плана и разрез-развёртки. В каталоге _cl\_th необходимо файл cave.th заменить на имя своей пещеры. Во всех файлах поправить наименование пещеры (заменить cave) и наименование съёмок (заменить ca).

4. Фиксация реперного хода

Существует метод съёмки пещер – максимально точная съёмка реперного хода с последующим "навешиванием" менее точных колец на ранее отснятый реперный ход. При съёмке в пещере реперного хода методом повышенной точности (со штатива, теодолитом и др.) логично данную нитку хода закреплять в пространстве относительно других колец, снятых менее точными приборами. Для этого в Therion'е существует команда sd, которая указывает какие замеры считать более точными, а какие менее. Код может быть вставлен в блок centerline и иметь следующий вид:

sd length 0 m
sd compass 0 deg
sd clino 0 deg

Данный код говорит Therion'у, что в последующих за этим кодом замерами значения длины, азимута и угла наклона являются максимально точными и на них не должны влиять замеры с менее точными данными. Чтобы не вбивать постоянно этот код можно создать grade с данными параметрами:

grade g1
  length 0 m
  compass 0 deg
  clino 0 deg
endgrade

Для применения новых настроек необходимо перед нужными замерами указать grade g1. Данные настройки действуют до следующей команды grade. Чтобы вернуть настройки по умолчанию, необходимо применить команду grade BCRA5.

Ниже код для примера:

survey s1
  grade g1
    length 0 m
    compass 0 deg
    clino 0 deg
  endgrade

  centerline
    
    units length meters
    units compass clino degrees
    data normal from to length compass clino
    grade g1
    1 2 2 0.0 0
    2 3 2 0.0 0
    3 4 2 0.0 0
    4 5 2 0.0 0
    5 6 2 90.0 0
    6 7 2 90.0 0
    7 8 2 180.0 0
    8 9 2 180.0 0
    9 10 2 180.0 0
    10 11 2 180.0 0
    11 12 2 270.0 0
    12 1 2 270.0 0
    grade BCRA5
    7 101 5 90.0 0
    101 102 5 90.0 0
    102 103 2 180.0 0
    103 104 2 180.0 0
    104 105 2 180.0 0
    105 106 2 180.0 0
    106 107 2 270.0 0
    107 11 1 270.0 0

  endcenterline

endsurvey

Кольцо 1-12 – пример реперного хода.
Кольцо 101-107 – пример менее точного кольца.

Реперный ход представляет собой идеальный прямоугольник. На левом рисунке из-за наличия невязки на не точном кольце реперный ход значительно изменился. После фиксации реперного хода точное кольцо не изменяется, а изменяется только менее точное кольцо (правый рисунок).

5. Камеральная обработка отснятого материала

5.7. Стыковка скрапов

Стыковать скрапы рекомендуется в максимально простой части пещеры, в нешироких ходах и не имеющих дополнительных элементов в месте соединения. Рекомендуется избегать стыковок скрапов в гротах. Если элементы пещеры попадают в место соединения скрапов, то возможны нежелательные эффекты: обрезание части символа; затенение (перенос на нижний этаж) части символа; неправильная заливка, если символ имеет свою заливку и т.д. Ниже приведен неудачный пример соединения скрапов, который привел к отрезанию части камня.

Ниже пример отрезания камня в месте соединения скрапов:

Для соединения используется команда join. С ее помощью можно соединять скрапы, линии и точки. Любые соединяемые объекты должны располагаться как можно ближе друг к другу. Только потом можно их соединять командой join.

Ниже: слева – расположение стен максимально близко друг к другу; справа – результат команды join:

Скрапы соединяются указанием имени скрапов:

join S-r22_1-1 S-r22_1-2

Команда join соединяет два скрапа только по одному ходу. Если скрапы имеют более одного хода соединения между собой, то необходимо использовать опцию -count N, где N – число соединений. Например:

join S-r22_1-1 S-r22_1-2 -count 2

Если происходит неудачное соединение (Therion может выдать непредвиденные результаты соединения) или необходимо произвести сложное соединение скрапов (например три скрапа соединяются в одном месте), то необходимо соединение скрапы производить соединением линий стен. Для этого так же используется команда join с указанием идентификаторов (id) объектов.

Ниже представлен пример сложного соединения скрапов, который невозможно произвести соединяя скапы:

В XTherion’е в редакторе карт при выборе объекта (линии или точки) в правом меню есть поле для ввода идентификатора. Рекомендуется именовать линии идентификатором iN, где N – сквозной номер.

Присваивание идентификатора (id) объекту:

Указав соединяемым линиям/точкам нужные идентификаторы можно их соединить командой join.

join i22 i23

Therion соединяет края линий, расположенные максимально близко друг к другу. Иногда Therion соединяет линии не верно (при расположении других линий рядом) и необходимо точнее указать место соединения. Можно указать начало или конец линии (начало линии в редакторе карт XTherion’а определяется по желтой галочке на линии, обозначающей её начало) дописав к идентификатору линии :0 или :end соответственно. Например:

join i22:end i23:0

Если есть необходимость присоединения линии в середину другой линии, то необходимо указать номер точки в линии. Точки в линии нумеруются так – 0, 1, 2, ..., end. Например, если необходимо соединить третью точку одной линии и конец другой, то команда будет иметь вид:

join i22:2 i23:end

Также можно соединять несколько линий одновременно:

join i22:end i23:0 i24:1

Соединение точек выполняется аналогичным образом. Для Therion’а точка – это линия состоящая из одной точки.