Skip to the content.

Halaman berbahasa Indonesia

Accurate Hijri Calculator (AHC) is a software for calculating the position and visibility of the crescent moon at the sunset time after the conjunction (ijtima’/new moon phase) that marks the beginning of a new month in the Islamic lunar calendar (Hijri calendar). This tool is intended for helping moslem people in estimating the start of a new Hijri month, making a calendar for coming years, comparing among the criteria of Hijri calendar, as well as educating people about the current issues regarding the Hijri calendar. This software incorporates various crescent visibility criteria (in the Hisab Imkanurrukyat methodology) currently adopted by moslem organizations around the world. AHC was firt developed in 2012 and was published at link. While the first version of AHC was built with Graphical User Interface (GUI) support from Delphi, now it is transformed into fully Python package and can be executed on terminal (Linux and Windows) without GUI display. One can run AHC on Jupyter notebook to get GUI experience as demonstrated in a tutorial here.

Download results

Year Muharram Shafar Rabiul Awwal Rabiuts Tsani Jumadil Ula Jumadil Akhir Rajab Syaban Ramadhan Syawal Dzulqadah Dzulhijjah
1444 calc,img calc,img calc,img calc,img calc,img calc,img calc,img calc,img calc,img calc,img calc,img calc,img
1445 calc,img calc,img calc,img calc,img calc,img calc,img calc,img calc,img calc,img calc,img calc,img calc,img
1446 calc,img calc,img calc,img calc,img calc,img calc,img calc,img calc,img calc,img calc,img calc,img calc,img
1447 calc,img calc,img calc,img calc,img calc,img calc,img calc,img calc,img calc,img calc,img calc,img calc,img
1448 calc,img calc,img calc,img calc,img calc,img calc,img calc,img calc,img calc,img calc,img calc,img calc,img
1449 calc,img calc,img calc,img calc,img calc,img calc,img calc,img calc,img calc,img calc,img calc,img calc,img
1450 calc,img calc,img calc,img calc,img calc,img calc,img calc,img calc,img calc,img calc,img calc,img calc,img
1451 calc,img calc,img calc,img calc,img calc,img calc,img calc,img calc,img calc,img calc,img calc,img calc,img
1452 calc,img calc,img calc,img calc,img calc,img calc,img calc,img calc,img calc,img calc,img calc,img calc,img
1453 calc,img calc,img calc,img calc,img calc,img calc,img calc,img calc,img calc,img calc,img calc,img calc,img
1454 calc,img calc,img calc,img calc,img calc,img calc,img calc,img calc,img calc,img calc,img calc,img calc,img

Developer

This software is developed and maintained by Abdurro’uf, an Indonesian astronomer who is currently working as a researcher at the Department of Physics and Astronomy, The Johns Hopkins University and The Space Telescope Science Institute (STScI). Any feedback, inquiry, or bugs report can be sent via email to abdurroufastro@gmail.com or fabdurr1@jhu.edu.

Installation

To install AHC, first clone AHC package into your desired directory (in your local machine) and then enter ahc directory and install. You can do it using the following commands

git clone https://github.com/accuhijri/ahc.git
cd ahc
python -m pip install .

To use AHC, you need to put de421.bsp file in wherever directory you are working. This file is included in the ahc package and can be copied to your working directory. An alternative way would be to download this file from NASA website using the following command

wget https://ssd.jpl.nasa.gov/ftp/eph/planets/bsp/de421.bsp

Last but not least, you need to install geopandas if you intend to produce crescent visibility map with AHC. To install it, you can use the following command, assuming you have conda installed in your machine.

conda install -c conda-forge geopandas

Some features

1. Calculate the data of hilal (i.e., crescent)

In this example, we will estimate the start of Syawal 1444 based on various criteria currently adopted by moslem organizations around the world. Basically, to estimate the start of a new month in the Hijri calendar, we need to know the positions (with respect to the horizon) of moon (i.e., crescent) at the time of sunset after the conjunction of the moon (i.e., new moon phase).

First, we initialize the hilal class.

from ahc.hilal import hilal

# input the hijri year and month. 
# since we want to get crescent (i.e., hilal) visibility maps later, so we set calculate_maps=True
# plus_1day input agrument indicates that we want to also calculate the visibility maps for 1 day after the conjunction (i.e., new moon phase)

