{"version":3,"sources":["jsdelivr-header.js","/npm/@robireton/meeus@1.1.0/meeus.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA,OCNO,WAAY,2BACZ,uBAAwB,yBACxB,kCAAmC,iCACnC,iBAAkB,4BAElB,SAAS,YAAa,EAAM,EAAK,GACtC,MAAM,EAAM,mBAAmB,GACzB,EAAe,cAAc,GAGnC,IAAI,EAAI,OAAO,kBAAkB,EAAa,EAAI,KAC9C,GAAK,EAAa,EAGtB,MAAM,GAAK,EAAM,SAAW,MACtB,EAAK,EAAI,GAAc,IAAM,MAAU,GAAxB,OAGrB,IAFY,OAAU,KAGtB,GAFY,OAAU,MAAS,KAAK,IAAI,OAAO,iBAAiB,IAAO,KAAK,IAAI,OAAO,iBAAiB,KAKxG,MAAM,EAAY,8BAA8B,GAC1C,EAAI,EAAI,EAAU,GAAM,QAAU,KAAQ,EAAa,EAGvD,EAAI,OAAO,iBAAiB,EAAU,GACtC,EAAI,OAAO,kBAAkB,OAAO,iBAAiB,KAAK,MAAM,KAAK,IAAI,OAAO,iBAAiB,IAAM,KAAK,IAAI,GAAK,KAAK,IAAI,OAAO,iBAAiB,IAAM,KAAK,IAAI,GAAI,KAAK,IAAI,OAAO,iBAAiB,OAC1M,EAAI,OAAO,iBAAiB,KAAK,KAAK,KAAK,IAAI,OAAO,iBAAiB,IAAM,KAAK,IAAI,GAAK,KAAK,IAAI,OAAO,iBAAiB,IAAM,KAAK,IAAI,GAAK,KAAK,IAAI,OAAO,iBAAiB,MAGjL,EAAI,EAAI,GACR,EAAK,OAAO,kBAAkB,YAAc,GAAK,eAAiB,GAAK,UAAa,GAAK,EAAI,MAAQ,IAAM,EAAI,MAAQ,EAAI,YACjI,IAII,EAAG,EAJH,EAAI,OAAO,kBAAkB,EAAK,SAAY,EAAI,EAAU,GAAK,KAAK,IAAI,IAK9E,GAJI,EAAI,MAAK,GAAK,KAClB,GAAK,GAGA,MAAM,KAAS,MAAM,GAAM,CAC9B,MAAM,EAAK,OAAO,kBAAkB,aAAe,iBAAmB,EAAM,SAAa,UAAc,EAAI,EAAI,EAAI,EAAI,EAAI,QAAY,EAAU,GAAK,KAAK,IAAI,GAEzJ,GAAK,EACL,EAAI,EAEJ,EAAI,OAAO,kBAAkB,EAAK,EAAI,GAE5C,EAAI,OAAO,kBAAkB,IAAM,OAAO,iBAAiB,KAAK,MAAM,KAAK,IAAI,OAAO,iBAAiB,IAAK,KAAK,IAAI,OAAO,iBAAiB,IAAM,KAAK,IAAI,OAAO,iBAAiB,IAAM,KAAK,IAAI,OAAO,iBAAiB,IAAM,KAAK,IAAI,OAAO,iBAAiB,OAElQ,EAAI,OAAO,iBAAiB,KAAK,KAAK,KAAK,IAAI,OAAO,iBAAiB,IAAM,KAAK,IAAI,OAAO,iBAAiB,IAAM,KAAK,IAAI,OAAO,iBAAiB,IAAM,KAAK,IAAI,OAAO,iBAAiB,IAAM,KAAK,IAAI,OAAO,iBAAiB,KACrO,CAEA,MAAO,CACL,EAAG,EACH,EAAG,KAAK,MAAM,IAAU,GAAK,IAC7B,EAAG,KAAK,MAAM,IAAU,GAAK,IAEjC,CAEA,SAAS,cAAe,GAEtB,MAAM,GAAK,EAAM,SAAW,OAEtB,EAAI,OAAO,kBAAkB,cAAc,aAAa,EAAG,IAC3D,EAAI,cAAc,aAAa,EAAG,GAClC,EAAI,cAAc,aAAa,EAAG,GAExC,MAAO,CACL,EAAG,OAAO,iBAAiB,GAC3B,EAAG,OAAO,iBAAiB,GAC3B,EAAG,EAEP,CAEA,SAAS,cAAe,EAAK,GAC3B,IAAI,EAAI,EACR,IAAK,MAAM,KAAK,EAAK,CACnB,IAAI,EAAQ,EACZ,IAAK,MAAM,KAAK,EAAI,GAClB,GAAS,EAAE,EAAI,KAAK,IAAI,EAAE,EAAI,EAAE,EAAI,GAEtC,GAAK,EAAQ,KAAK,IAAI,EAAG,EAC3B,CAEA,OAAO,CACT","file":"/npm/@robireton/meeus@1.1.0/meeus.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/@robireton/meeus@1.1.0/meeus.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","import circle from '@robireton/circle'\nimport JulianEphemerisDay from './julian-day.js'\nimport calculateNutationAndObliquity from './nutation-obliquity.js'\nimport earthVSOP87D from './vsop87d-earth.js'\n\nexport function positionSun (date, lat, lon) {\n  const JDE = JulianEphemerisDay(date)\n  const heliocentric = positionEarth(JDE)\n\n  // convert heliocentric longitude & latitude to geocentric\n  let Θ = circle.normalizedDegrees(heliocentric.L + 180)\n  let β = -heliocentric.B\n\n  // convert to FK5 reference frame\n  const T = (JDE - 2451545) / 36525 // time in centuries from 2000.0\n  const λ_ = Θ + T * (-1.397 + T * (-0.00031 * T))\n  const ΔΘ = -0.09033 / 3600\n  const Δβ = (0.03916 / 3600) * (Math.cos(circle.DegreesToRadians(λ_)) - Math.sin(circle.DegreesToRadians(λ_)))\n  Θ += ΔΘ\n  β += Δβ\n\n  // correct for nutation and aberration\n  const objNutObl = calculateNutationAndObliquity(JDE)\n  const λ = Θ + objNutObl.Δψ - (20.4898 / 3600) / heliocentric.R\n\n  // convert to right ascension & declination\n  const ε = circle.DegreesToRadians(objNutObl.ε)\n  const α = circle.normalizedDegrees(circle.RadiansToDegrees(Math.atan2(Math.sin(circle.DegreesToRadians(λ)) * Math.cos(ε) - Math.tan(circle.DegreesToRadians(β)) * Math.sin(ε), Math.cos(circle.DegreesToRadians(λ)))))\n  const δ = circle.RadiansToDegrees(Math.asin(Math.sin(circle.DegreesToRadians(β)) * Math.cos(ε) + Math.cos(circle.DegreesToRadians(β)) * Math.sin(ε) * Math.sin(circle.DegreesToRadians(λ))))\n\n  // c.f. Chapter 27 of Astronomical Algorithms by Jean Meeus\n  const τ = T / 10\n  const L0 = circle.normalizedDegrees(280.4664567 + τ * (360007.6982779 + τ * (0.03032028 + τ * (1 / 49931 + τ * (-1 / 15299 - τ / 1988000)))))\n  let E = circle.normalizedDegrees(L0 - 0.0057183 - α + objNutObl.Δψ * Math.cos(ε))\n  if (E > 180) E -= 360\n  E *= 4 // convert degrees of arc to minutes of time\n\n  let A, h\n  if (!isNaN(lat) && !isNaN(lon)) {\n    const θ0 = circle.normalizedDegrees(280.46061837 + 360.98564736629 * (JDE - 2451545.0) + 0.000387933 * T * T + T * T * T / 38710000) + objNutObl.Δψ * Math.cos(ε)\n\n    const L = -lon // Meeus thumbs his nose at the IAU and considers longitude to increase west from Greenwich\n    const φ = lat\n\n    const H = circle.normalizedDegrees(θ0 - L - α)\n\n    A = circle.normalizedDegrees(180 + circle.RadiansToDegrees(Math.atan2(Math.sin(circle.DegreesToRadians(H)), Math.cos(circle.DegreesToRadians(H)) * Math.sin(circle.DegreesToRadians(φ)) - Math.tan(circle.DegreesToRadians(δ)) * Math.cos(circle.DegreesToRadians(φ)))))\n\n    h = circle.RadiansToDegrees(Math.asin(Math.sin(circle.DegreesToRadians(φ)) * Math.sin(circle.DegreesToRadians(δ)) + Math.cos(circle.DegreesToRadians(φ)) * Math.cos(circle.DegreesToRadians(δ)) * Math.cos(circle.DegreesToRadians(H))))\n  }\n\n  return {\n    E: E, // value for the equation of time in minutes\n    A: Math.round(1000000 * A) / 1000000, // azimuth in degrees, measured westward from the South\n    h: Math.round(1000000 * h) / 1000000 // altitude in degrees, positive above the horizon, negative below\n  }\n}\n\nfunction positionEarth (JDE) {\n  // c.f. Chapter 31 of Astronomical Algorithms by Jean Meeus\n  const τ = (JDE - 2451545) / 365250\n\n  const L = circle.normalizedRadians(computeVSOP87(earthVSOP87D.L, τ))\n  const B = computeVSOP87(earthVSOP87D.B, τ)\n  const R = computeVSOP87(earthVSOP87D.R, τ)\n\n  return {\n    L: circle.RadiansToDegrees(L), // the ecliptical longitude in degrees\n    B: circle.RadiansToDegrees(B), // the ecliptical latitude in degrees\n    R: R // the radius vector (distance to Sun) in AU\n  }\n}\n\nfunction computeVSOP87 (obj, T) {\n  let X = 0\n  for (const α in obj) {\n    let coeff = 0\n    for (const β of obj[α]) {\n      coeff += β.A * Math.cos(β.B + β.C * T)\n    }\n    X += coeff * Math.pow(T, α)\n  }\n\n  return X\n}\n"]}