
    1i^:                     T   S SK Jr  S SKJr  0 rS\S'   S\S'   \S-  rSrS	S
S.rS r	S r
S rS rS rS.S jrS.S jr\SSSSS4S jr\SSSSS4S jrS/S jrS/S jr\SSSSS4S jr\SSSSS4S jrS rS r\SSSSS4S  jrS! rS" rS# rS$ rS% rS& rS' rS( r S) r!S* r"S+ r#S, r$g-)0   )numeric)standard_pressuregq=
ףp?high-frequencygzG?low-frequencyd   ga2U0*3?g33333ۃ@g-@)r   r   c           	          SU -
  nS[         R                  SS[         R                  " [         R                  " U5      5      -  -
  -  -
  $ )NZ   r   gvq-gd`TR?)mathecosradians)altitude_degZs     O/var/www/html/motor_solar_iot/venv/lib/python3.13/site-packages/pysolar/rest.py&get_aerosol_forward_scatterance_factorr   %   s;    
\Atvv'FTXXdll1o-F$FFGGG    c                     XU* -  -  $ N )turbidity_betaeffective_wavelengthturbidity_alphas      r   get_aerosol_optical_depthr   *   s    _4DDDDr   c                    U S:X  af  SSU-  -   SUS-  -  -   SSUS-  -  -   -  nSS	U-  -
  S
US-  -  -   SSUS-  -  -   -  nSSU-  -   SUS-  -  -   SSUS-  -  -   -  nX4U-  -   SXR-  -   -  $ SSU-  -   SUS-  -  -   SSUS-  -  -   -  nSSU-  -
  SUS-  -  -   SSUS-  -  -   -  nSSU-  -
  SUS-  -  -   SSUS-  -  -   -  nXgU-  -   SX-  -   -  $ )Nr   gQ@gZd;O?g ?   r   g}N?gˡEĿgJ8?gsM?g@5_%_?gM#~Ūg_Fj?g"?gL@|?g9#J{@g"2?g;_H6?gM?g      ?gV-?g<;k7?g;)t?g&S?gBiq?gIF?gGɫs?gsF?r   )	bandmatau_ag0g1g2h0h1h2s	            r   (get_aerosol_scattering_correction_factorr%   .   se   ebj 8bAg#55R1W$$&w|#ga&77B!G##%'B,&27)::R1W$$&%ZA
N33w|#j27&::B#I%%'gl"WrQw%66")##%w|#ga&7729$$&%ZA
N33r   c                 6    [         R                  " U* U-  5      $ r   )r
   expr   r   r   s      r   get_aerosol_transmittancer)   B   s    88RC%K  r   c                 J    [         R                  " U* [        U    -  U-  5      $ r   )r
   r'   albedor(   s      r   $get_aerosol_scattering_transmittancer,   G   s!    88RC&,&.//r   ?333333?c                 4    [        SX5      [        SX5      -   $ Nr   r   )6get_backscattered_diffuse_broadband_irradiance_by_band)r   r   r   s      r   .get_backscattered_diffuse_broadband_irradiancer2   K   s6    ABRTct  xn  o~  @O  x`  `  `r   c                 V    [        XU5      n[        U 5      nXe-  X-   -  SXe-  -
  -  nU$ )Nr   )get_sky_albedoget_ground_albedo)r   EbiEdpir   r   rhosrhogEddis           r   ,get_backscattered_diffuse_irradiance_by_bandr;   N   s6    $@DT"D;#*%T[9DKr   gffffff?g-C6*?g      @c           	          SU -
  n[        XX#XEU5      nU[        R                  " [        R                  " U5      5      -  $ Nr	   )&get_broadband_direct_normal_irradiancer
   r   r   )	r   pressure_millibarsozone_atm_cmnitrogen_atm_cmprecipitable_water_cmr   r   r   Ebns	            r   get_beam_broadband_irradiancerD   U   sF    
