ХТ -туристический форум Украины и велофорум Харькова
http://xt.ht/phpbb/

создание карт для Magellan eXplorist 310, 510, 610, 710,
http://xt.ht/phpbb/viewtopic.php?f=118&t=54894
Страница 50 из 62

Автор:  ed.ua [ 22.04.2016 08:04 ]
Заголовок сообщения:  Re: создание карт для Magellan eXplorist 310, 510, 610, 710,

Аналогично из ф-лы Victor Pomortseff
Вложение:
CodeCogsEqn (9).gif
CodeCogsEqn (9).gif [ 1.24 КБ | Просмотров: 1756 ]
можна найти для скажем того же масштаба отображения Магеллана 240 м широту, при которой градусное разрешение (скажем по горизонтали) от калькулятора Victor Pomortseff равно градусному разрешению тайлов кеша САС для уровня скажем z16. Слепить в в САС rmp и в GM с данными от утилитки Victor Pomortseff.
Но поскольку девайс трансформирует тайлы так, чтобы метраж по горизонтали в картинке соответствовал метражу по вертикали,
то первым делом нужно поправить калькулятор так, чтобы соотношение горизонтального разрешения к вертикальному было более точным, чтоб девайс дополнительно не сжимал/растягивал уже имеющие в RMP тайлы.
Можно вообще по найденному горизонтальному разрешению и широте точно вычислять вертикальное разрешение (или сначала на этапе тестирования просто дополнительно- "вертикальное разрешение 2" ) .

Автор:  Victor Pomortseff [ 22.04.2016 09:49 ]
Заголовок сообщения:  Re: создание карт для Magellan eXplorist 310, 510, 610, 710,

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

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

Кстати, поправил ошибку с десятичной точкой.

Вложение:
MResCalc.zip [264.81 КБ]
Скачиваний: 111

Автор:  ed.ua [ 22.04.2016 10:12 ]
Заголовок сообщения:  Re: создание карт для Magellan eXplorist 310, 510, 610, 710,

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

Успел посмотреть в VP тестовые c z16 для 240м.
Несмотря, что красная сетка (границы тайлов SAS) в rmp, который сделан по данным с калькулятора не квадратная (см. соответствующий геотифф, 256х253),
но после попадания в VP она растянулась и стала квадратной (321x321)!!!
Скриншоты VP и соответствующий рабочий .psd прилагаю
Вложение:
VP_z16_SAS_Pom321x321_cat.zip [875.51 КБ]
Скачиваний: 98

Вложение:
22Pomor.png
22Pomor.png [ 576.93 КБ | Просмотров: 1742 ]

Вложение:
22SAS.png
22SAS.png [ 607.12 КБ | Просмотров: 1742 ]

Автор:  ed.ua [ 22.04.2016 10:33 ]
Заголовок сообщения:  Re: создание карт для Magellan eXplorist 310, 510, 610, 710,

Victor Pomortseff писал(а):
Весь вопрос в том, как считать разрешение так, чтобы оно совпало в метрах...
Явно, что где-то есть неточности (неточности округления в навигаторе, неточности измерения и т.п.)

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

Кстати, поправил ошибку с десятичной точкой.

Вложение:
MResCalc.zip

То есть у вас есть разрешение в град/пикс и широта а вам нужно для сфероида разрешение в м/пикс на єтой же широте?

Автор:  Victor Pomortseff [ 22.04.2016 11:21 ]
Заголовок сообщения:  Re: создание карт для Magellan eXplorist 310, 510, 610, 710,

ed.ua писал(а):
Victor Pomortseff писал(а):
Весь вопрос в том, как считать разрешение так, чтобы оно совпало в метрах...
Явно, что где-то есть неточности (неточности округления в навигаторе, неточности измерения и т.п.)

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

Кстати, поправил ошибку с десятичной точкой.

Вложение:
MResCalc.zip

То есть у вас есть разрешение в град/пикс и широта а вам нужно для сфероида разрешение в м/пикс на єтой же широте?


Да. Градусы на пиксель пересчитываются в метры на пиксель. Формула есть, но пихать ее в эксель неохота. Не сказать чтобы совсем простая.

