Я пытаюсь вычислить высоту и азимут ряда спутников и нарисовать график неба с помощью Matlab. Я занимался программированием высоты и азимута и надеюсь, что это правильно. Не могли бы вы проверить мою программу ниже и помочь в том, как нарисовать участок неба?.
Это ниже информация, которую я имею о нескольких спутниках, и код, который я делаю для вычисления высоты и азимута. Мне нужно проверить, что я сделал хорошо? и Как я могу нарисовать участок неба?.
Это мои данные
Номер спутника [G16, G18, G21, G22, G24, G29, G30, G31]
Спутниковая позиция X [5987425.927, -15277102.02, -6942792.951, -7699617.757, -15640450.64, -21462733.01, -17122561.46,8435940.256]
Спутниковая позиция Y [16538651.08,21684902.45,16455440.33,23612702.05,2030375.457,8305358.847,18316014.7,24392808.82]
Спутниковая позиция Z [19902033.22,1357326.261,19659178.13, -9413998.269,21371033.07,13260440.47, -8764055.544, -6268410.067]
Положение приемника Координаты ECEF -2.874047126175781e + 06, 4.689853290990270e + 06, 3.218249511787930e + 06
Это ниже моего кода:
clear;
clc;
skyData=load('skyData.mat');
satellites = {'G16', 'G18', 'G21', 'G22', 'G24', 'G29', 'G30', 'G31'};
numberofSatellites = length(satellites);
x=skyData.satellitePositions(1:end,1);
y=skyData.satellitePositions(1:end,2);
z=skyData.satellitePositions(1:end,3);
lat0 = skyData.ECEFcoordinates(1);
lon0 = skyData.ECEFcoordinates(2);
alt0 = skyData.ECEFcoordinates(3);
[az, el, slantRange] = ecef2aer(x, y, z, lat0, lon0, alt0, referenceEllipsoid('WGS 84'), 'degrees')
Я надеюсь получить помощь в рисовании сюжета неба