На Главную

Карты Памиро-Алая

Программы для работы с картами

Вниз

  Краткий курс по работе с программой Credo Transform 2.0

  На этой странице будет рассказано о применении программы Transform в деле
"нормализации" карт - преобразования к прямоугольному виду и обрезке полей.
  Использование для этой цели графических редакторов, таких как Фотошоп и другие
нежелательно, поскольку в них преобразование изображения происходит без учёта
законов геодезии - если с этим ещё можно смириться при подготовке карт для печати,
то, например, в случае использования их в качестве слоя в программе Google Earth
получается значительно большее расхождение со спутниковым рельефом.
 
 

Программа Transform имеет типичный Windows-интерфейс,
все нужные нам действия вызываются в главном меню,
дублируются на панели инструментов и в контекстных меню.

Запускаем программу и создаём новый проект.
По умолчанию он будет иметь имя "Map1".

 
 

Далее, в проект импортируется файл карты, который нам надо обработать.

  Здесь надо оговорить, что программа не работает с файлами в JPG-формате,
и исходный материал надо предварительно преобразовать в другой формат.
Я для этой цели использую BMP, в нём же сохраняю и результаты преобразования -
- не взирая на относительно большой размер получаемых файлов (десятки мегабайт),
в этом случае не происходит никаких потерь качества, а в дальнейшем файл можно
легко преобразовать в любой нужный формат, размер и разрешение.
  После этого проект следует сохранить под каким-нибудь вразумительным именем,
например как номер номенклатурного листа карты:
 
 

Далее начинается основная работа - указание на карте опорных точек.

Информация для этого берётся с полей карты.
На профессиональных крупномасштабных картах имеется координатная сетка,
которая указывает расстояние точки в километрах от экватора и осевого мередиана
(подробнее об этом можно прочитать в статье "Номенклатура топографических карт").
В приведённом выше примере координаты отмеченной точки - 4468 км. и 13290 км.
Цифры, напечатанные мелким шрифтом (44 и 132 в нашем случае),
присутствуют не у каждой линии сетки, и их надо прибавлять
к каждому "крупному" значению самостоятельно.
О работе с картами с градусной сеткой будет рассказано позже.

Для ввода опорных точек нужно выбрать одноимённый пункт в меню "Трансформация"
или нажать соответствующую кнопку на панели инструментов:

 
 

Курсор мыши после этого приобретает форму "прицела",
которым и надо указывать на узлы сетки.
При этом будет появляться окно для ввода координат,
в соответствующие поля которого вводятся значения,
согласно данным на координатной сетке.

 
В принципе в этом окне можно ещё
задавать имя для опорной точки,
но в нашем случае это ненужно -
- предоставим программе делать
это автоматически.
  При установке первой и второй опорной точки, в полях "Север" и "Восток" первоначально
находятся совершенно отвлечённые значения, и обе величины нужно вводить полностью.
Впоследствии работа облегчается - Transform начинает "ориентироваться на местности",
и в полях ввода уже присутствуют приблизительные координаты указанной точки,
так что остаётся только округлить их:
 

>>>

 

Легко догадаться, что для полного "поумнения" программе достаточно 3 точек,
размещённых по отношению к первой в разных координатных направлениях.

Важное замечание для совсем тупых вроде меня.
Округлять, вводить истинные значения, указанные на координатной сетке - необходимо!
Именно по этим данным программа производит метрически корректную трансформацию.
Если оставить их без изменения, как это было у меня при первом опыте работы с ней
(думал - ведь почти совпадает!) - результат будет равен исходнику!

По поводу количества опорных точек.
Для получения "нормализованной" карты без заметных на глаз искажений
обычно достаточно несколько десятков точек, не более полусотни.
Tем не менее я предпочитаю вводить их все - для каждого узла -
- очевидно густота сетки для каждого масштабе взята не с потолка.
Для листов километровок это составляет величину порядка 400 точек.
Тоже можно сказать и по поводу точности указания точек.

  Вопросы точности, понятно, каждый решает для себя сам.
Поскольку карта готовится не для артиллерийского расчёта (в конце концов есть циферки),
а так же учитывая то, что в горной местности прямое измерение расстояний мало что даёт,
не говоря о том, что в прямоугольной проекции расстояния всё равно искажаются,
требования могут быть и занижены.
С другой стороны, если карта готовиться для использования в качестве слоя для программы Google Earth,
для получения лучших результатов - большей точности совпадения со спутниковым рельефом -
следует вводить данные для каждого узла, да поточнее.
  Работа по вводу такого количества точек достаточно однообразна и утомительна,
и в её процессе вполне могут быть допущены ошибки. Если их не устранить,
на конечном изображеннии могут появится дефекты, типа "эффекта лупы" и другие.
К счастью, Transform и тут приходит нам на помощь.
После ввода данных для всех точек, для контроля ошибок следует просмотреть
"Список опорных точек":
 
  В появившемся списке точки, выпадающие по мнению Transform-а из общего ряда,
отмечаются восклицательным знаком:
 
  В любом случае стоит просмотреть этот список повнимательнее.
Если при вводе данных придерживаться системы, например обрабатывать точки построчно,
то ошибку, даже пропущенную программой, можно легко заметить визуально.
Для исправления ошибки нажмите кнопку "Редактировать".
  В самом начале работы, когда введено мало опорных точек, или при большом количестве ошибок,
Transform может выставить предупреждение у "правильных" точек или не заметить "неправильные" -
- в такой ситуации будьте особенно внимательны.
  Лучше конечно сразу не допускать ошибок - для этого рекомендую следующее наблюдение.