Автор:  Victor Pomortseff [ 22.04.2016 13:18 ]
Заголовок сообщения:  Re: создание карт для Magellan eXplorist 310, 510, 610, 710,

Что-то не выходит ничего... Не понимаю как добиться чтобы разрешение в метрах было одинаковым по осям...

Автор:  Д. Засядько [ 22.04.2016 19:26 ]
Заголовок сообщения:  Re: создание карт для Magellan eXplorist 310, 510, 610, 710,

А я сейчас взял свою тестовую карту на 85 параллели, где у меня нарисованы вертикальные и горизонтальные километровые линии. Меряю в фотошопе длину линий на скриншоте навигатора - вертикальные совпадают с горизонтальными. Меряю по той же карте в ВантажПоинт - вертикальная короче горизонтальной. Хотя программный "измеритель" в ВантажПоинте пишет, что они одинаковые в километрах.
Тогда я беру этот "измеритель" и лезу поближе к полюсу. Рисую вертикальные и горизонтальные линии одинакового километража. Дык, они получаются очень разными в пикселях. :oops:

Я подозреваю, что разработчики Магеллана хотели, чтобы карта при увеличении превращалась из Geofraphic в Mercator, да чего-то там перемудрили.

Автор:  Victor Pomortseff [ 23.04.2016 11:11 ]
Заголовок сообщения:  Re: создание карт для Magellan eXplorist 310, 510, 610, 710,

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


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

Автор:  Д. Засядько [ 23.04.2016 13:16 ]
Заголовок сообщения:  Re: создание карт для Magellan eXplorist 310, 510, 610, 710,

А я сделал новую "серию" своих карт (кроме широты 85 градусов. Что-то тупит ГМ при экспорте). Там всё те же "уголочки" по 500м, 1км и 2км, но теперь при экспорте из ГлобалМаппера в GeoTIFF я выставлял разрешение в метрах на пиксель, посчитанное по моей формуле. Одинаковое по широте и по долготе. Просчитал так, чтобы карта была чётко видна на масштабе "400м". Закинул карты в навигатор и посмотрел результат. Получилась чёткая картинка на всех широтах (если чёткость оценивать по надписям, которые генерирует ГМ из векторных данных и глобалмапперовской масштабной линейки с подписями :-) ). Тем не менее, чёткость ещё пока не идеальная. На экваторе при ресайзинге навигатор "погрыз" цифру нолик, превратив его в скобочку :)
Завтра вечером постараюсь наделать скриншотов для новых замеров.

Автор:  ed.ua [ 23.04.2016 18:47 ]
Заголовок сообщения:  Re: создание карт для Magellan eXplorist 310, 510, 610, 710,

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

Если использовалась максимально точная формула, то наверное в ней забит эллипсоид .
Но судя по тому, что в VP расстояния между точками на широтах, отличных от экватора, совпадают с расстояниями между этими точками в SAS на картосервисах с EPSG:3785 (скажем OSM, Google ...) и не совпадают где EPSG:3395 (типа Яндекс) то предполагаю что и в приборах Магеллан используется сферическая модель Земли.
А по сему мое предложение
ed.ua писал(а):
Но поскольку девайс трансформирует тайлы так, чтобы метраж по горизонтали в картинке соответствовал метражу по вертикали, то первым делом нужно поправить калькулятор так, чтобы соотношение горизонтального разрешения к вертикальному было более точным, чтоб девайс дополнительно не сжимал/растягивал уже имеющие в RMP тайлы.
Можно вообще по найденному горизонтальному разрешению и широте точно вычислять вертикальное разрешение (или сначала на этапе тестирования просто дополнительно- "вертикальное разрешение 2" ) .
нужно понимать так:
-вертикальное разрешение 2 (градусное или там секундное) будет равно найденному по вашей формуле горизонтальному разрешению умноженному на косинус широты.

Не проверял, но думаю что моя "красная сетка" после экспорта GM в геотифф с таким соотношением градусных разрешений останется с квадратными ячеями.
Разрешение в м/пикс из тоже без проблем.
Скажем по горизонтали зная град/пикс узнаем количество пикселов в 360 градусах.
Имея количество пикселов для 360 градусов и зная длину окружности на широте тупо вычисляем м/пикс горизонтальное.
Как то так, остальное - точность вашей ф-лы...

