Geosat2

download Geosat2

of 4

Transcript of Geosat2

  • 7/29/2019 Geosat2

    1/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

    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

    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 =

    2454283JD2000 =

    2451545

    T =

    -0.125037645448323

    t =

    0.2

    Xi =

    461.220915955056

    z =

    461.252628204637

    theta =

    400.86683876065

    ----- HASIL HITUNGAN TRANSFORMASI -----

    P =

    -0.0810238982552791 0.587533451854704 -0.805133262797665

    -0.609453980142213 0.609976577429289 0.506452782672251

    0.788670383620644 0.531726450291263 0.308651920551809

    MEANti =

    -0.186554340936362

    0.0114522485385022

    -0.982377892606105

    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

  • 7/29/2019 Geosat2

    2/4

    Epsilon =

    84377.9387395123

    N =

    0.998155893267164 0.0305586467103593 0.0524498031193799

    -0.0309229542408594 0.999502861425323 0.00614824394518754

    -0.0522358462844049 -0.00775880878893576 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

    clcclear 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 Sudutrad2deg = 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((dd-

    fix(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;

  • 7/29/2019 Geosat2

    3/4

    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

  • 7/29/2019 Geosat2

    4/4

    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---------------------------------');