\A
0S_  sH  [i  jC$,,q/***r   c           
          SU-
  n[        XX#XEXg5      n	U	[        R                  " [        R                  " U5      5      -  $ r=   )$get_direct_normal_irradiance_by_bandr
   r   r   )
r   r   r?   r@   rA   rB   r   r   r   Ebnis
             r   get_beam_irradiance_by_bandrH   Z   sB    
\A/DVfu  O^  oD$((4<<?+++r   c                 8    [        SXU5      [        SXU5      -   $ r0   )get_diffuse_irradiance_by_band)air_massr   r   s      r    get_diffuse_broadband_irradiancerL   _   s?    )*:HWef  jH  IX  Zb  uC  jD  D  Dr   c                    S[         -
  n[        X5      n[        X5U5      n[        [         5      n[	        [         5      n[        [         [        5      n	[        X5      n
[        X	5      n[        U S5      n[        U S5      n[        X	5      n[        XU5      n[        XU5      n[        X5      n[        [         5      n[!        XU5      nX-  U-  U-  USU-
  -  US-  -  UU-  U-  SUS-  -
  -  -   -  ["        U    -  nU$ )Nr	   (\?r   g      ?)r    get_effective_aerosol_wavelengthr   get_optical_mass_aerosolget_optical_mass_ozoneget_optical_mass_rayleighr?   get_ozone_transmittanceget_gas_transmittanceget_nitrogen_transmittanceget_water_vapor_transmittanceget_rayleigh_transmittancer)   r,   3get_rayleigh_extinction_forward_scattering_fractionr   r%   E0n)r   rK   r   r   r   r   r   r   momRToTgTnTwTRTaTasBRBaFr7   s                        r   rJ   rJ   c   s   
\A;DR%o?E	!,	/B		-B	"<1C	DB	 	*B	t	(B	#D$	/B	&tT	2B	#D	-B	"4U	3B
.t
?C	<T	LB	/	=B05AA7R<"	q2vt	#b1frkQ_&E	EGD	D Kr   c           
      F    [        SXX#XEU5      n[        SXX#XEU5      nXx-   $ r0   )rF   )	r   r?   r@   rA   rB   r   r   highlows	            r   r>   r>   ~   s?    /0@,+7J_  sABD
.*6I^qAC:r   c                 b   [        U5      n[        U5      n	[        X5      n
X-  [        -  n[	        U5      n[        XXg5      n[        X}U5      n[        X5      n[        X5      n[        X	U5      n[        XU5      n[        XU5      n[        XU5      n[        U    U-  U-  U-  U-  U-  U-  $ r   )rP   rQ   rR   standard_pressure_millibarsget_optical_mass_waterrO   r   rW   rT   rS   rU   rV   r)   rY   )r   r   r?   r@   rA   rB   r   r   r   rZ   r[   mRprimemwr   r   r`   r]   r\   r^   r_   ra   s                        r   rF   rF      s    	!,	/B		-B	"<	DB%(CCG		-B;/3%o?E 
$D	2B	t	-B	 <	8B	#Do	>B	&t1F	GB	"4U	3Bt9r>B#b(2-22r   c                 B   [         R                  " SX-  -   5      nU S:X  a~  UnSSU-  -
  nSSU-  -
  SUS-  -  -   SS	U-  -   -  nS
SU-  -   SUS-  -  -
  SSU-  -
  -  nUSSU-  -
  SUS-  -  -   -  SSU-  -
  SUS-  -  -   -  n	XgU-  -   XS-  -  -   SXS-  -  -   -  $ Un
SSU
-  -
  SU
S-  -  -   SSU
-  -   -  nSSU
-  -
  SU
S-  -  -   SSU
-  -   -  nSSU
-  -   SU
S-  -  -   SSU
-  -   -  nSS U
-  -
  S!U
S-  -  -   SS"U
-  -   -  nXU-  -   XS-  -  -   SX-  -   -  $ )#Nr   r   gs?g?8:V?gr9?g/'?gT[r?r   gaTR'?g	Qg9dw?g'1Z?g.oӽ?gkC8?g'S?g=N?g?gW	3?g!rh?gūm?g;2T?gUMu?g > gv?gn4@?gsA?g㈵ glxz,C?gUx?gtV&@gPfgp>??gz{?g7A`@)r
   log)r   r   r   r   uaa1d0d1d2d3a2e0e1e2e3s                  r   rO   rO      s   	!b))	*Bx"}$"$wq'88Q"_M'B,&27)::27X]*Xa-??@2"' 113"Wr!G|+BqL0@AAhm#hq&88Q2=MN2%"'(99a&2+oN"$y27'::q6B;O2%"'(99a&2+oN"Wr!G|+BG<<r   c                     U S:X  a#  SSU-  -   SUS-  -  -   SSU-  -   SUS-  -  -   -  $ SSU-  -   S	US-  -  -
  SS
U-  -   -  $ )Nr   r   g1?gֈ`\?r   g%ǝ?g9zަ?gٙB5v?guuD?gr.Ue?r   r   rl   s     r   rT   rT      sy    Gg%%7a<(??ARYHYDY\dgnrsgs\sDsttGg%%
W\(AAa'T[J[F[\\r   c           
          [        SXX#XEU5      n[        SXX#XEU5      n[        S[        XV5      n	[        S[        XV5      n
[        SXyXV5      n[        SXXV5      nXx-   U	-   U
-   U-   U-   $ r0   )rH   rJ   rK   r;   )r   r?   r@   rA   rB   r   r   Eb_highEb_lowEdp_highEdp_lowEdd_highEdd_lows                r   get_global_broadband_irradiancer      s    )*:L^j  ~S  ft  uG)/L^j  ~S  ft  uF-.>/jH-o/jG;<Lgap  BH;OV^m~Gh&08;gEEr   c                     g)Ng333333?r   )r   s    r   r5   r5      s     r   c                 <   U S:X  a  SS[         -  -   S[         S-  -  -
  SS[         S-  -  -   -  n[         SS	[         -  -   -  SS
[         S-  -  -   -  nSS[         -  -   S[         S-  -  -   SS[         S-  -  -   -  n[        SSX1-  -   XAS-  -  -   SXQ-  -   -  5      $ g)Nr   gBf?gʡED@gĠ@r   r   g    @g`vOjgxM@gffffG@gNbX9N@g33333@g    @      ?)unmin)r   rm   rA   r    r!   g3s         r   rU   rU      s    #frQw&6627""$7Vb[()Q"'1A-AB#frQw&6627""$1q27{R'\1a"'kBCCr   c                     SU -
  n[         R                  " U5      nU[        -  [         R                  " U5      SUS-  -  -   SU-
  S-  -  -  $ )Nr	   g('?gs]?gCl/X@gMb?)r
   r   rj   r   )r   r?   r   Z_rads       r   rR   rR      sp    
\ALLOE!<<$((5/T[^cgo^oToBotz  ~C  uC  HM  tM  BM  N  Nr   c                     SU -
  n[         R                  " U5      nS[         R                  " U5      SUS-  -  -   SU-
  S-  -  -  $ )Nr	   r   g{/L
?gBi?g33333sY@gV/'@r
   r   r   r   r   r   s      r   rQ   rQ      sI    
\ALLOE%6EVO#;;RX?XXYYr   c                     SU -
  n[         R                  " U5      nS[         R                  " U5      SUS-  -  -   SU-
  S-  -  -  $ )Nr	   r   gEB?g<8b->?gDlqW@g$(~?r   r   s      r   rk   rk      J    
\ALLOE%7Ug-=#==&5.U[A[[\\r   c                     SU -
  n[         R                  " U5      nS[         R                  " U5      SUS-  -  -   SU-
  S-  -  -  $ )Nr	   r   gRDU?gVCK?g1ZW@g}8gD?r   r   s      r   rP   rP      r   r   c                     U S:X  an  USSU-  -
  -  SSU-  -   SUS-  -  -   -  nUSS	U-  -
  -  SS
U-  -
  SUS-  -  -   -  nUSSU-  -
  -  SSU-  -   SUS-  -  -   -  nSX1-  -   XAS-  -  -   SXQ-  -   -  $ g)Nr   gh|?%@gR!!@r   gd;O @gx&1D@r   g'rJ@g5x_u?gmV}@gM+@g=
ףp%@g6 @gгY?g3E@r   r   )r   rZ   uof1f2f3s         r   rS   rS      s    6FRK'(AOfrQw>N,NO9x"},-"_va//16FRK'(AOfrQw>N,NOBGb7l*q27{;;r   c                 8    U S:X  a  SSSU-  -
  SUS-  -  -   -  $ g)Nr   g      ?g{?ga_?gӀ?r   r   )r   r[   s     r   rX   rX      s0    g2-bAg0EEFFr   c                 |    U S:X  a#  SSU-  -   SUS-  -  -   SSU-  -   SUS-  -  -   -  $ SSU-  -
  SS	US-  -  -
  -  $ )
Nr   r   gn?g< ?r   g/$ @gezFw?gxԘsI?g')?r   r|   s     r   rW   rW     sl    FW$$x'Q,'>>1uwCVY`cjnocoYoCoppHw&&1zGqL/H+HIIr   c                     U S:X  a;  UnUnSSU-  -   USSU-  -   -  SSU-  -
  -  -   SUSS	U-  -   -  SS
U-  -
  -  -   -  nU$ UnUnSSU-  -   USSU-  -   -  SSU-  -
  -  -   SUSSU-  -   -  SSU-  -
  -  -   -  nU$ )Nr   g{?g%fBYI?g	/
?g^?r   gB	ܺ?g?g|,}?gQHm?g]R߄?gU3L?g%?gY?gb?gHĔH?gu&N?gWV?r   )r   r   r   rq   b1r8   rv   b2s           r   r4   r4     sQ   *r/)B'4;bL3A -BEFSUEU-W W[\_aelgnqsgsft `uxy  }D  GI  }I  yI`J \JK K :?*R75=]4C .DGH7UW<GW.Y Y]^acgnipsuiuhv bwz{  F  IK  K  {KbL ^LM Kr   c                     U S:X  a"  [        X5      nSUS   U-  -   SUS   U-  -   -  $ [        X5      nSUS   U-  -   US   US-  -  -   SUS   U-  -   US   US-  -  -   -  $ )Nr   r   r         )*get_water_vapor_transmittance_coefficients)r   rm   whcs        r   rV   rV     s    6t?AaD2I!adRi-006t?AaD2I!rQw.1qtby=1Q4"PQ'>3QRRr   c                    U S:X  a5  USSU-  -   -  SSU-  -   -  nUSSU-  -   -  SSU-  -   -  n[        S	5      X#/$ US
SU-  -
  SUS-  -  -   -  SSU-  -   SUS-  -  -   -  nUSSU-  -
  SUS-  -  -   -  SSU-  -   SUS-  -  -   -  nUSSU-  -
  SUS-  -  -   -  SSU-  -   SUS-  -  -   -  nUSSU-  -
  SUS-  -  -   -  SSU-  -   SUS-  -  -   -  n[        S	5      XEXg/$ )Nr   g̯ ?g@+3?r   gec]?gܸа?gI	fU?gz6?NaNg7A`3@gqh?gN@?r   g\m@gS㥛?g[|
?ga?g/\?g?g_vO?gK7I5@g$EdX?gTN?gO@aS@gd;O?g%?g3ı.n?gA,9$?gW?gA`"?)float)r   r   r#   r$   c1c2c3c4s           r   r   r   !  sb   (Z!^+,FQJ?(Y]*+q6A:~>eb%%&6A:%a78!^fqAvo-/'GaK'(Q!V*;;<!^fqAvo-/&7Q;&!q&89!^ea1fn,.'GaK'(Q!V*;;<1_wa//1ebb--r   N)r-   r.   )rN   r-   r.   )% r   r
   	constantsr   r+   rj   r   rY   r   r   r%   r)   r,   r2   r;   rD   rH   rL   rJ   r>   rF   rO   rT   r   r5   rU   rR   rQ   rk   rP   rS   rX   rW   r4   rV   r   r   r   r   <module>r      s  *  ( 
  /#5  H
E4(!
0` D_mq  DJ  be  wz  KN +
 Hcqu  HN  fi  {~  OR ,
D6 Mhvz  MS  kn  @C  TW  Qlz~  QW  or  DG  X[ 3,=*] Faos  FL  dg  y|  MP 
F	NZ]]J S.r   