Автор:  Victor Pomortseff [ 23.04.2016 19:33 ]
Заголовок сообщения:  Re: создание карт для Magellan eXplorist 310, 510, 610, 710,

ed.ua писал(а):
-вертикальное разрешение 2 (градусное или там секундное) будет равно найденному по вашей формуле горизонтальному разрешению умноженному на косинус широты.


Ну это легко проверить. Данные по вертикальному и горизонтальному разрешениям для широт от 0 до 85 градусов у меня есть. Надо посмотреть насколько велика невязка arccos(Ry/Rx) и реальной широты.

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

Это характерно для меркатора (OSM), но для магеллана не прокатило.

Хотя тот фвкт, что на экваторе разрешения в градусах одинаковые моими измерениями подтверждается.

Автор:  ed.ua [ 23.04.2016 20:17 ]
Заголовок сообщения:  Re: создание карт для Magellan eXplorist 310, 510, 610, 710,

Victor Pomortseff писал(а):
ed.ua писал(а):
-вертикальное разрешение 2 (градусное или там секундное) будет равно найденному по вашей формуле горизонтальному разрешению умноженному на косинус широты.


Ну это легко проверить. Данные по вертикальному и горизонтальному разрешениям для широт от 0 до 85 градусов у меня есть. Надо посмотреть насколько велика невязка arccos(Ry/Rx) и реальной широты.

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

Это характерно для меркатора (OSM), но для магеллана не прокатило.

Хотя тот фвкт, что на экваторе разрешения в градусах одинаковые моими измерениями подтверждается.

Для магеллана "не прокатило" трансформация магелланом разрешения исходника для отображения его на дисплее.
А для скажем Google картосервиса разрешение на произвольной широте есть разрешение на экваторе на косинус широты это изначальная истина

Автор:  Victor Pomortseff [ 23.04.2016 20:47 ]
Заголовок сообщения:  Re: создание карт для Magellan eXplorist 310, 510, 610, 710,

ed.ua писал(а):
Victor Pomortseff писал(а):
ed.ua писал(а):
-вертикальное разрешение 2 (градусное или там секундное) будет равно найденному по вашей формуле горизонтальному разрешению умноженному на косинус широты.


Ну это легко проверить. Данные по вертикальному и горизонтальному разрешениям для широт от 0 до 85 градусов у меня есть. Надо посмотреть насколько велика невязка arccos(Ry/Rx) и реальной широты.

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

Это характерно для меркатора (OSM), но для магеллана не прокатило.

Хотя тот фвкт, что на экваторе разрешения в градусах одинаковые моими измерениями подтверждается.

Для магеллана "не прокатило" трансформация магелланом разрешения исходника для отображения его на дисплее.
А для скажем Google картосервиса разрешение на произвольной широте есть разрешение на экваторе на косинус широты это изначальная истина


Так это понятно. Разрешение ОСМ карт (меркатор) так и считается - есть заранее просчитанные значения разрешений разных уровней для экватора, а для нужной широты получается умножением на косинус.

Автор:  ed.ua [ 24.04.2016 11:32 ]
Заголовок сообщения:  Re: создание карт для Magellan eXplorist 310, 510, 610, 710,

Ну вот, далее, что мы имеем в Магеллане, мое вИдение.
Если немножко пофилософствовать то как бы там не было но:
1) Изначально появились карты!
2)А потом уже GPS навигация и навигатор Магеллан.
Вложение:
ConstellationGPS.gif
ConstellationGPS.gif [ 485.5 КБ | Просмотров: 1675 ]

3) А после уже для нас смертных пользователей с некоторых пор эти растровые карты навигаторы Магеллан начал поддерживать, причем для удобства тех же пользователей, скажем в туристических навигаторах, растр показывается в том же виде, к которому мы привыкли.

Вот даже мерная линейка на дисплее там не в градусах/минутах/секундах а в m/km и т.п.
То есть по истории развития вопроса ясно и задумка производителя понятна.

