solar-calculator
Version:
Equations for computing the position of the Sun.
1 lines • 1.91 kB
JavaScript
!function(n,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e(n.solar=n.solar||{})}(this,function(n){"use strict";function e(n){return i*n/180}function t(n){return 180*n/i}var r=Math.acos,u=Math.asin,o=Math.cos,i=Math.PI,a=Math.pow,c=Math.sin,f=Math.tan,s=function(n){var e=(280.46646+n*(36000.76983+3032e-7*n))%360;return e<0?e+360:e},d=function(n){return 357.52911+n*(35999.05029-1537e-7*n)},p=function(n){var t=e(d(n));return c(t)*(1.914602-n*(.004817+14e-6*n))+c(2*t)*(.019993-101e-6*n)+289e-6*c(3*t)},l=function(n){return s(n)+p(n)},h=function(n){return l(n)-.00569-.00478*c(e(125.04-1934.136*n))},v=Date.UTC(2e3,0,1,12),y=function(n){return(n-v)/315576e7},M=function(n){return 23+(26+(21.448-n*(46.815+n*(59e-5-.001813*n)))/60)/60+.00256*o(e(125.04-1934.136*n))},m=function(n){return t(u(c(e(M(n)))*c(e(h(n)))))},w=function(n){return.016708634-n*(42037e-9+1.267e-7*n)},D=function(n){var r=M(n),u=s(n),i=w(n),p=d(n),l=a(f(e(r)/2),2),h=c(2*e(u)),v=c(e(p));return 4*t(l*h-2*i*v+4*i*l*v*o(2*e(u))-.5*l*l*c(4*e(u))-1.25*i*i*c(2*e(p)))},b=function(n,u){var i=e(u),a=e(m(y(n)));return-t(r(o(e(90.833))/(o(i)*o(a))-f(i)*f(a)))},g=function(n,e){var t=-b(n,e);return isNaN(t)?(t=m(y(n)),24*(e<0?t<.833:t>-.833)):8*t/60},O=function(n){return(n=new Date(+n)).setUTCHours(0,0,0,0),n},q=function(n,e){var t=y(+O(n)+36e5*(12-24*e/360)),r=720-4*e-D(t-e/13149e3),u=720-4*e-D(t+r/52596e3);return new Date(+O(n)+1e3*u*60)},x=function(n,e,t){return n=q(n,t),new Date(+n+4*b(n,e)*1e3*60)},C=function(n,e,t){return n=q(n,t),new Date(+n-4*b(n,e)*1e3*60)};n.apparentLongitude=h,n.century=y,n.declination=m,n.equationOfCenter=p,n.equationOfTime=D,n.hours=g,n.meanAnomaly=d,n.meanLongitude=s,n.noon=q,n.obliquityOfEcliptic=M,n.orbitEccentricity=w,n.riseHourAngle=b,n.rise=x,n.set=C,n.trueLongitude=l,Object.defineProperty(n,"__esModule",{value:!0})});