- #1
alseth
- 15
- 0
Hello guys. I was trying to determine the geographic location of the observer by measuring the elevation of two distinct stars at a certain time. Well, I am not very skilled in programming and I found this script for Octave and tried to use it.
My data:
Star A: Arcturus(α Boo)
Right ascension: 14h 15 m 39.7s
Declination: +19° 10' 56"
Time: 19:31:11 UT
Elevation: (100-89.9)*0.9= 9.09°
Elevation after the refraction correction: 9.0°
JD1 = 2455097.31332
Star B: Mirfak (α Per)
Right ascension: 03h 24m 19.4s
Declination: +49° 51′ 40″
Time: 20:05:29 UT
Elevation: (100-61.5)*0.9= 34.65°
Elevation after the refraction correction: 34.62°
JD2= 2455097.33714
script:
# 1 rad
rad=180/pi
# 90degrees-elevation
r1 = 81
r2 = 55.38
# coordinates of the first star
# Arcturus, a1 = a1 - ts
a1 = 213.92 - 15*(19+(38/60)+(20.2/3600))
d1 = 19.18
# coordinates of the second star
# Mirfak
a2 = 51.081 - 15*(20+(12/60)+(43.9/3600))
d2 = 49.86
# their distance
rad*acos(sin(d1/rad)*sin(d2/rad) +
cos(d1/rad)*cos(d2/rad)*cos((a2-a1)/rad))
# first estimate of the geographical location
a = 16
d = 50
for i = 1:3
t1=sin(d1/rad)*sin(d/rad)+cos(d1/rad)\
*cos(d/rad)*cos((a-a1)/rad)
t2=sin(d2/rad)*sin(d/rad)+cos(d2/rad)\
*cos(d/rad)*cos((a-a2)/rad)
p = [ rad*acos(t1) - r1,
rad*acos(t2) - r2]
sqrt(p(1)**2+p(2)**2)
# susbstitution
u = -1/sqrt(1 - t1**2)
v = -1/sqrt(1 - t2**2)
# derivation matrix
m = [ -u*sin((a-a1)/rad)*cos(d1/rad)*cos(d/rad),\
u*(sin(d1/rad)*cos(d/rad) - \
cos(d1/rad)*sin(d/rad)*cos((a-a1)/rad));\
-v*sin((a-a2)/rad)*cos(d2/rad)*cos(d/rad),\
v*(sin(d2/rad)*cos(d/rad) - \
cos(d2/rad)*sin(d/rad)*cos((a-a2)/rad))]
# inverse matrix
[im,c] = inv(m)
# linear equations
x = -(im*p)
# and addition to the initial estimates
a = a + x(1)
d = d + x(2)
endfor
ts is apparently the sidereal time a and r1, r2 are 90 degrees minus elevation
The observer should be around 16.6 degrees east and 49.2 degrees north but I am getting very imprecise values. Even some parts of the script do not seem to e doing anything. Is there some error there or maybe is there a more elegant way to do the computation?
Thanks for any help.
My data:
Star A: Arcturus(α Boo)
Right ascension: 14h 15 m 39.7s
Declination: +19° 10' 56"
Time: 19:31:11 UT
Elevation: (100-89.9)*0.9= 9.09°
Elevation after the refraction correction: 9.0°
JD1 = 2455097.31332
Star B: Mirfak (α Per)
Right ascension: 03h 24m 19.4s
Declination: +49° 51′ 40″
Time: 20:05:29 UT
Elevation: (100-61.5)*0.9= 34.65°
Elevation after the refraction correction: 34.62°
JD2= 2455097.33714
script:
# 1 rad
rad=180/pi
# 90degrees-elevation
r1 = 81
r2 = 55.38
# coordinates of the first star
# Arcturus, a1 = a1 - ts
a1 = 213.92 - 15*(19+(38/60)+(20.2/3600))
d1 = 19.18
# coordinates of the second star
# Mirfak
a2 = 51.081 - 15*(20+(12/60)+(43.9/3600))
d2 = 49.86
# their distance
rad*acos(sin(d1/rad)*sin(d2/rad) +
cos(d1/rad)*cos(d2/rad)*cos((a2-a1)/rad))
# first estimate of the geographical location
a = 16
d = 50
for i = 1:3
t1=sin(d1/rad)*sin(d/rad)+cos(d1/rad)\
*cos(d/rad)*cos((a-a1)/rad)
t2=sin(d2/rad)*sin(d/rad)+cos(d2/rad)\
*cos(d/rad)*cos((a-a2)/rad)
p = [ rad*acos(t1) - r1,
rad*acos(t2) - r2]
sqrt(p(1)**2+p(2)**2)
# susbstitution
u = -1/sqrt(1 - t1**2)
v = -1/sqrt(1 - t2**2)
# derivation matrix
m = [ -u*sin((a-a1)/rad)*cos(d1/rad)*cos(d/rad),\
u*(sin(d1/rad)*cos(d/rad) - \
cos(d1/rad)*sin(d/rad)*cos((a-a1)/rad));\
-v*sin((a-a2)/rad)*cos(d2/rad)*cos(d/rad),\
v*(sin(d2/rad)*cos(d/rad) - \
cos(d2/rad)*sin(d/rad)*cos((a-a2)/rad))]
# inverse matrix
[im,c] = inv(m)
# linear equations
x = -(im*p)
# and addition to the initial estimates
a = a + x(1)
d = d + x(2)
endfor
ts is apparently the sidereal time a and r1, r2 are 90 degrees minus elevation
The observer should be around 16.6 degrees east and 49.2 degrees north but I am getting very imprecise values. Even some parts of the script do not seem to e doing anything. Is there some error there or maybe is there a more elegant way to do the computation?
Thanks for any help.