No BSD License  

Highlights from
Skyplot1001

image thumbnail
from Skyplot1001 by Markus Penzkofer
Virtual Planetarium showing stars, the planets, the sun and the moon.

pickrd
function pickrd

% function pickrd
%
% Pick and display of rectascension and declination as well as
% other information about stars, planets, the Sun and the Moon
%
% 05.05.04 M.Penzkofer

% globale variables: 
global anz_fk5 anz_ppm num recall decall mag rec dec az h
global T recP decP recM decM azP hP azM hM

% constants
rho = pi/180;


% Pick coordinates
[xG(1) yG(1)] = ginput(1);

% check for Sun, Moon and Planets
xI = ones(size([azP azM]))*xG;
yI = ones(size([hP hM]))*yG;
dsG = sqrt((xI(:,1)-[azP azM]).^2+(yI(:,1)-[hP hM]).^2);
smin = min(dsG);

if (smin < 2.0)
	indK = find(dsG==smin);
	indK = indK(1);
   
   % Sun, Moon and Planets
   if (indK ~= 10)
   	planetenStr = str2mat('Merkury','Venus','SUN','Mars','Jove','Saturn','Uranus','Neptune','Pluto');
   	NameStr = planetenStr(indK,:);
   	RecStr = num2str(alt2gms(recP(indK)/15.0));
      DecStr = num2str(alt2gms(decP(indK)));
   else
      NameStr = 'MOON';
      RecStr = num2str(alt2gms(recM/15.0));
      DecStr = num2str(alt2gms(decM));
   end
   
   if (indK ~= 10)
      % physical ephemeris
      [Mag,WD,Phi,PosAX,PosSUN] = physsub(indK,T);
      if (indK ~= 3)
         % Planets
      	MagStr = num2str(Mag,'%3.1f');
         WDStr = num2str(WD,'%4.2f');
         k = (1+cos(Phi*rho))/2;
         kStr = num2str(k,'%4.2f');
      else
         % Sun
      	MagStr = '-26.0';
      	WDStr = num2str(alt2gms(WD));
         kStr = '   ---   ';         
      end
   else
      % Moon
      [WD,Phi,k,stadium,mag]=physmoon(T);
      if (stadium == +1)
         signElStr = 'waxing';
      elseif (stadium == -1)
         signElStr = 'waning';
      else
         signElStr = '';
      end
      MagStr = num2str(mag,'%4.1f');   
      WDStr = num2str(alt2gms(WD));
      kStr = [num2str(k,'%4.2f') ' ' signElStr];
   end
      
   % display window
	figure('NumberTitle','off','Name','Pick Planet', ...
	 'Units','normalized','Position',[0.25 0.60 0.50 0.30]);
	uicontrol('Style','Text','String',' Name ', ...
	 'HorizontalAlignment','left',...
	 'Units','normalized','Position',[0.05 0.85 0.55 0.10])
	uicontrol('Style','Text','String',' Rectascension (hms): curr ', ...
	 'HorizontalAlignment','left',...
	 'Units','normalized','Position',[0.05 0.69 0.55 0.10])
	uicontrol('Style','Text','String',' Declination   (dms): curr ', ...
	 'HorizontalAlignment','left',...
	 'Units','normalized','Position',[0.05 0.53 0.55 0.10])
	uicontrol('Style','Text','String',' Magnitude ', ...
	 'HorizontalAlignment','left',...
	 'Units','normalized','Position',[0.05 0.37 0.55 0.10])
	uicontrol('Style','Text','String',' Diameter (")/(dms)  |  Phase (%)', ...
	 'HorizontalAlignment','left',...
	 'Units','normalized','Position',[0.05 0.21 0.55 0.10])
	uicontrol('Style','Text','String',NameStr, ...
	 'HorizontalAlignment','left',...
	 'Units','normalized','Position',[0.60 0.85 0.35 0.10])
	uicontrol('Style','Text','String',RecStr, ...
	 'HorizontalAlignment','left',...
	 'Units','normalized','Position',[0.60 0.69 0.35 0.10])
	uicontrol('Style','Text','String',DecStr, ...
	 'HorizontalAlignment','left',...
	 'Units','normalized','Position',[0.60 0.53 0.35 0.10])
	uicontrol('Style','Text','String',MagStr, ...
	 'HorizontalAlignment','left',...
	 'Units','normalized','Position',[0.60 0.37 0.35 0.10])
	uicontrol('Style','Text','String',[WDStr '  |  ' kStr], ...
	 'HorizontalAlignment','left',...
	 'Units','normalized','Position',[0.60 0.21 0.35 0.10])
	uicontrol('Style','Pushbutton','String','OK', ...
	 'Callback','close',...
	 'Units','normalized','Position',[0.75 0.05 0.20 0.10])

