With Azimuth and Elevation of a satellite, how to plot the location of the satellite marked with a blue X in the picture?

7 views (last 30 days)
Using elevation and azimuth data (which are in degrees), how to plot the location of the satellite marked with a cross? The human in the middle of the plot marks the receiver.

Answers (1)

darova
darova on 10 Oct 2019
Just use built-in function sph2cart
[X,Y,Z] = sph2cart(az,el,r);
plot3(0,0,0,'^r') % human
hold on
plot3(X,Y,Z,'xb') % blue cross
hold off
  2 Comments
Samantha Sim
Samantha Sim on 10 Oct 2019
Thank you for helping with my queries. May I check how to use this? So for example, my azimuth is 108 degrees and elevation is 20.4 degrees. So I used deg2rad() to convert those two parameters to radians and store it in az and el respectively. Then, what do I do with r?
az = deg2rad(108);
el = deg2rad(20.5);
r = 1; %I'm not sure what values to put into this variable
[X,Y,Z] = sph2cart(az,el,r);
plot3(0,0,0,'^r') % human
hold on
plot3(X,Y,Z,'xb') % blue cross
hold off
I ran the program above and I got the figure belowCapture.JPG
Also, do you know how to label the N,E,S,W and plot the axis on the x,y surface such that the center of that surface is where the human will be? Thank you so much
darova
darova on 10 Oct 2019
Some examples
t = linspace(0,2*pi,40);
r = linspace(0,1,10);
[T,R] = meshgrid(t,r);
[X,Y] = pol2cart(T,R);
h = surf(X,Y,X*0); % flat surface
hold on
set(h,'FaceColor','g')
set(h,'EdgeColor',[1 1 1]/2)
p = linspace(0,pi/2,20);
[T,P] = meshgrid(t,p);
[X,Y,Z] = sph2cart(T,P,1);
h = surf(X,Y,Z); % half of a sphere
set(h,'FaceColor','none')
set(h,'EdgeColor',[1 1 1]/1.2)
text(1.2,0,'N') % north?
text(0,-1.2,'E') % easth?
hold off
axis equal
xlim([-1 1]*1.5)
ylim([-1 1]*1.5)
You can draw arc using plot3()

Sign in to comment.

Categories

Find more on Line Plots in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!