hijri_year = 1444
hijri_month = 10        # syawal is 10th month in Hijri calendar
calculate_maps = True 
plus_1day = True
hl = hilal(hijri_year=hijri_year, hijri_month=hijri_month, calculate_maps=calculate_maps, plus_1day=plus_1day)

We can use calculate_hilal_data function to get hilal data at sunset time on the day of conjunction. It’s also possible to calculate hilal data for other days after the conjunction by adjusting delta_day input parameter. To use this function, we need to input the coordinates of location and the time-zone. List of acceptable time-zone can be seen here.

# location and time-zone
latitude = 3.595196
longitude = 98.672223
elevation = 23.0
time_zone_str = 'Asia/Jakarta'
loc_name = 'INDONESIA Medan'
hl.calculate_hilal_data(latitude, longitude, elevation, time_zone_str, loc_name=loc_name, delta_day=0)

2. Get maps of moon positions

In addition to the hilal data above, we can also get maps of moon positions at sunset time. This include the maps of moon altitude, elongation (topocentric and geocentric), moon-sun altitude difference (arc of vision; ARCV), moon width, and moon age. Below is a command to get the map of moon altitude.

hl.map_moon_altitude()

Get the map of altitude difference between the moon and sun (arc of vision; ARCV):

hl.map_moon_sun_altitude_difference()

Get the map of moon topocentric elongation:

hl.map_moon_elongation()

Get the map of moon geocentric elongation:

hl.map_moon_geocentric_elongation()

Get the map of moon angular width:

hl.map_moon_width()

Get the map of moon age (from conjunction up to local sunset time) in UTC:

hl.map_moon_age_utc_localsunset()

3. Get map of crescent vibility based on various criteria

There are 6 criteria currently available in AHC: MABIMS, Odeh, Wujudul Hilal, Turkey, Danjon, and Itjima Qobla Ghurub. The list of criteria can be access using function list_hilal_visibility_criteria. Not all of them are crescent visibility criteria. Wujudul Hilal and Ijtima Qobla Ghurub were not intended for predicting the vibility of hilal. The Wujudul Hilal is currently (as of 2023) used by Muhammadiyah organization in Indonesia to calculate their Hijri calendar.

3.1. Crescent vibility map based on MABIMS criterion

This citerion is currently (since 2022) used by the goverments of Indonesia, Malaysia, Singapore, and Brunei Darussalam. Based on this criterion, hilal is observable if its altitude (i.e., height above the horizon) is greater than 3 degree and its geocentric elongation (i.e., angular distance between moon and sun as measured from hyphotetical position at the center of the earth) is greater than 6.4 degree.

hl.map_hilal_visibility('MABIMS')

3.2. Crescent visibility map based on Odeh criterion

This criterion is proposed by Mohammad Odeh in his 2016 paper published in the Journal of Experimantal Astronomy. This criterion is formulated based on 737 observations and parameterized by the crescent width (proportional to moon topocentric elongation) and arc of vision (ARCV; the altitude difference between moon and sun).

hl.map_hilal_visibility('Odeh')

3.3. Crescent visibility map based on Terkey criterion

This criterion is proposed by the International Hijri Calendar Union Congress in Istanbul in 2016 (news) to be the criterion for the unified Hijri calendar. See the full description of the criterion here. Basically, this is formed from a crescent visibility criterion with two additional requirements (conditions). The hilal visibility criterion stated that hilal is observable if its altitude is greater than 5 degree and its topocentric elongation (angular distance between moon and sun as seen from the surface of the earth) is greater than 8 degree. The two additional conditions are: (1) the observability of hilal (as formulated above) happens in a region where the local sunset precedes midnight (00:00) at GMT; (2) conjunction happen before Fajr time in New Zealand.

hl.map_hilal_visibility('Turkey')

3.4. Crescent visibility map based on Danjon limit

Based on this criterion, only hilal that has an elongation (angular distance between moon and sun) greater than 7 degree would be possible to be observed.

hl.map_hilal_visibility('Danjon')

3.5. Cresecent map based on Wujudul Hilal criterion

Base on on this criterion, a new month can be started if conjunction has happen and moonset happen after sunset.

hl.map_hilal_visibility('Wujudul Hilal')

3.6. Map of Ijtima Qobla Ghurub

Based on this criterion, a new month can be started after maghrib when the conjunction occur before sunset.

hl.map_hilal_visibility('Ijtima Qobla Ghurub')