else
   
	% Stars
	xI = ones(size(az))*xG;
	yI = ones(size(h))*yG;
	dsG = sqrt((xI(:,1)-az).^2+(yI(:,1)-h).^2);
	smin = min(dsG);   
	indK = find(dsG==smin);
	indK = indK(1);
	if (indK <= anz_fk5)
   	katalog = 'FK5';
	else
   	katalog = 'PPM';
	end
	numStr = [katalog ': ' num2str(num(indK))];
	recStr = [num2str(recall(indK,1)) ':' num2str(recall(indK,2)) ':' num2str(recall(indK,3))];
	decStr = [num2str(decall(indK,1)) ':' num2str(decall(indK,2)) ':' num2str(decall(indK,3))];
	rcuStr = num2str(alt2gms(rec(indK)/15.0));
	dcuStr = num2str(alt2gms(dec(indK)));
	magStr = num2str(mag(indK));
	pmrStr = num2str(recall(indK,4));
	pmdStr = num2str(decall(indK,4));

	% display window
	figure('NumberTitle','off','Name','Pick Star', ...
	 'Units','normalized','Position',[0.25 0.60 0.50 0.30]);
	uicontrol('Style','Text','String',' Katalogue / Number ', ...
	 'HorizontalAlignment','left',...
	 'Units','normalized','Position',[0.05 0.85 0.55 0.10])
	uicontrol('Style','Text','String',' Rectascension (hms): J2000 / curr ', ...
	 'HorizontalAlignment','left',...
	 'Units','normalized','Position',[0.05 0.69 0.55 0.10])
	uicontrol('Style','Text','String',' Declination   (dms): J2000 / curr ', ...
	 'HorizontalAlignment','left',...
	 'Units','normalized','Position',[0.05 0.53 0.55 0.10])
	uicontrol('Style','Text','String',' Magnitude ', ...
	 'HorizontalAlignment','left',...
	 'Units','normalized','Position',[0.05 0.37 0.55 0.10])
	uicontrol('Style','Text','String',' Proper Motion: Rec. (sec/cy)  |  Dec. ("/cy) ', ...
	 'HorizontalAlignment','left',...
	 'Units','normalized','Position',[0.05 0.21 0.55 0.10])
	uicontrol('Style','Text','String',numStr, ...
	 'HorizontalAlignment','left',...
	 'Units','normalized','Position',[0.60 0.85 0.35 0.10])
	uicontrol('Style','Text','String',recStr, ...
	 'HorizontalAlignment','left',...
	 'Units','normalized','Position',[0.60 0.69 0.15 0.10])
	uicontrol('Style','Text','String',rcuStr, ...
	 'HorizontalAlignment','left',...
	 'Units','normalized','Position',[0.75 0.69 0.20 0.10])
	uicontrol('Style','Text','String',decStr, ...
	 'HorizontalAlignment','left',...
	 'Units','normalized','Position',[0.60 0.53 0.15 0.10])
	uicontrol('Style','Text','String',dcuStr, ...
	 'HorizontalAlignment','left',...
	 'Units','normalized','Position',[0.75 0.53 0.20 0.10])
	uicontrol('Style','Text','String',magStr, ...
	 'HorizontalAlignment','left',...
	 'Units','normalized','Position',[0.60 0.37 0.35 0.10])
	uicontrol('Style','Text','String',[pmrStr '  |  ' pmdStr], ...
	 'HorizontalAlignment','left',...
	 'Units','normalized','Position',[0.60 0.21 0.35 0.10])
	uicontrol('Style','Pushbutton','String','OK', ...
	 'Callback','close',...
	 'Units','normalized','Position',[0.75 0.05 0.20 0.10])

end

Contact us at files@mathworks.com