Отображение местоположения спутников GPS на SkyPlot - PullRequest
2 голосов
/ 25 августа 2011

Я проанализировал данные эфемерид, чтобы получить видимые над моим текущим местоположением местоположения спутников 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 Ответ

3 голосов
/ 25 августа 2011

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...