По факту.
На входе в прибор имеем тайловые наборы-контейнера, и в описании .tlm отдельно взятого контейнера .a00 (как мне объясняли) забиты координаты углов набора (матрицы) тайлов и значения ширины и высоты тайла в градусах. Эти два параметра являются общими для всех тайлов, отдельно взятого контейнера.
То есть мы с вами знаем что на входе в прибор имеем градусы, причем не обязательно в формате классической географической проекции ,может быть и Equirectangular projection.
Причем в связи с этим исходник может иметь вид такой:
все легко проверяется, смотрим соответствующий геотифф или в конце концов разбираем контейнер и лепим мозаику в фотошопе или просто открываем rmp в MAPC2MAPCNET и смотрим (вкладка view)

Вложение:
z5555__.png
z5555__.png [ 331.2 КБ | Просмотров: 1675 ]

или такой:
Вложение:
z5555_I.png
z5555_I.png [ 359.42 КБ | Просмотров: 1675 ]

или очень "правильный" такой:
Вложение:
Z16_berlin4x4SASmerc555.png
Z16_berlin4x4SASmerc555.png [ 478.46 КБ | Просмотров: 1675 ]


Но какой бы там не был rmp, какие бы там не были тайлы, на выходе, читай на дисплее, имеем картинку равенства (насколько это вообще возможно) высоты и ширины в "метры на метры"
Заметьте, не ужатую (см. верхний исходник) , не растянутую(см.средний исходник) а нормальную для восприятия, как и есть в исходном меркаторе!
То есть на выходе метры, мерный отрезок (будь он в магеллане не ладен) в метрах, и практически (см. формулу Д. Засядько ) главная тенденция подчиняется Меркатору.
Плюс добавте сюда часть первую "Если немножко пофилософствовать..." и если кто смотрел-сравнивал мои тестовые rmp, где тайлы кеша SAS меркатор и тайлы с RMP идут 1 к 1 ...
По вопросу качества картинки.
Кто нибуть смотрел внимательно как это происходит в VP?
Я ранее выкладывал скрин с VP с комментарием на скрине "А) Улучшается изображение"
Вложение:
Кордон_6700.gif
Кордон_6700.gif [ 183.18 КБ | Просмотров: 1675 ]

Поскольку техника тонкого зуммирования в VP как минимум одним форумчанином освоена можно посмотреть и увидеть а потом и обсудить
Вложение:
Q0.png
Q0.png [ 760.22 КБ | Просмотров: 1675 ]

Вложение:
Q1.png
Q1.png [ 564 КБ | Просмотров: 1675 ]

Автор:  Victor Pomortseff [ 24.04.2016 13:21 ]
Заголовок сообщения:  Re: создание карт для Magellan eXplorist 310, 510, 610, 710,

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

Т.е.

Вложение:
CodeCogsEqn (1).gif
CodeCogsEqn (1).gif [ 584 байт | Просмотров: 1668 ]


2. Зависимость разрешения от масштаба при фиксированной широте линейна:

Вложение:
CodeCogsEqn (2).gif
CodeCogsEqn (2).gif [ 522 байт | Просмотров: 1668 ]


3. Если сделать подстановку

Вложение:
CodeCogsEqn (3).gif
CodeCogsEqn (3).gif [ 589 байт | Просмотров: 1668 ]


То зависимость коэффициента K от х также будет линейна:

Вложение:
CodeCogsEqn (4).gif
CodeCogsEqn (4).gif [ 554 байт | Просмотров: 1668 ]


Итого имеем:

Вложение:
CodeCogsEqn (5).gif
CodeCogsEqn (5).gif [ 1.11 КБ | Просмотров: 1668 ]


где:

a = -0.6211754259,
b = 0.522068947

Вложение:
CodeCogsEqn (6).gif
CodeCogsEqn (6).gif [ 590 байт | Просмотров: 1668 ]


Вот версия калькулятора, который реализует эти формулы:

Вложение:
MResCalc.zip [264.14 КБ]
Скачиваний: 107


Можно попробовать заняться нелинейной оптимизацией для более точного подбора коэффициентов a и b, обеспечивающих минимальное расхождение разрешений в метрах во всем диапазоне значений широты.

Страница 50 из 62 Часовой пояс: UTC + 2 часа [ Летнее время ]
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/