Conversión de coordenadas ecuatoriales a coordenadas horizontales

De Wikipedia, la enciclopedia libre

Se trata de convertir coordenadas celestes desde coordenadas ecuatoriales a coordenadas horizontales pasando a través de las Coordenadas horarias.

El sistema de coordenadas ecuatoriales no es un Sistema de coordenadas local por lo que las coordenadas ascensión recta y declinación no cambian para los distintos observadores, las Coordenadas horizontales es un Sistema local por lo que las coordenadas altura y acimut cambian para los distintos observadores.

Applet en Java-Script[editar]

Un script de JavaScript[1] que hace esto es:

<SCRIPT LANGUAGE="JavaScript">
<!-- hide this script tag's contents from old browsers
function compute(form) {
    AH=eval(form.arh.value)
    AM=eval(form.arm.value)
    AS=eval(form.ars.value)
    DG=eval(form.dcg.value)
    DM=eval(form.dcm.value)
    DS=eval(form.dcs.value)
    DD=eval(form.nday.value)
    MN=eval(form.nmonth.value)
    YR=eval(form.nyear.value)
    TH=eval(form.th.value)
    TM=eval(form.tm.value)
    TS=eval(form.ts.value)
    LG=eval(form.lg.value)
    LM=eval(form.lm.value)
    LS=eval(form.ls.value)
    BG=eval(form.bg.value)
    BM=eval(form.bm.value)
    BS=eval(form.bs.value)
    with (Math) { 
	<!--Datos entrada-->
	RA=AH+AM/60+AS/3600
	<!--Declinación-->
        DC=DG+DM/60+DS/3600
	<!--latitud-->
	LT=BG+BM/60+BS/3600
	<!--longitud-->
	LG=LG+LM/60+LS/3600
	<!--fecha juliana-->
	HR = TH + TM / 60+TS/3600;
	DD=DD+HR/24
	DY = floor(DD)
	if (MN<3) {
		YR = YR - 1;
		MN = MN + 12;
		}
	if (YR + MN / 100 + DY / 10000 >= 1582.1015)  {
		GR =2-floor(YR/100)+floor(floor(YR/100)/4)
		} else {
			GR = 0
			}
	JD=floor(365.25* YR)+floor(30.6001*(MN+1))+DY+1720994.5+GR  
	T=(JD- 2415020)/36525
	SS= 6.6460656 + 2400.051*T +0.00002581*T*T
	<!--tiempo sidereo a 0h Greenwich-->
	ST =(SS/24-floor(SS/24))*24
	<!--Tiempo sidereo local-->
	SA=ST+(DD-floor(DD))*24*1.002737908
	SA=SA+LG/15
	if (SA<0) {
		SA=SA+24
		}
	if (SA>24) {
		SA=SA-24
		}
        <!--conversion a hms del Tiempo sidereo local-->
	TSH=floor(SA);
	TSM=floor((SA - floor(SA)) * 60)
	TSS=((SA -floor(SA)) * 60 - TSM) * 60
	<!--Angulo horario-->
        H=SA-RA
	if (H < 0) {
		H = H + 24
		}
	H = H * 15
	R =180/PI
	AL=asin(sin(DC/R)*sin(LT/R)+cos(DC/R)*cos(LT/R)*cos(H/R))
	AZ=acos((-sin(DC/R)*cos(LT/R)+sin(LT/R)*cos(DC/R)*cos(H/R))/cos(AL))
	AZ = AZ * R
	if (sin(H / R) < 0) {
		AZ = 360 - AZ
		}
	<!--conversion a gms del acimut-->
	AZG=floor(AZ);
	AZM=floor((AZ - floor(AZ)) * 60)
	AZS=((AZ -floor(AZ)) * 60 - AZM) * 60
	AL=AL*R;
	<!--conversion a g.ms de la altura-->
	D = abs(AL);
	if (AL>0) {
		ALG=floor(D)
		} else {
		ALG=(-1)*floor(D)
		}
	ALM=floor((D - floor(D)) * 60)
	ALS = ((D - floor(D)) * 60 - ALM) * 60
	if (AL<0) {
		ALM=-ALM;
		ALS=-ALS;
		}
    }
    form.tsl.value =SA;
    form.tsh.value =TSH;
    form.tsm.value =TSM;
    form.tss.value =TSS;
    form.acimut.value=AZ;
    form.azg.value =AZG;
    form.azm.value =AZM;
    form.azs.value =AZS;
    form.altura.value=AL;
    form.alg.value =ALG;
    form.alm.value =ALM;
    form.als.value =ALS;
    
     
}
// done hiding from old browsers -->
</SCRIPT>

Basta con guardarlo en un archivo.

Véase también[editar]