Un proiect editorial marca Rentrop&Straton
Liderul informatiilor specializate din Romania
Actualizari legislative. Modele. Explicatii.
E-JURIDIC.RO cauta meniuMeniu
Consultanta in afaceri | Manager

Udaya Lagna Calculator -

function getSignAndDegree(siderealDeg) let signIndex = Math.floor(siderealDeg / 30); let degInSign = siderealDeg - (signIndex * 30); return sign: zodiacSigns[signIndex], deg: degInSign.toFixed(2), lord: lords[signIndex] ;

<!-- Astronomical library for precise planetary positions --> <script src="https://cdn.jsdelivr.net/npm/astronomia@4.0.2/astronomia.min.js"></script> <script> // Wait for library + DOM window.addEventListener('DOMContentLoaded', () => // Helper: Geocode city using OpenStreetMap Nominatim (free, no key) async function geocodeCity(city) if (!city.trim()) return null; try const resp = await fetch( https://nominatim.openstreetmap.org/search?q=$encodeURIComponent(city)&format=json&limit=1 ); const data = await resp.json(); if (data && data.length) return lat: parseFloat(data[0].lat), lon: parseFloat(data[0].lon) ;

// Convert tropical ecliptic longitude to sidereal nirayana function tropicalToSidereal(tropicalLon, jd) let ayan = getLahiriAyanamsha(jd); let sidereal = tropicalLon - ayan; sidereal = ((sidereal % 360) + 360) % 360; return sidereal; Udaya Lagna Calculator

// Update lat/lon fields when city changes const cityInput = document.getElementById('cityName'); const latField = document.getElementById('lat'); const lonField = document.getElementById('lon'); let currentCoords = null;

// Zodiac sign name from 0° Aries (0 = Aries ... 11 = Pisces) const zodiacSigns = [ "Mesha (Aries)", "Vrishabha (Taurus)", "Mithuna (Gemini)", "Karka (Cancer)", "Simha (Leo)", "Kanya (Virgo)", "Tula (Libra)", "Vrishchika (Scorpio)", "Dhanu (Sagittarius)", "Makara (Capricorn)", "Kumbha (Aquarius)", "Meena (Pisces)" ]; const lords = ["Mars", "Venus", "Mercury", "Moon", "Sun", "Mercury", "Venus", "Mars", "Jupiter", "Saturn", "Saturn", "Jupiter"]; function getSignAndDegree(siderealDeg) let signIndex = Math

// initial load demo for Mumbai (async () => const initCity = cityInput.value; const coords = await geocodeCity(initCity); if(coords) currentCoords = coords; latField.value = coords.lat.toFixed(4); lonField.value = coords.lon.toFixed(4); )();

// Compute ascendant using astronomia function computeAscendant(jd, lat, lon) // Get local sidereal time (LMST) const gmst = astronomia.siderealTime(jd); const lst = (gmst + lon / 15) % 24; // lon in degrees -> hours const ramc = lst * 15; // Right ascension of MC in degrees // formula for ascendant: tan(A) = sin(Θ) / (cos(Θ) sin(ε) + tan(φ) cos(ε)) // epsilon (obliquity) const epsilon = astronomia.obliquity(jd) * Math.PI/180; const latRad = lat * Math.PI/180; const ramcRad = ramc * Math.PI/180; const sinTheta = Math.sin(ramcRad); const cosTheta = Math.cos(ramcRad); const tanPhi = Math.tan(latRad); let numerator = sinTheta; let denominator = cosTheta * Math.sin(epsilon) + tanPhi * Math.cos(epsilon); let A = Math.atan2(numerator, denominator); let asc = A * 180 / Math.PI; if (asc < 0) asc += 360; // Ensure quadrant: ascendant should be in same quadrant as ramc + 90° let ramcQuadrant = Math.floor(ramc / 90) % 4; let ascQuadrant = Math.floor(asc / 90) % 4; while (ascQuadrant !== ramcQuadrant) asc += 90; if (asc >= 360) asc -= 360; ascQuadrant = Math.floor(asc / 90) % 4; return asc; // Use astronomia's siderealTime

// Sidereal zodiac boundaries (Nirayana) - tropical sign boundaries minus ayanamsha. // Lahiri Ayanamsha for given JD. function getLahiriAyanamsha(jd) // Approx formula: 23° 26' 21.406" - t/76 ? Actually use astronomia's built-in precise calculation // astronomia has ayanamsha for sidereal positions. We'll compute directly with function. // Use astronomia's siderealTime? Better: compute tropical ascendant then subtract ayanamsha. const obliquity = astronomia.obliquity(jd); // Mean Ayanamsha formula by IAU 1976 / Lahiri: ~ 23° 26' 21.406" – (precession) but for simple we use astronomia's precession // However, astronomia's ayanamsha is not directly exposed but we can compute using mean longitude of sun - sidereal sun? Let's use built-in: // astronomia.ayanamsha() is not in this bundle, but we use: // modern lahiri = 23° 26' 21.406" - ( (JD - 2451545)/36525 * 50.290966 )/3600 approx. // More accurate: use precise precession from astronomia. const t = (jd - 2451545) / 36525; // Julian centuries since J2000 const precessionRateArcsec = 50.290966; // arcsec/year? Actually per century: 5029.0966 arcsec? no, 50.290966 arcsec/year. Let's do per tropical century: const precessionPerCenturyDeg = (5029.0966) / 3600; // in degrees per Julian century let ayan = precessionPerCenturyDeg * t; // base offset at J2000 = 23° 51' 21.406"?? No, correct Lahiri at J2000 is about 23.856° approx // We'll use standard known value: Lahiri ayanamsha for J2000 = 23° 51' 21.406" = 23.855946° const ayanJ2000 = 23.855946; let ayanamshaDeg = ayanJ2000 + precessionPerCenturyDeg * t; // but more stable: ensure we return degrees. return (ayanamshaDeg + 360) % 360;

catch(e) console.warn(e); return null;

©2026 RENTROP & STRATON
Toate drepturile rezervate.
SATI
Da, vreau informatii despre produsele Rentrop&Straton. Sunt de acord ca datele personale sa fie prelucrate conform Regulamentul UE 679/2016
Udaya Lagna Calculator