y s jagan hs

 

from astral import LocationInfo
from astral.sun import sun
import datetime
import ephem
from pytz import timezone

def calculate_planetary_positions(birth_date_str, birth_time_str, latitude, longitude, timezone_str="Asia/Kolkata"):
    """Calculates planetary positions and assigns them to houses (simplified)."""
    try:
        # 1. Parse birth date and time, handling timezone
        birth_date = datetime.datetime.strptime(birth_date_str, "%Y-%m-%d").date()
        birth_time_obj = datetime.datetime.strptime(birth_time_str, "%I:%M %p")
        tz = timezone(timezone_str)
        birth_datetime = tz.localize(datetime.datetime.combine(birth_date, birth_time_obj.time()))

        # 2. Set geolocation directly using provided latitude and longitude
        city = LocationInfo("Jammalamadugu", "India", timezone_str, latitude, longitude)

        # 3. Sunrise calculation
        sr = sun(city.observer, date=birth_date)
        sunrise_time = sr['sunrise']

        # 4. Ephemeris calculations using PyEphem
        observer = ephem.Observer()
        observer.lat = city.latitude
        observer.lon = city.longitude
        observer.date = birth_datetime

        planets = {
            'Sun': ephem.Sun(),
            'Moon': ephem.Moon(),
            'Mars': ephem.Mars(),
            'Mercury': ephem.Mercury(),
            'Jupiter': ephem.Jupiter(),
            'Venus': ephem.Venus(),
            'Saturn': ephem.Saturn(),
        }

        planetary_positions = {}
        for planet_name, planet_obj in planets.items():
            planet_obj.compute(observer)
            planetary_positions[planet_name] = {
                'longitude': ephem.degrees(planet_obj.ra),
                'latitude': ephem.degrees(planet_obj.dec),
            }

        # 5. Lagna Calculation (Improved but still simplified)
        lagna = calculate_lagna(sunrise_time, birth_datetime)

        # 6. House positions (still simplified - needs a proper astrological library)
        house_positions = assign_planets_to_houses(lagna, planetary_positions)

        return {"lagna": lagna, "planetary_positions": planetary_positions, "house_positions": house_positions}

    except ValueError as e:
        return f"Error: {e}"  # More informative error message
    except Exception as e:
        return f"An error occurred: {e}"

# Improved (but still simplified) Lagna calculation
def calculate_lagna(sunrise_time, birth_time):
    time_diff_hours = (birth_time - sunrise_time).total_seconds() / 3600
    approx_lagna_degrees = (time_diff_hours / 24) * 360
    return approx_lagna_degrees % 360

def assign_planets_to_houses(lagna, planetary_positions):
    # This is a VERY simplified placeholder.
    houses = {}
    house_size = 360 / 12  # 30 degrees per house (simplification!)
    for planet, pos in planetary_positions.items():
        house_num = int((pos['longitude'] - lagna + 360) // house_size) % 12 + 1  # Adjust for negative values
        houses[planet] = house_num
    return houses

# Example usage:
birth_date = "1972-12-21"
birth_time = "1:30 AM"
latitude = 14.8473457  # Replace with accurate latitude
longitude = 78.382172   # Replace with accurate longitude

positions = calculate_planetary_positions(birth_date, birth_time, latitude, longitude)
print(positions)


neec to check code. giving error.
----> 6 from geopy.geocators import Nominatim
      7 
      8 from geopy.extra.rate_limiter import RateLimiter

ModuleNotFoundError: No module named 'geopy.geocators'

Popular posts from this blog

pss book : శ్రీకృష్ణుడు దేవుడా, భగవంతుడా completed , second review needed. 26th April 2024

pss book: గురు ప్రార్థనామంజరి . completed 21st july 2024

pss book: కధల జ్ఞానము read review pending. 25th june 2024