@@ -335,7 +335,7 @@ def disc(GHI, zenith, times, pressure=101325):
335
335
336
336
logger .debug ('clearsky.disc' )
337
337
338
- temp = pd .DataFrame (index = times , columns = ['A' ,'B' ,'C' ])
338
+ temp = pd .DataFrame (index = times , columns = ['A' ,'B' ,'C' ], dtype = float )
339
339
340
340
doy = times .dayofyear
341
341
@@ -355,16 +355,13 @@ def disc(GHI, zenith, times, pressure=101325):
355
355
Kt = GHI / I0h
356
356
Kt [Kt < 0 ] = 0
357
357
Kt [Kt > 2 ] = np .NaN
358
-
358
+
359
359
temp .A [Kt > 0.6 ] = - 5.743 + 21.77 * (Kt [Kt > 0.6 ]) - 27.49 * (Kt [Kt > 0.6 ] ** 2 ) + 11.56 * (Kt [Kt > 0.6 ] ** 3 )
360
360
temp .B [Kt > 0.6 ] = 41.4 - 118.5 * (Kt [Kt > 0.6 ]) + 66.05 * (Kt [Kt > 0.6 ] ** 2 ) + 31.9 * (Kt [Kt > 0.6 ] ** 3 )
361
361
temp .C [Kt > 0.6 ] = - 47.01 + 184.2 * (Kt [Kt > 0.6 ]) - 222.0 * Kt [Kt > 0.6 ] ** 2 + 73.81 * (Kt [Kt > 0.6 ] ** 3 )
362
362
temp .A [Kt <= 0.6 ] = 0.512 - 1.56 * (Kt [Kt <= 0.6 ]) + 2.286 * (Kt [Kt <= 0.6 ] ** 2 ) - 2.222 * (Kt [Kt <= 0.6 ] ** 3 )
363
363
temp .B [Kt <= 0.6 ] = 0.37 + 0.962 * (Kt [Kt <= 0.6 ])
364
364
temp .C [Kt <= 0.6 ] = - 0.28 + 0.932 * (Kt [Kt <= 0.6 ]) - 2.048 * (Kt [Kt <= 0.6 ] ** 2 )
365
-
366
- #return to numeric after masking operations
367
- temp = temp .astype (float )
368
365
369
366
delKn = temp .A + temp .B * np .exp (temp .C * AM )
370
367
@@ -374,8 +371,7 @@ def disc(GHI, zenith, times, pressure=101325):
374
371
DNI = Kn * I0
375
372
376
373
DNI [zenith > 87 ] = np .NaN
377
- DNI [GHI < 1 ] = np .NaN
378
- DNI [DNI < 0 ] = np .NaN
374
+ DNI [(GHI < 0 ) | (DNI < 0 )] = 0
379
375
380
376
DFOut = pd .DataFrame ({'DNI_gen_DISC' :DNI })
381
377
DFOut ['Kt_gen_DISC' ] = Kt
@@ -384,7 +380,7 @@ def disc(GHI, zenith, times, pressure=101325):
384
380
return DFOut
385
381
386
382
387
- def dirint (ghi , zenith , times , pressure , use_delta_kt_prime = True ,
383
+ def dirint (ghi , zenith , times , pressure = 101325 , use_delta_kt_prime = True ,
388
384
temp_dew = None ):
389
385
"""
390
386
Determine DNI from GHI using the DIRINT modification
@@ -409,7 +405,7 @@ def dirint(ghi, zenith, times, pressure, use_delta_kt_prime=True,
409
405
410
406
times : DatetimeIndex
411
407
412
- pressure : pd.Series
408
+ pressure : float or pd.Series
413
409
The site pressure in Pascal.
414
410
Pressure may be measured or an average pressure may be
415
411
calculated from site altitude.
@@ -537,6 +533,8 @@ def dirint(ghi, zenith, times, pressure, use_delta_kt_prime=True,
537
533
delta_kt_prime_bin - 1 , w_bin - 1 ]
538
534
539
535
dni = disc_out ['DNI_gen_DISC' ] * dirint_coeffs
536
+
537
+ dni .name = 'DNI_DIRINT'
540
538
541
539
return dni
542
540
0 commit comments