0% menganggap dokumen ini bermanfaat (0 suara)
10 tayangan

Astronomi Islam Dalam Pemrograman Python v1.0

Ilmu falak python

Diunggah oleh

abahpsan
Hak Cipta
© © All Rights Reserved
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
10 tayangan

Astronomi Islam Dalam Pemrograman Python v1.0

Ilmu falak python

Diunggah oleh

abahpsan
Hak Cipta
© © All Rights Reserved
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 16

PyIslamia: Astronomi Islam dalam Pemrograman Python

https://bitbucket.org/tatataufik/pyislamia.git

Oleh:
Tata Taufik Nugraha, B.Eng.
LinkedIn: http://www.linkedin.com/profile/view?id=142472207
Twitter: http://www.twitter.com/tata_nugraha

Hak Cipta © 2014


Daftar Isi

Daftar Isi................................................................................................................................................i
Daftar Gambar......................................................................................................................................ii
Bab 1. Petunjuk Instalasi untuk Microsoft Windows 7........................................................................1
1.1 Hal-hal yang Dibutuhkan...........................................................................................................1
1.2 Unduh File-File yang Dibutuhkan.............................................................................................1
1.3 Instalasi Python..........................................................................................................................2
1.4 Windows PATH Setting.............................................................................................................2
1.5 Instalasi MinGW........................................................................................................................3
1.6 Instalasi MSYS..........................................................................................................................4
1.7 Instalasi Module-Module yang dibutuhkan di MinGW.............................................................5
1.8 Instalasi Tortoise-Git..................................................................................................................6
1.9 Unduh dan Install Paket PyIslamia............................................................................................7
Bab 2. Contoh Penggunaan PyIslamia.................................................................................................9
2.1 Unduh Script-Script Contoh Penggunaan PyIslamia.................................................................9
2.2 Operasi Tanggal dan Waktu.......................................................................................................9
2.3 Operasi Radian dan Derajat.....................................................................................................11
Daftar Pustaka....................................................................................................................................12

i
Daftar Gambar

Gambar 1: Lokasi File-File yang Dibutuhkan di FTP..........................................................................1


Gambar 2: Instalasi Python..................................................................................................................2
Gambar 3: Advanced System Settings.................................................................................................3
Gambar 4: Environment Variable.........................................................................................................3
Gambar 5: Instalasi MinGW................................................................................................................4
Gambar 6: Instalasi MSYS...................................................................................................................4
Gambar 7: Instalasi Setuptools.............................................................................................................5
Gambar 8: Lokasi File libmsvcr90.a....................................................................................................6
Gambar 9: Lokasi File disutils.cfg.......................................................................................................6
Gambar 10: Unduh Paket PyIslamia....................................................................................................7
Gambar 11: Instalasi Modul Astronomia..............................................................................................7
Gambar 12: Instalasi Modul PyIslamia................................................................................................8
Gambar 13: Hasil Eksekusi Script date_time_operation.py...............................................................10

ii
Bab 1. Petunjuk Instalasi untuk Microsoft Windows 7

1.1 Hal-hal yang Dibutuhkan


1. PC atau Laptop.
2. Sistem Operasi: Microsoft Windows 7.
3. Koneksi Internet.

1.2 Unduh File-File yang Dibutuhkan


1. Buka jendela “Internet Browser”.
2. Masukkan alamat berikut:
ftp://islamia.dssoft247.com/software
Username: islamia
Password: *!!Islam#
Tampilan seperti pada Gambar 1 akan terlihat pada jendela “Internet Browser”.

Gambar 1: Lokasi File-File yang Dibutuhkan di FTP

3. Daftar file yang dibutuhkan:


 Python-2.7.4.msi
 MinGW-3.4.2.exe
 MSYS-1.0.11.exe
 setuptools-3.1.zip

1
 pip-1.5.4.win32-py2.7.exe
 numpy-1.8.0-win32-superpack-python2.7.exe
 pytz-2013.9.win32-py2.7.exe
 disutils.cfg
 libmsvcr10.a
 TortoiseGit-1.8.5.0-32bit.msi
 msys-Git-1.9.0.exe

1.3 Instalasi Python


1. Jalankan file Python-2.7.4.msi, izinkan sebagai Administrator apabila muncul popup pertanyaan
untuk menjalankan sebagai Administrator.
2. Install di folder D:\Python27 seperti terlihat pada Gambar 2.
3. Lakukan instalasi sesuai dengan yang diinstruksikan sampai selesai.

Gambar 2: Instalasi Python


1.4 Windows PATH Setting
1. Buka Control Panel > System and Security > System > Advanced System Settings seperti
terlihat pada Gambar 3.

2
Gambar 3: Advanced System Settings

2. Pilih Environment Variables.


3. Masukan variable tambahan untuk “Path” di System Variables, tambahkan D:\Python dan
D:\Python\Scripts. Setiap masukan dipisahkan oleh titik koma (;) seperti pada Gambar 4.

Gambar 4: Environment Variable

1.5 Instalasi MinGW


1. Jalankan file MinGW-3.4.2.exe.
2. Pilih C:\MinGW, lihat Gambar 5.

3
Gambar 5: Instalasi MinGW
3. Pilih “Install” dan ikuti perintah selanjutnya.

1.6 Instalasi MSYS


1. Jalankan file MSYS-1.0.11.exe.
2. Ikuti apa yang diinstruksikan pada dialog instalasi.
3. Jika ada pertanyaan “Do you wish to continue with the post install?”, jawab “y”.
4. Jika ada pertanyaan “Do you have MinGW installed?”, jawab “y”.
5. Jika ada pertanyaan “Where is your MinGW installation?, jawab “c:/MinGW”, lihat Gambar 6.

Gambar 6: Instalasi MSYS


6. Lanjutkan instalasi sampai selesai.

4
1.7 Instalasi Module-Module yang dibutuhkan di MinGW
1. Jalankan MSYS (lihat shortcut di Desktop).
2. Extract file setuptools-3.1.zip ke drive D:.
3. Pada jendela MSYS, arahkan ke folder d:/setuptools-3.1 dengan perintah berikut
$ cd /d/setuptools-3.1
4. Install setuptools-3.1, dengan menjalankan perintah berikut pada jendela MSYS sebagaimana
terlihat pada Gambar 7.
$ python setup.py install

Gambar 7: Instalasi Setuptools


5. Jalankan file pytz-2013.9.win32-py2.7.exe.
6. Jalankan file numpy-1.8.0-win32-superpack-python2.7.exe.
7. Copy file libmsvcr90.a ke D:\Python27\libs, lihat Gambar 8.

5
Gambar 8: Lokasi File libmsvcr90.a

8. Copy file disutils.cfg ke D:\Python27\Libs\disutils, lihat Gambar 9.

Gambar 9: Lokasi File disutils.cfg


1.8 Instalasi Tortoise-Git
1. Jalankan msys-Git-1.9.0.exe.
2. Jalankan TortoiseGit-1.8.5.0-32bit.msi.
3. Ikuti sesuai instruksi di dialog instalasi.

6
1.9 Unduh dan Install Paket PyIslamia
1. Buka Windows Explorer ke direktori yang dikehendaki, misalnya D:.
2. Klik kanan pada jendela Windows Explorer, Pilih Git Clone.

Gambar 10: Unduh Paket PyIslamia


3. Masukan alamat https://bitbucket.org/tatataufik/pyislamia.git, seperti pada Gambar 10,
kemudian klik OK.
4. Tunggu sampai proses unduhan sampai selesai.
5. Buka jendela MSYS, lalu ubah direktori ke d:\pyislamia, dengan menjalanknan perintah berikut.
$ cd /d/pyislamia.
6. Install module astronomia, dengan menjalankan perintah berikut di jendela MSYS.
$ pip install astronomia

Gambar 11: Instalasi Modul Astronomia

Astronomia [4] merupakan sebuah modul python yang mengimplementasikan algoritma-

7
algoritma dalam buku Astronomical Algorithms karya Jean Meeus.
7. Install pyislamia, lihat Gambar 12.
$ python setup.py install

Gambar 12: Instalasi Modul PyIslamia

8. Lanjutkan ke Bab 2. untuk contoh pengunaan PyIslamia.

8
Bab 2. Contoh Penggunaan PyIslamia

2.1 Unduh Script-Script Contoh Penggunaan PyIslamia


Penulis telah mengumpulkan beberapa contoh penggunaan module PyIslamia [3]. Ikuti langkah-
langkah berikut untuk mengunduh kumpulan script python sebagai contoh penyelesaian solusi dalam
bidang astronomi dengan mempergunakan module PyIslamia.
1. Buka “Windows Explorer” ke folder yang dikehendaki, contoh folder D:.
2. Klik kanan di jenedela “Windows Explorer”, lalu pilih “Git Clone”.
3. Masukan alamat di jendela Tortoise-Git, https://bitbucket.org/tatataufik/pyislamia-examples.git.
4. Tunggu sampai proses unduhan selesai.
5. Untuk menjalankan contoh-contoh script yang diunduh, buka jendela MSYS dan arahkan ke
direktori yang dimasukan di langkah 1, contoh:
$ cd /d/pyislamia-examples

2.2 Operasi Tanggal dan Waktu


Script berikut dalam file date_time_operation.py merupakan salah satu contoh operasi tanggal dan
waktu dalam module astronomia [4]:
from datetime import datetime
from pytz import timezone
from astronomia import calendar

def main():
'''timezone'''
tz = timezone("Asia/Jakarta")
'''today datetime'''
dt = datetime.today()
'''convert datetime ke julian day'''
jd = calendar.cal_to_jde(dt.year, dt.month, dt.day, dt.hour, \
dt.minute,dt.second)

'''date format for displaying yyyy-mm-dd HH:MM:SS,


e.g. 2014-03-12 20:05:30'''
dateformat="%Y-%m-%d %H:%M:%S %Z"

print "Datetime\t\t\t: %s" % dt.strftime(dateformat)


print "Julian Day\t\t\t: %f" % jd

'''initialize datetime to a desired date and time,


i.e. 2014-03-05 00:00:00'''
dt = datetime(2014,3,5,0,0,0)
'''convert datetime ke julian day'''
jd = calendar.cal_to_jde(dt.year, dt.month, dt.day, dt.hour, \
dt.minute,dt.second)

9
'''date format for displaying yyyy-mm-dd HH:MM:SS,
for example 2014-03-12 20:05:30'''
print "Datetime\t\t\t: %s" % dt.strftime(dateformat)
print "Julian Day\t\t\t: %f" % jd

'''print date time with timezone info'''


print "Datetime with Asia/Jakarta Tz\t: %s "\
% tz.localize(dt).strftime(dateformat)

'''initialize timezone UTC'''


tz_utc = timezone("UTC")

'''convert Western Indonesia Time (WIB) to UTC time'''


utc_dt = dt - tz.utcoffset(dt)
print "Datetime in UTC\t\t\t: %s" \
% tz_utc.localize(utc_dt).strftime(dateformat)

'''Convert UTC to Central Indonesia Time (WITA)'''


tz_wita = timezone("Asia/Makassar")
wita_dt = utc_dt + tz_wita.utcoffset(dt)
print "Datetime in Asia/Makassar Tz\t: %s" \
% tz_wita.localize(wita_dt).strftime(dateformat)

if __name__ == '__main__':
main()

Untuk menjalankan script tersebut di atas,


1. Buka jendela MSYS dan arahkan sesuai dengan yang diterangkan di bagian 2.1 .
2. Jalankan perintah:
$ python date_time_operation.py
3. Hasilnya akan terlihat seperti gambar berikut.

Gambar 13: Hasil Eksekusi Script date_time_operation.py

10
2.3 Operasi Radian dan Derajat
Script rad_deg_operation.py merupakan contoh konversi dari derajat ke radian dan sebaliknya beserta
cara mendisplay di console. Untuk catatan '\xb0' adalah kode unicode untuk simbol derajat °.
from astronomia import util,constants

def main():
'''degree value from 107 57' 33" '''
deg = util.dms_to_d(107, 57, 33)
print u"Degree,Minute,Second to Degree: %d\xb0%d'%d\" --> %f\xb0" \
% (107,57,33, deg)

'''convert deg to radian'''


rad = util.d_to_r(deg)
print u"Degree to Radian: %f\xb0 --> %f radians" % (deg, rad)

