Отображение местоположения спутников GPS на SkyPlot

Я проанализировал эфемеридные данные, чтобы получить видимые над моим текущим местоположением местоположения спутников ECEF (или широта / долгота). Я хотел бы отобразить эти места на графике неба в моей программе на C#.
Я добавил графическую рамку в свой графический интерфейс и попытался масштабировать отображаемые значения x/y, но я не верю, что отображаемые местоположения относятся к моему текущему местоположению.
У кого-нибудь есть примеры или пример кода о том, как это сделать?
Я делаю это в C# winform.

private const double CENTER = 110;    //center of drawing (pixels)
private double SCALE_FACTOR = 89.0 / 90.0;  //pixels from 90deg to 0 on drawing
.
.
.
private void drawSatellitePos(int svPrn, double elevation, double azimuth)  //radians
{
    double r = 90.0 - ConvertRadiansToDeg(elevation);
    double theta = 90.0 - ConvertRadiansToDeg(azimuth);
    theta = ConvertDegToRadians(theta);             

    double xLocation = CENTER + SCALE_FACTOR * r * Math.Cos(theta);
    double yLocation = CENTER + SCALE_FACTOR * r * Math.Sin(theta);

    Console.WriteLine("{0}:  x: {1}   Y: {2}", svPrn, xLocation, yLocation);

    Point point = new Point((int)xLocation, (int)yLocation);
}

1 ответ

Решение

TS Kelso из celestrak.com имеет превосходную серию статей о спутниковом слежении и орбитальных системах координат. В этой статье объясняется, как преобразовать спутниковые координаты в специфические для местности (топоцентрические) координаты. (Вам, вероятно, потребуется преобразовать свои эфемериды из координат ECEF (широта / долгота, вращение вместе с землей) в ECI (координаты инерции, фиксированные относительно звезд), чтобы использовать формулы Келсо.

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

Другие вопросы по тегам