I am using PySwissEph in Python to get planetary positions based on Lahiri Ayanamsha. Planetary positions work fine. But I cannot make the code work for sunrise and sunset times. I am totally new to Python. This is needed for my little project in MS Access(!). Honestly, I have used the code from AI.
The code below doesn't work. If you could help, please.
The code below doesn't work. If you could help, please.
pip install pyswisseph
import swisseph as swe
# Set the path to Swiss Ephemeris data files
swe.set_ephe_path('/usr/share/ephe') # Adjust this path based on where you have the ephemeris data files stored
# Function to get sunrise and sunset times
def get_sunrise_sunset(year, month, day, latitude, longitude, timezone):
# Convert input date to Julian Day
jd = swe.julday(year, month, day)
# Adjust Julian Day for UT
jd_ut = jd - (timezone / 24.0)
# Compute sunrise
sunrise_info = swe.rise_trans(jd_ut, swe.SUN, longitude, latitude, rsmi=swe.CALC_RISE | swe.BIT_DISC_CENTER)
sunrise = swe.revjul(sunrise_info[1][0])
# Compute sunset
sunset_info = swe.rise_trans(jd_ut, swe.SUN, longitude, latitude, rsmi=swe.CALC_SET | swe.BIT_DISC_CENTER)
sunset = swe.revjul(sunset_info[1][0])
return sunrise, sunset
# Example usage
year, month, day = 2025, 1, 27 # Example date
latitude, longitude = 37.7749, -122.4194 # Example coordinates (San Francisco)
timezone = -8 # PST (Pacific Standard Time)
sunrise, sunset = get_sunrise_sunset(year, month, day, latitude, longitude, timezone)
# Print sunrise and sunset times
print(f"Sunrise: {int(sunrise[0])}-{int(sunrise[1]):02d}-{int(sunrise[2]):02d} {int(sunrise[3]):02d}:{int(sunrise[4]):02d}:{int(sunrise[5]):02d}")
print(f"Sunset: {int(sunset[0])}-{int(sunset[1]):02d}-{int(sunset[2]):02d} {int(sunset[3]):02d}:{int(sunset[4]):02d}:{int(sunset[5]):02d}")This code obviously throws this error;Error:---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-44-523679a7283f> in <cell line: 0>()
27 timezone = -8 # PST (Pacific Standard Time)
28
---> 29 sunrise, sunset = get_sunrise_sunset(year, month, day, latitude, longitude, timezone)
30
31 # Print sunrise and sunset times
<ipython-input-44-523679a7283f> in get_sunrise_sunset(year, month, day, latitude, longitude, timezone)
13
14 # Compute sunrise
---> 15 sunrise_info = swe.rise_trans(jd_ut, swe.SUN, longitude, latitude, rsmi=swe.CALC_RISE | swe.BIT_DISC_CENTER)
16 sunrise = swe.revjul(sunrise_info[1][0])
17
TypeError: 'float' object cannot be interpreted as an integer
