Рисование кругов покрытия наземной станции

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

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

У меня также есть уравнение для расчета наклонной дальности (максимальное расстояние между спутником и наземной станцией при минимальной высоте).

Вот что я делаю в настоящее время:

  1. Преобразование широты, долготы и Re наземных станций (сферические координаты) в x1, y1, z1 (декартовы координаты)

  2. Преобразование высоты, азимута и наклонного диапазона (сферические координаты) в x2, y2, z2 (декартовы координаты) в центрированной системе отсчета наземной станции

  3. Переведите x2,y2,z2 из части 2 в центрированную на Земле (x2+x1, y2+y1, z2+z1), назовем их x3, y3, z3

  4. Поверните x3, y3, z3, чтобы выровнять систему отсчета с центром на Земле, скажем, x4, y4, z4

  5. Преобразуйте x4, y4, z4 в сферические координаты, а затем нанесите на график широту и долготу, которые я нашел.

На мой взгляд, приведенное выше должно дать мне правильные точки для построения графика, однако где-то есть ошибка. Я знаю, что шаг 1 правильный (величина вектора Re). Я знаю, что шаг 2 правильный, поскольку величина вектора - это наклонный диапазон. Но вот тут я столкнулся с проблемой... Хотя понятия не имею, в чем проблема.

Почему вы используете Меркатор?
Просто выбранная мной картографическая проекция. Нет причин, кроме прихоти.
Какие именно ошибки вы получаете? Вы учитываете бугристость Земли?

Ответы (1)

Вот как бы я это решил:

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

θ знак равно Длинная
ф знак равно 90 лат.
Все углы в градусах.

  1. Преобразование высоты и азимута спутника в абсолютные углы θ а также ф . Это будет зависеть как от положения спутника в небе, так и от местоположения наземной станции.
    ф спутник знак равно ф станция ( 90 Высота ) потому что ( 2 π 360 Азим )
    θ спутник знак равно θ станция + ( 90 Высота ) грех ( 2 π 360 Азим )
  2. Преобразование вектора между центром Земли и наземной станцией и вектора между станцией и спутником в декартовы координаты
    Икс знак равно Диапазон потому что ( 2 π 360 θ ) грех ( 2 π 360 ф )
    у знак равно Диапазон грех ( 2 π 360 θ ) грех ( 2 π 360 ф )
    г знак равно Диапазон потому что ( 2 π 360 ф )
    Для вектора от центра земли к наземной станции Диапазон это радиус Земли.
  3. Сложите два вектора вместе, преобразуйте обратно в сферические координаты и нарисуйте их.
    р знак равно Икс 2 + у 2 + г 2
    θ знак равно 360 2 π загар 1 ( у / Икс )
    ф знак равно 360 2 π потому что 1 ( г / р )

Наслаждаться!

Пожалуйста, прокомментируйте, если я сделал какие-либо ошибки
Спасибо за ответ. Я думаю, что есть несколько ошибок (в пункте 1 у вас есть два уравнения для фи, одно должно быть для тета); даже с исправлением этого мои наземные треки не совсем работают!
@SamHallerman Как нарисовать покрытие на плоской карте, ведь это не всегда круг?