При построчном вводе (разумеется, когда Transform уже "сориентировался на местности")
разница между истинными значениями координат и значениями в полях "Север" и "Восток"
составляет метры или десятки метров (тысячные или сотые доли). Если при указании на
очередную точку эта разница вдруг стала заметно большей - наверняка в предыдущей ошибка.
 
Теперь, если всё правильно, приступаем к трансформации.
(Перед этим следует сохранить проект - программа иногда вылетает.
Не помешает периодически делать это и в процессе работы.)
 
  Перед её началом программа попросит ввести масштаб.
Укажем значение для нашей карты:
 

Строго говоря, если задача заключается только в получении
графического файла, эта величина не имеет значения
(тем более что информация о масштабе не содержится
ни в BMP-файле, ни в тэгах JPG), однако, если в дальнейшем
планируется продолжать работу с проектами Transform-а,
лучше указывать эту величину правильно.

Некоторые вопросы масштабирования будут рассмотрены далее.

 

Результатом трансформации, как вы уже наверное догадались, будет преобразование карты
в прямоугольную систему координат в соответствии с имеющейся на ней координатной сеткой.
Немаловажно здесь то, что даже если карта была криво отсканирована,
для описанного процесса это не имеет никакого значения - система координат же не кривая!

Поскольку сетка первоначально имела заметный наклон по отношению к вертикальным осям
(в нашем случае влево), а после трансформации стала "перпендикулярной", результирующее
изображение тоже будет повёрнуто (в нашем случае вправо):

 
 

Теперь следует повернуть изображение обратно.

Для активации инструмента поворота надо сначала разблокировать наш "фрагмент"
(с точки зрения Transform-а карта, над которой мы работаем, является фрагментом,
в общем случае их может быть и несколько).

Сначала нужно выделить фрагмент щелчком по нему,
при этом активируются подпункты меню "Фрагмент",
и затем убрать галочку у пункта "Блокировка":

 
>>>
После этого можно воспользоваться инструментом поворота:
  Работая с инструментом поворота, разумеется трудно на глаз установить требуемый угол,
и это учтено в программе - автоматически появляется окно для ввода значения угла.
В нём можно или подтвердить текущее значение, или подкорректировать его.
Правильное значение угла приведено на полях карты в нижней части листа:
 
>>> >>>
  К сожалению, в туристской практике часто попадаются карты с обрезанными полями, особенно нижним.
В таком случае придётся подбирать значение угла экспериментальным путём.
Для контроля "перпендикулярности" могу посоветовать использовать экранную линейку,
в крайнем случае её можно заменить окном какой-нибудь программы, например Блокнота,
придав ему соответствующие размеры.
  После поворота можно приступить к финальной стадии - обрезке полей.
Теперь это легко - информативная часть карты "прямоугольна и перпендикулярна".
Инструментом "Прямоугольная маска" выделяем её
а затем инструментом "Обрезать" удаляем поля:
 
>>>
  Результат экспортируем в файл:
 
  Приятной работы!
 
Размер получаемого изображения (в пикселах) будет примерно соответствовать размеру
исходника, и может несколько различаться у разных листов, даже входящих в одну линейку,
поэтому желательно как-нибудь унифицировать их (например для целей склейки).
Разумно для этой цели использовать пиксельные размеры соответствующих спутниковых снимков, создаваемых программой GoogleMV - в ней, при указания района (в градусах)
для склеивания/выкачивания, определяется размер получаемого изображения в пикселах -
- это и есть искомая пропорция (при этом сам файл спутникового снимка можно не создавать).
Качественные изображения получаются при размерах, соответствующих увеличениям х13, х14.
  При сохранении файлов в JPG-формате следует грамотно выбрать разрешение - DPI,
что бы при печати автоматически получался правильный масштаб карты.
Об этом подробно рассказано в разделе "Печать карт и программа RasterID".
 
Что делать, если на карте только градусная сетка?
Преобразовать такую карту к прямоугольноиу виду с помощью программы Transform вполне возможно,
для чего координаты опорных точек следует указывать в градусах - за неимением других.
В результате трансформации полученное изображение будет заметно вытянуто по горизонтали,
и для получения окончательного результата потребуется изменить его пропорции на правильные,
аналогично тому, как это описано выше.
  Следует иметь ввиду, что хотя изображение и получается прямоугольным, оно всё-таки не соответствует
прямоугольной системе координат, и при его использовании в качестве слоя в программе Google Earth
получается несколько большее расхождение в сравнении с профессиональными картами с опорной сеткой.
  Для примера, листы карт масштаба 1:1000000 (из американской серии), преобразованы по градусной сетке.
При том, что использовалось небольшое количество точек, совпадение вполне удовлетворительное.
 

Как отмечалось выше, после ввода координат для первых 3-х опорных точек,
вся работа заключается в тупом округлении значений в выскакивающих окнах.
Вас это ни на какие мысли не наводит?
А меня да. Поэтому обращаюсь к туристам-программистам с таким вопросом:
Мне кажется, можно написать програмку, которая сидела бы в памяти
и перехватывала момент появление окна "Опорная точка", находила бы в нём
поля ввода "Север" и "Восток", и по команде округляла значения в них.
Визуально это может быть оформлено так - рядом с окном "Опорная точка"
показывается бокс с сообщением "Округлить?" и двумя кнопками - "Да" и "Нет".


На Главную Назад Вверх

Hosted by uCoz