'''convert phi radian to deg'''


rad_to_deg = util.r_to_d(constants.pi)

print u"Radian to Degree: %f radians --> %f\xb0"


% (constants.pi, rad_to_deg)

'''convert degree to degree minute second'''


dms = util.d_to_dms(deg)

print u"Degree to Degree,Minute,Second: %f\xb0 --> %d\xb0%d'%d\"" \


% (deg,dms[0],dms[1],dms[2])

if __name__ == "__main__":
main()

Maka keluaran dari pengoperasian script rad_deg_operation.py adalah sebagai berikut:

Degree,Minute,Second to Degree: 107°57'33" --> 107.959167°


Degree to Radian: 107.959167° --> 1.884243 radians
Radian to Degree: 3.141593 radians --> 180.000000°
Degree to Degree,Minute,Second: 107.959167° --> 107°57'33"

2.4 Kalkulasi Posisi Bulan Secara Geosentris


Terdapat 2 methodologi perhitungan posisi bulan yang disediakan PyIslamia yaitu:
1. ELP 2000-82b oleh Chapront [2] pada fungsi astronomia.lunar.Lunar.dimension3().
2. ELP 2000 yang telah direduksi oleh Meeus[1] pada fungsi
libpyislamia.elp2000_geo_moon_position().
Berikut kode yang ditulis pada script moon_position.py:
from datetime import datetime
from pytz import timezone
from astronomia import calendar,util, lunar
from pyislamia.tool import frac_of_day
from libpyislamia import elp2000_geo_moon_position

11
def main():
'''timezone'''
tz = timezone("Asia/Jakarta")
'''today datetime'''
dt = datetime.today()
jd = calendar.cal_to_jde(dt.year, dt.month, dt.day, dt.hour, \
dt.minute,dt.second)
utc_jd = jd - frac_of_day(tz.utcoffset(dt)) #julian_day UTC

"""date time format"""


fmt = '%Y-%m-%d'
hour_fmt ='%H:%M:%S %Z'
full_fmt = fmt + " " + hour_fmt

"""today datetime"""
print "Date and Time\t\t: %s" % tz.localize(dt).strftime(full_fmt)

'''Calculation of moon ecliptical position using ELP 2000-82b'''


ecl_pos = elp2000_geo_moon_position(utc_jd)
ecl_pos_in_deg = map(lambda x: util.r_to_d(x), ecl_pos[:2]) \
+ [ecl_pos[2],]
print u"Ecl Moon Position from ELP 2000-82b: [%f\xb0 %f\xb0 %f] " \
% (ecl_pos_in_deg[0], ecl_pos_in_deg[1], ecl_pos_in_deg[2])

'''Calculation of moon ecliptical position using ELP 2000 (Meeus)'''


_lunar = lunar.Lunar()
ecl_pos = _lunar.dimension3(utc_jd)
ecl_pos_in_deg = map(lambda x: util.r_to_d(x), ecl_pos[:2]) \
+ [ecl_pos[2],]
print "Ecl Position from ELP 2000 (Meeus): [%f\xb0 %f\xb0 %f] " \
% (ecl_pos_in_deg[0], ecl_pos_in_deg[1], ecl_pos_in_deg[2])

if __name__ == '__main__':
main()

Keluaran dari pengoperasian script moon_position.py adalah sebagai berikut:

Date and Time : 2014-03-13 23:02:03 WIB


Ecl Moon Position from ELP 2000-82b: [138.608915° -4.861285° 403654.554700]
Ecl Position from ELP 2000 (Meeus): [138.812857° -4.864248° 403655.821008]

12
Daftar Pustaka

1: Jean Meeus, "Astronomical Algorithms", 2nd Edition, Wilmann-Bell, 1999.


2: M. Chapront-Touz and J. Chapront, "The Lunar Ephemeris ELP 2000", Astronomy and
Astrophysics, vol. 124, 1983, pp. 50-52
3: Tata Taufik Nugraha, PyIslamia, https://bitbucket.org/tatataufik/pyislamia/overview, 2014.
4: Timcera, Astronomia Documentation, http://pythonhosted.org/astronomia/, 2013.

13

Anda mungkin juga menyukai