Растр в навигаторах
+ Ответить
Показано с 1 по 9 из 9

Тема: Растр в навигаторах

  1. #1

    Exclamation Растр в навигаторах

    Речь здесь пойдет о подготовке растровых карт для навигаторов. И хотя описание процедуры сделано на примере навигаторов Магеллан Тритон, большая часть ее пригодится и пользователям Гармина (за исключением заключительной стадии по переводу карты в формат навигатора).

    I. Топографические карты (ГШ и Геодезия).

    1. Первоначальная привязка
    Если у нас уже имеются карты с привязкой, все замечательно. В противном случае ее можно сделать самому, используя OziExplorer.
    Выбираем систему координат Пулково 1942 и проекцию ТрансМеркатор.
    Жмем кнопку Projection Setup и в открывшемся окне заполняем отмеченные поля.



    В общем случае Центральный меридиан = (целая часть (долгота/6)+1)*6-3. Для московского региона он всегда равен 39 градусов.

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

    Для наглядности качества привязки накладываем свои треки на карту. Треки могут быть в любой системе координат и проекции - Ози все учитывает сам. Причины некоторого несоответствия могут крыться не только в выполненной привязке, точности трека с навигатора, но и в полиграфии самой карты.



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

    2. Преобразование в прямоугольную проекцию
    В GlobalMapper преобразуем систему координат из Пулково в международную WGS84, а проекцию из трансмеркатора в прямоугольную.
    Выбираем Tools -> Configure и закладку Projection.



    После закрытия меню видим, что карта вытянулась в ширину. Пока это нас не должно беспокоить.



    Попутно можно сделать еще одну полезную операцию - измерить расстояние, которое покрывает карта в километрах. Оно будет полезным для дальнейшей оценки получившегося dpi преобразованной карты.
    Для этого в GlobalMapper выбираем инструмент "Measure Tool", проводим на карте горизонтальную линию на половине высоты от одного края карты до другого.



    Внизу смотрим, сколько километров покрывает карта. В данном случае получаем 15.76 км. Значит, ширина печатной карты масштаба 500 м должна быть 15.76/0.5=31,5 см.

    Отрежем ненужные поля. При нажатии Alt-C выводится дополнительное окно. Выбираем нужный нам файл и жмем кнопку Options... Тут следует оговориться, что в случае ГШ 500 м удобнее сразу объединять карты по 4 штуки, чтобы общий лист соответствовал листу ГШ 1 км.
    Выбираем закладку Cropping и строку Crop to Manually Specified Lat/Lon Boundary (автоматическая обрезка как правило работает плохо).



    Значения границ обрезки кое-где заданы правильно, а кое-где не точно. Задавать их нужно в исходных координатах (а не пересчитанных!), т.е. так, как написано на углах карты.

    Подправляем неточные значения.



    Теперь сохраним карту в геотиф: File -> Export Raster... -> Export GeoTiff...



    Другого способа в GlobalMapper для сохранения привязанного растра нет.
    Обратите внимание на отмеченные параметры. LWZ компрессию отключаем, т.к. программа перевода в формат Тритона ее не понимает. Файлы PRJ и TFW содержат информацию о привязке (или по крайней мере один из них). Интерполяция должна по идее немного улучшить качество картинки.

    Создаем map файл с помощью Ози (для одного или группы геотифов). Делаем это через функцию импорта карт.



    Далее следуем инструкциям Ози. Тут ничего сложного. Не забываем подправить систему координат и проекцию, если они отличаются от WGS84 и Lat/Lon.



    Карта после преобразования перестает быть растянутой в ширину и почти не отличается от исходной. Только теперь меридианы и параллели стали прямыми и строго образуют прямоугольную сетку.



    Посмотрим, как ложатся треки на карту после преобразования в GlobalMapper. Видим, что треки сместились чуть вправо и вниз, т.е. привязка карты стала хуже. Видимо GlobalMapper просто делает не совсем точным пересчет. Что-то с формулами там намудрили программисты. Постараемся чуть позже исправить этот недостаток.
    Последний раз редактировалось Арчи Кун; 17.01.2011 в 14:16.

  2. #2

    По умолчанию

    3. Разные масштабы карт
    Чтобы карты в навигаторе легли в нужный масштаб увеличений, следует привести их масштаб (т.е. dpi) к нужной величине. Для тритона оптимальным является 300dpi для карт 500 м, 1 км, 2 км, 5 км и 10 км. Для 10 км также хорошо сделать карту 220 dpi (помимо 300 dpi), чтобы она легла еще на слой ниже. Если в навигаторе использовать карты ГШ всех масштабов, то они будут отображаться при следующих увеличениях навигатора:

    ГШ 500 м - 400 и 800 м


    ГШ 1 км - 1.2 и 1.6 км


    ГШ 2 км - 2.4 и 3.2 км


    ГШ 5 км - 4.8 и 8 км


    ГШ 10 км - 12 и 20 км


    ГШ 25 км - 30 и 60 км


    Что касается ГШ 25 км, то тут разговор особый, т.к. они сделаны не в проекции ТрансМеркатора, а в конической равноугольной проекции Ламберта и север на них "смотрит на северо-восток". При желании можно преобразовать и эти карты, но многие посчитают целесообразнее пользоваться другими картами мелкого масштаба, например Яндекс.

    Перемасштабируем карту в фотошопе. Открываем в нем геотиф и выбираем Image -> Image Size...
    Снимаем флаг Resample Image и подбираем в окне Resolution такое значение dpi, чтобы в окне Width получилось ширина карты в сантиметрах, полученная ранее. В данном случае мы имеем карту со 172 dpi.



    Нам же нужно 300 dpi, поэтому снова ставим флаг Resample Image и вводим 300 dpi. Размеры картинки в пикселях соответственно изменились. Сохраняем ее, например, в bmp.



    Теперь восстановим привязку в map файле. Делать это придется вручную, иной способ мне не известен. Можно, конечно, перемасштабировать карту в программе MapEdit, но она ухудшает качество изображения и ей лучше не пользоваться для этих целей.

    Редактируем map файл любым текстовым редактором, например, Блокнотом или WordPad-ом:



    На самом деле это не сложно, т.к. точек привязки карты в прямоугольной проекции всего две, поэтому изменить нужно только два значения - это общие размеры картинки, отмеченные стрелками. Повторить замену нужно для каждого встречающегося значения.
    Если быть до конца точным, то я не знаю, ведется ли отсчет от 0 или от 1, но при таких размерах картинки 1 пиксель не имеет значения и на привязке карты никак не отразится.
    В третьей строке map файла перед именем файла убираем путь и меняем расширение на bmp.

    ---------- Добавлено в 12:13 ---------- Предыдущее сообщение было в 12:05 ----------

    4. Уточнение привязки
    Вернемся к процедуре уточнения привязки. Поставим в Ози несколько путевых точек (4-5) в разных частях карты. в таких местах, которые хорошо заметны как на поворотах треков, так и на самой карте.



    Если треков мало или они сосредоточены в одной области на карте, то процедуру уточнения привязки карты придется отложить до лучших времен, а пока пользоваться тем, что имеем.

    Теперь выполним саму процедуру уточнения привязки карты, используя команду File -> Check Calibration of Map.



    Возле первой путевой точки ставим первую точку привязки карты.



    Жмем кнопку "Wp" в окне Ози справа вверху.



    В открывшемся окне выбираем нужную путевую точку и жмем "Use Wp".



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

    Снова смотрим, как ложатся треки.



    Если все устраивает, на этом заканчиваем уточнения привязки. Если нет, повторяем заново, выбрав другие путевые точки.


    5. Преобразование карт в формат Тритона.
    Если мы работаем с Тритоном, то конвертируем полученную карту в формат rmp с помощью программы TritonRMP.exe. Импортируем готовые карты, не забыв указать тип файлов "OZI map files (WGS8 only)(*.map)"



    Тритон одинаково успешно работает как с отдельными листами карт, так и сгруппированными по несколько. Лично мне удобнее объединять их по несколько штук в одном rmp файле. Программа TritonRMP довольно своенравна и не любит большие суммарные объемы картинок. Однако иногда ее можно "обмануть". Например, я считываю сначала три больших картинки, компилирую файл командой "Create RMP" и задаю имя "3" (т.е. число файлов в списке).



    Затем добавляю в список еще один файл и снова компилирую, задав новое имя. И так до тех пор, пока программа не рухнет или не возьмет все требуемые файлы. Конечному файлу даем подходящее имя. Он готов для загрузки в навигатор.

    P.S. При необходимости перед конвертацией карты в формат навигатора с ней можно выполнить дополнительные действия. Например, отредактировать ее в фотошопе, убрав несуществующие тропы/дороги или добавив надписи "сад.уч.", дорисовать бетонный забор вдоль закрытой территории и т.п. Добавленные на карту элементы нужно создавать каждый в отдельном слое, подписать этот слой, чтобы легче было ориентироваться при редактировании, например, "Сад.уч. Монино". Также можно все надписи сделать другим цветом, чтобы можно было отличить их от информации на исходной карте.
    Кроме того, на нее можно нанести свои треки для удобства пользования ей. Об этом пойдет речь дальше.

  3. #3

    По умолчанию

    II. Нанесение треков на карту

    Часто у нас возникает желание наложить готовые треки на карту, чтобы она стала более живой что ли. Это сделать достаточно не сложно.

    1. Подготовка треков

    Открываем в Ози карту, подготовленную для работы с навигатором, т.е. преобразованную в прямоугольную проекцию и, возможно, с уточненной привязкой по собственным трекам. Открываем также все необходимые треки.



    Эти треки будут выглядеть весьма запутано и их нужно привести в порядок.
    Во-первых, следует удалить несущественные части треков, ведь мы часто отклоняемся от маршрута в поисках направления. Это совсем незачем наносить на карту.
    Во-вторых, нужно убрать дублирующие друг друга треки или их части.
    В-третьих, удаляем части треков, где навигатор явно врал (такое иногда бывает, особенно в сырую погоду в лесу).
    В-четвертых, нам нужно оставить только те части треков, которые накладываются на выбранную нами карту и не выходят за ее пределы! Этот момент имеет принципиальное значение, т.к. он влияет на привязку карты.

    Выбираем отдельный трек и открываем список его путевых точек. Жмем кнопку "Select if not on Map". Это облегчает нам просмотре трека и нахождение точек на границе карты.



    Выбираем курсором строку сразу после границы "Yes" и "No" (или "No" и "Yes") и жмем кнопку, указанную стрелкой.



    В этом месте произойдет разрыв трека и число в колонке "Section" получит приращение 1. Так поступаем до конца трека и после этого жмем "Delete". Если не поставить точек разрыва, то вместо удаленных частей трека на границе карты появятся соединительные линии, что совсем нам не нужно.
    Очищенный трек сохраняем в отдельный каталог по имени карты, чтобы легче было разобраться. Исходный трек не трогаем! С ним мы повторим эту процедуру для каждой из карт, через которые он проходит.
    Для удобства работы, имеет смысл исходные треки наносить одним цветом (например, синим), а после очистки цвет изменить на другой (например, красный). Тогда легче будет разобраться, какие треки у нас уже обработаны, а какие нет.
    По мере появления новых треков их можно добавлять к уже имеющимся.


    2. Объединение треков и карты.

    Карта у нас есть, треки подготовлены. Теперь нужно нанести одно на другое. Делаем это в MapEdit.
    Открываем карту, накладываем на нее треки. Чтобы не было ненужных надписей на треках, снимаем флаг в соответствующей настройке.



    Следует отметить, что цвет и толщина линий треков будет такой, какими они были в Ози. Поэтому эти параметры каждого трека нужно настроить заранее и сохранить с ними треки.

    Теперь нужно выбрать масштаб для сохраняемой карты. MapEdit сохраняет данные именно в том мастшабе, в котором она выводится в данный момент на экран. Его нужно подобрать таким, чтобы максимально приблизиться к исходному размеру картинки.



    Сохраняем карту: Файл -> Экспорт -> OziExplorer map. Задаем новое имя файла, куда создается новая карта, чтобы не потерять исходные данные! Жмем кнопку "Полностью", чтобы сохранилась вся карта, а не часть ее.



    В данном случае получилось, что при 160 м размер картинки 7817х9279, при 170 м - 7357х8733, а исходный файл был 7394х8843. Более мелкий шаг масштаба MapEdit не допускает, поэтому выбираем 170 м, как наиболее близкий. Таким образом, мы получили карту bmp с нанесенными на нее треками, а также файл привязки map. Ее можно преобразовать в формат навигатора и в таком виде она будет видна на его экране.
    Последний раз редактировалось Арчи Кун; 17.01.2011 в 12:36.

  4. #4

    По умолчанию

    Цитата Сообщение от Арчи Кун Посмотреть сообщение
    Видим, что треки сместились чуть вправо и вниз, т.е. привязка карты стала хуже.
    Если сдвиг равномерен, то поправить привязку можно проще. Для этого создаем в директории OZI пустой текстовый документ, меняем его название и расширение на movemapcal.dat
    Затем нажимаем "карта", видим внизу списка инструмент "визуальная коррекция карты". И стрелками сдвигаем карту под трек.

  5. #5

    По умолчанию

    Как я понимаю, этот метод работает в самом Ози, а нам нужно откорректировать карту для дальнейшего ее использования без Ози. И потом, я еще не разобрался, является ли сдвиг всегда одинаковым или нет. Для другого квадрата ГШ сдвиг может оказаться другим.

    Кстати, сдвиг после преобразования в прямоугольные координаты дает именно GlobalMapper, а не общепризнанный алгоритм пересчета. Вначале я пользовался не GlobalMapper, а OziMapMerge - в нем тот же самый пересчет производится корректнее, чем в GlobalMapper, и никакой сдвиг не добавляется. Но OziMapMerge имеет весьма большое неудобство. Во-первых, изображение получается с сильными артефактами. Во-вторых, карта так и остается растянутой в ширину. По этой причине приходится сильно увеличивать "разрешение" карты при преобразовании в OziMapMerge, а затем преобразовывать ее до нужного масштаба и пропорций в ФШ. При этом все map файлы редактируются вручную, что крайне обременительно и чревато постоянными ошибками.

  6. #6

    По умолчанию

    К сожалению точно не помню, но там вроде сам файл привязки меняется. Все это делается визуально и достаточно наглядно. Карта просто попиксельно сдвигается. Похоже на твою корректировку привязки по точкам.
    Не утверждаю что это выход, но попробовать можно.
    Последний раз редактировалось Mihmich; 17.01.2011 в 14:29.

  7. #7
    Без 5-ти минут веломаньяк!
    Байк
    Стелс Навигатор 310
    Адрес
    Днепропетровск, Украина
    Сообщений
    26

    По умолчанию

    Для создания RMP файлов лучше использовать более новую и более корректно работающую программу RMPCreator - http://antalos.com/gps/rmp-creator.php
    Программа может конвертировать GeoTiff непосредственно после GlobalMapper. Можно задавать имя провайдера и группу (продукт). Карты нормально работают на Эксплорист и Тритон.
    Отсутствуют черные полосы и сдвиги на границах крупномасштабных карт.
    Размер карты практически не ограничен.

  8. #8

    По умолчанию

    А почему бы не добавить треки на карту в том-же GlobalMapper?
    11.jpg

    12.jpg

    13.jpg
    результат в OZI
    14.jpg

  9. #9

    По умолчанию

    В данный момент на сайте SAS.Планета проходит тестирование и доработка возможности создания растровых карт формата .rmp прямо в этой бесплатной программе.
    Нужно провести тест как работает созданная в SAS.Планете .rmp-карта на разных масштабах прибора.
    Если у кого есть желание помочь, то тестовый .rmp-файл здеся так или тут.

    Просто нужны скрины с масштабов: 3,2 км; 2,4 км; 1,6 км ; 1,6 км; 1,2 км ; 800м; 400м; 240м; 150м; 90м.
    Так же в случае чего-либо нестандартного, неясного, интересного или неинтересного то при возможности сделать и скрин этой ситуации.
    Скрины можна выложить в этой ветке, на любой файлообменник или в соответствующей теме форума SAS.Планета (там естественно нужна регистрация).
    У кого есть навигатор, желание и время можете помочь.

+ Ответить

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Метки этой темы