You are on page 1of 4

KELUARAN PROGRAM (Hasil Hitungan) :

-----------------------------------------------------------------------PROGRAM TRANSFORMASI SISTEM KOORDINAT LANGIT


mean ti --> mean tj dan mean tj --> true tj
Dany Puguh L - 07/256988/TK/33449
Full Version 1 April 2009
-----------------------------------------------------------------------Input Data Tanggal(D), Bulan(M), Tahun(Y) dan UT
Masing-masing pada epoch ti dan tj
Format masukan : "DD MM YYYY UT" (tanpa kutip)
Misal pada 1 Januari 2000, 12.00 UT1 => 1 1 2000 12
Masukkan data pada epoch ti : 1 7 1987 12
Masukkan data pada epoch tj : 1 7 2007 12
Input Data Koordinat (mean) benda langit pada epoch ti
(Alpha = Jam(j) Menit(m) Detik(s); Deklinasi = Derajat(Der) Menit(Men) Detik(Sec)
Format masukan Alpha
: jj mm ss.ss
Format masukan Deklinasi : Der Men Sec
Alpha benda langit pada epoch ti
: 12 25 53.9
Deklinasi benda langit pada epoch ti : -63 1 47
Input Data dPsi dan dEpsilon pada epoch tj
<Diperoleh dari Bulletin B, http://hpiers.obspm.fr/eop-pc/>
Masukan dPsi dan dEpsilon sudah dalam satuan 0.001" (misal : -60.4 -8.5 dst)
Bisa diperoleh dengan iterasi atau menggunakan smoothed value pada Bulletin B
Apakah anda mau melakukan iterasi <Y/T> ? y
Masukkan berurutan Tanggal, Bulan, dPsi, dEpsilon pada tanggal awal (UT=0) : 28 6 -60.2 -7.2
Masukkan berurutan Tanggal, Bulan, dPsi, dEpsilon pada tanggal akhir : 3 7 -61.1 -6.8
Masukkan berurutan Tanggal, Bulan yang dicari : 1 7
dPsi =
-0.06074
dEpsilon =
-0.00696
JDti =
2446978
JDtj =
2454283
JD2000 =
2451545
T =
-0.125037645448323
t =
0.2
Xi =
461.220915955056
z =
461.252628204637
theta =
400.86683876065
----- HASIL HITUNGAN TRANSFORMASI
P =
-0.0810238982552791
-0.609453980142213
0.788670383620644
MEANti =
-0.186554340936362
0.0114522485385022
-0.982377892606105

----0.587533451854704
0.609976577429289
0.531726450291263

Koordinat mean benda langit pada epoch tj :


MEANtj =
0.81278905702868
-0.376846128382205
-0.444253243429658
Dalam Alpha dan deklinasi :
Nilai Alpha (Mean) :
0 -26 -2.916765
Nilai Deklinasi (Mean) :
0 -27 -37.226026

-0.805133262797665
0.506452782672251
0.308651920551809

Epsilon =
84377.9387395123
N =
0.998155893267164
-0.0309229542408594
-0.0522358462844049

0.0305586467103593
0.999502861425323
-0.00775880878893576

0.0524498031193799
0.00614824394518754
0.998604635102966

Koordinat true benda langit pada epoch tj :


TRUEtj =
0.776473284401808
-0.404523999767084
-0.483166195240012
Dalam Alpha dan deklinasi :
Nilai Alpha (True) :
0 -28 -49.034286
Nilai Deklinasi (True) :
0 -30 -15.362794

LISTING PROGRAM (Dalam Bahasa Pemrograman MATLAB):


% Program Transformasi Sistem Koordinat Teristris
% menghitung transformasi koordinat benda langit
clc
clear all
format long g
format compact
warning off
% BEBERAPA FUNGSI HITUNGAN YANG DIBUTUHKAN
% Fungsi untuk menghitung Julian Date ; Format masukan : Julian Date = JD(D,M,Y,UT)
JD = inline('fix(365.25*y) + fix(30.6001*(m+1)) + D + UT/24 + 1720981.5','D','m','y','UT');
%Fungsi matrix rotasi
R1 = inline('[1 0 0; 0 cos(sdt) sin(sdt);0 -sin(sdt) cos(sdt)]');
R2 = inline('[cos(sdt) 0 -sin(sdt); 0 1 0; sin(sdt)0 cos(sdt)]');
R3 = inline ('[cos(sdt) sin(sdt) 0; -sin(sdt) cos(sdt) 0; 0 0 1]');
% Fungsi Konversi Sudut
rad2deg = inline('sdt*pi/180');
deg2rad = inline('sdt*180/pi');
decideg = inline('deg+(min/60)+(sec/3600)','deg','min','sec');
hmd2deg = inline('[hr min/60 sec/3600]','hr','min','sec');
decideg2deg = inline('[fix(dd) (fix((dd-fix(dd))*60)) (((dd-fix(dd))*60)-fix((ddfix(dd))*60))*60]');
% INPUT DATA
fprintf('\n\n');
fprintf(1,'------------------------------------------------------------------------\n');
fprintf(1,'
PROGRAM TRANSFORMASI SISTEM KOORDINAT LANGIT\n');
fprintf(1,'
mean ti --> mean tj dan mean tj --> true tj\n');
fprintf(1,'
Dany Puguh L - 07/256988/TK/33449\n');
fprintf(1,'
Full Version 1 April 2009 \n');
fprintf(1,'------------------------------------------------------------------------\n\n');
fprintf('\nInput Data Tanggal(D), Bulan(M), Tahun(Y) dan UT\n');
fprintf('Masing-masing pada epoch ti dan tj\n');
fprintf('Format masukan : "DD MM YYYY UT" (tanpa kutip)\n');
fprintf('Misal pada 1 Januari 2000, 12.00 UT1 => 1 1 2000 12\n');
while 1 % Pengecekan input epoch ti dan tj
temp1 = input('Masukkan data pada epoch ti : ','s');
temp2 = input('Masukkan data pada epoch tj : ','s');
if isempty(temp1) | isempty(temp2)
quit = 1;
else
quit = 0;
ti = sscanf(temp1,'%f');
tj = sscanf(temp2,'%f');
end
if quit
fprintf('\nInput kosong, program keluar !\n');
clear all;
return;

elseif ~isequal(length(ti),4) | ~isequal(length(tj),4)


fprintf('\nFormat masukan ti atau tj tidak sesuai. Ulangi input data\n');
else
break;
end
end % while
% plotting hasil input ti
Di = ti(1); Mi = ti(2); Yi = ti(3); UTi = ti(4);
if Mi <= 2
yi = Yi - 1;
mi = Mi + 12;
else
yi = Yi;
mi = Mi;
end
% plotting hasil input tj
Dj = tj(1); Mj = tj(2); Yj = tj(3); UTj = tj(4);
if Mj <= 2
yj = Yj - 1;
mj = Mj + 12;
else
yj = Yj;
mj = Mj;
end
fprintf('\n\n
Input Data Koordinat (mean) benda langit pada epoch ti\n');
fprintf(' (Alpha = Jam(j) Menit(m) Detik(s); Deklinasi = Derajat(Der) Menit(Men) Detik(Sec)\n\n');
fprintf('Format masukan Alpha
: jj mm ss.ss \n');
fprintf('Format masukan Deklinasi : Der Men Sec \n');
while 1 % Pengecekan input Alpha dan Deklinasi benda langit
temp3 = input('Alpha benda langit pada epoch ti
: ','s');
temp4 = input('Deklinasi benda langit pada epoch ti : ','s');
if isempty(temp3) | isempty(temp4)
quit = 1;
else
quit = 0;
Alph = sscanf(temp3,'%f');
Dekln = sscanf(temp4,'%f');
end
if quit
fprintf('\nInput kosong, program keluar!\n');
clear all;
return;
elseif ~isequal(length(Alph),3) | ~isequal(length(Dekln),3)
fprintf('\nFormat masukan Alpha atau Deklinasi tidak sesuai. Ulangi input data\n');
else
break;
end
end % while
% Plotting hasil input Alpha
Alph = hmd2deg(Alph(1),Alph(2),Alph(3));
Alph = decideg(Alph(1),Alph(2),Alph(3));
Alph = deg2rad(Alph); % ke radian
% Plotting hasil input Deklinasi
Dekln = decideg(Dekln(1),Dekln(2),Dekln(3));
Dekln = deg2rad(Dekln); % ke radian
fprintf('\n\n
Input Data dPsi dan dEpsilon pada epoch tj\n');
fprintf('
<Diperoleh dari Bulletin B, http://hpiers.obspm.fr/eop-pc/>\n');
fprintf('Masukan dPsi dan dEpsilon sudah dalam satuan 0.001" (misal : -60.4 -8.5 dst)\n\n');
fprintf('Bisa diperoleh dengan iterasi atau menggunakan smoothed value pada Bulletin B\n');
tny = input('Apakah anda mau melakukan iterasi <Y/T> ? ','s');
if upper(tny) == 'Y'
while 1 % Pengecekan masukan interpolasi
tglawl = input('Masukkan berurutan Tanggal, Bulan, dPsi, dEpsilon pada tanggal awal (UT=0) :
','s');
tglakhr = input('Masukkan berurutan Tanggal, Bulan, dPsi, dEpsilon pada tanggal akhir : ','s');
tgltjn = input('Masukkan berurutan Tanggal, Bulan yang dicari : ','s');
if isempty(tglawl) | isempty(tglakhr) | isempty(tgltjn)
quit = 1;
else
quit = 0;
tgaw = sscanf(tglawl,'%f');
tgak = sscanf(tglakhr,'%f');
tgtj = sscanf(tgltjn,'%f');

end
if quit
fprintf('\nInput kosong, program keluar!\n');
clear all;
return;
elseif ~isequal(length(tgaw),4) | ~isequal(length(tgak),4) | ~isequal(length(tgtj),2)
fprintf('\nFormat masukan ada yang tidak sesuai. Ulangi input data\n');
else
break;
end
end % while
% Modified Julian Date, untuk menghitung selisih tanggal pd interpolasi
MJDaw = JD(tgaw(1),tgaw(2),tj(3),0) - 2400000.5;
MJDak = JD(tgak(1),tgak(2),tj(3),0) - 2400000.5;
MJDtj = JD(tgtj(1),tgtj(2),tj(3),0) - 2400000.5;
% --Interpolasi-dPsi = ((((tgak(3) - tgaw(3))/(MJDak - MJDaw))*(MJDtj - MJDaw)) + tgaw(3))*0.001
dEpsilon = ((((tgak(4) - tgaw(4))/(MJDak - MJDaw))*(MJDtj - MJDaw)) + tgaw(4))*0.001
elseif upper(tny) == 'T'
fprintf('\nMasukkan nilai dPsi dan dEpsilon langsung : \n');
temp5 = input('Nilai dPsi
: ','s');
temp6 = input('Nilai dEpsilon : ','s');
dPsi = sscanf(temp5,'%f')*0.001;
dEpsilon = sscanf(temp6,'%f')*0.001;
else fprintf('Masukkan Y/T ');
end
% -=====================HITUNGAN=====================% Julian Date ;
JDti = JD(Di,mi,yi,UTi)
JDtj = JD(Dj,mj,yj,UTj)
JD2000 = JD(1,13,1999,12)
T = (JDti - JD2000)/36525
t = (JDtj - JDti)/36525
% mean ti ke mean tj
Xi = (2306.2181 + 1.39656*T - 0.000139*(T^2))*t + ...
(0.30188 - 0.000344*T)*t^2 + 0.017998*t^3
z = (2306.2181 + 1.39656*T - 0.000139*(T^2))*t + ...
(1.09468 - 0.000066*T)*t^2 + 0.018203*t^3
theta = (2004.3109 - 0.855330*T - 0.000217*(T^2))*t - ...
(0.42665 + 0.000217*T)*t^2 + 0.041833*t^3
% TRANSFORMASI AKHIR DAN DISPLAY HASIL
fprintf('\n\n ----- HASIL HITUNGAN TRANSFORMASI -----\n');
P = R3(-z)*R2(theta)*R3(-Xi)
MEANti = [cos(Dekln)*cos(Alph); cos(Dekln)*sin(Alph); sin(Dekln)]
fprintf('\n\nKoordinat mean benda langit pada epoch tj : \n');
MEANtj = P*MEANti
fprintf('\nDalam Alpha dan deklinasi : \n');
AlphaMEANtj = atan(MEANtj(2)/MEANtj(1));
fprintf('Nilai Alpha (Mean) : \n %2.0f %2.0f %2f',decideg2deg(AlphaMEANtj));
DeklnMEANtj = atan(MEANtj(3)/sqrt(MEANtj(2)^2 + MEANtj(1)^2));
fprintf('\nNilai Deklinasi (Mean) : \n %2.0f %2.0f %2f\n\n',decideg2deg(DeklnMEANtj));
% mean tj ke true tj
Epsilon = (84381.448 - 46.8150*T - 0.00059*(T^2)+ 0.001813*(T^3)...
+ (-46.8150 - 0.00117*T + 0.005439*(T^2))*t - ...
(0.00059 + 0.005439*T)*(t^2) + 0.00813*(t^3))
N = R1(-Epsilon-dEpsilon)*R3(-dPsi)*R1(Epsilon)
fprintf('\nKoordinat true benda langit pada epoch tj : \n');
TRUEtj = N*MEANtj
fprintf('\nDalam Alpha dan deklinasi : \n');
AlphaTRUEtj = atan(TRUEtj(2)/TRUEtj(1));
fprintf('Nilai Alpha (True) : \n %2.0f %2.0f %2f ',decideg2deg(AlphaTRUEtj));
DeklnTRUEtj = atan(TRUEtj(3)/sqrt(TRUEtj(2)^2 + TRUEtj(1)^2));
fprintf('\nNilai Deklinasi (True) : \n %2.0f %2.0f %2f ',decideg2deg(DeklnTRUEtj));
fprintf('\n\n---------------------------------PROGRAM SELESAI---------------------------------');

You might also like