Проблема с азимутом

Вопросы общего характера по ГИС и дистанционному зондированию, не связанные с конкретным ПО.
Ответить
Asashok
Новоприбывший
Сообщения: 2
Зарегистрирован: 20 авг 2012, 19:42
Репутация: 0

Проблема с азимутом

Сообщение Asashok » 20 авг 2012, 19:51

Здравствуйте, у меня вот такая проблема:
имеется собственная программка, которая рисует трэк из файла формата *.nmea. Трэк представляет собой полет самолета - рисует его программа строго на север. А вот в программе OziExplorer рисует чуть по-другому: где-то градуса на два повернуто вправо. В своей проге я перевожу из широты, долготы на WGS84 в СК42, а затем в плоскостные координаты проекции Гаусса-Крюгера и по ним рисую относительно любой заданной мной точки. Что я делаю не так, почему отображается некорректно?

Александр Мурый
Гуру
Сообщения: 5173
Зарегистрирован: 26 сен 2009, 16:26
Репутация: 792
Ваше звание: званий не имею
Откуда: Москва

Re: Проблема с азимутом

Сообщение Александр Мурый » 20 авг 2012, 22:34

Asashok писал(а):Здравствуйте, у меня вот такая проблема:
имеется собственная программка...
Иногда это действительно проблема.
Asashok писал(а): Что я делаю не так, почему отображается некорректно?
Поясните подробнее, что значит "отображается некорректно", пока не очень понятно.
Редактор материалов, модератор форума

Аватара пользователя
paleogis
Модератор
Сообщения: 1112
Зарегистрирован: 22 мар 2009, 08:54
Репутация: 200
Ваше звание: Модератоо

Re: Проблема с азимутом

Сообщение paleogis » 21 авг 2012, 08:34

Asashok писал(а): где-то градуса на два повернуто вправо.
Наверное Вы имели ввиду на восток?
Если Вы хотите чтобы участники форума могли разобраться в Вашей проблеме, то подробное описание, исходные данные, скриншоты в студию :D

ericsson
Гуру
Сообщения: 3321
Зарегистрирован: 27 июл 2009, 19:26
Репутация: 748
Ваше звание: Вредитель полей

Re: Проблема с азимутом

Сообщение ericsson » 21 авг 2012, 10:07

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

В географической "проекции" линии, идущие с юга на север, всегда направлены вверх и параллельны друг другу.

В поперечной проекции Меркатора, частным случаем которой является проекция Гаусса-Крюгера, линии, идущие с юга на север, направлены строго вверх только в двух случаях: если они находятся на центральном меридиане зоны (или очень близко к нему) или на экваторе (или очень близко к нему).

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

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

Выбросьте OZI и возьмите GlobalMapper - все равно ни за одну программу ведь платить не собираетесь, наверняка. А так хоть программа будет нормальной.

Аватара пользователя
paleogis
Модератор
Сообщения: 1112
Зарегистрирован: 22 мар 2009, 08:54
Репутация: 200
Ваше звание: Модератоо

Re: Проблема с азимутом

Сообщение paleogis » 21 авг 2012, 12:10

Подтверждаю GlobalMapper вполне адекватная прога :D

Asashok
Новоприбывший
Сообщения: 2
Зарегистрирован: 20 авг 2012, 19:42
Репутация: 0

Re: Проблема с азимутом

Сообщение Asashok » 23 авг 2012, 16:49

Спасибо всем за ответы, проблема решилась. Вместо формулы преобразования в x,y на проекции Гаусса-Крюгера воспользовался другой:
W = sqrt(1-(e*sinB)^2); e^2 = f(2-f); f~1/300;
dX = a*(1-e^2)/W^3*dB
dY = a*cosB/W*dL.
Теперь все отображается так, как нужно.

Ответить

Вернуться в «Общие вопросы»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость