|
14 | 14 |
|
15 | 15 |
|
16 | 16 | def ineichen(apparent_zenith, airmass_absolute, linke_turbidity,
|
17 |
| - altitude=0, dni_extra=1364., perez_enhancement=False): |
| 17 | + altitude=0, dni_extra=1364., perez_enhancement=None): |
18 | 18 | '''
|
19 | 19 | Determine clear sky GHI, DNI, and DHI from Ineichen/Perez model.
|
20 | 20 |
|
@@ -104,11 +104,18 @@ def ineichen(apparent_zenith, airmass_absolute, linke_turbidity,
|
104 | 104 | cg1 = 5.09e-05 * altitude + 0.868
|
105 | 105 | cg2 = 3.92e-05 * altitude + 0.0387
|
106 | 106 |
|
107 |
| - ghi = np.exp(-cg2*airmass_absolute*(fh1 + fh2*(tl - 1))) |
108 |
| - |
109 | 107 | # https://github.com/pvlib/pvlib-python/issues/435
|
110 |
| - if perez_enhancement: |
111 |
| - ghi *= np.exp(0.01*airmass_absolute**1.8) |
| 108 | + # https://github.com/pvlib/pvlib-python/issues/1064 |
| 109 | + if perez_enhancement == True or perez_enhancement == 1: |
| 110 | + ghi = np.exp(-cg2*airmass_absolute*(fh1 + fh2*(tl - 1)) + |
| 111 | + 0.01*airmass_absolute**1.8) |
| 112 | + elif perez_enhancement == False or perez_enhancement == 0: |
| 113 | + ghi = np.exp(-cg2*airmass_absolute*(fh1 + fh2*(tl - 1))) |
| 114 | + else: |
| 115 | + airmass_critical = (cg2*(fh1+fh2*(tl-1))/0.018)**1.25 |
| 116 | + airmass_clipped = np.fmin(airmass_absolute, airmass_critical) |
| 117 | + ghi = np.exp(-cg2*airmass_clipped*(fh1 + fh2*(tl - 1)) + |
| 118 | + 0.01*airmass_clipped**1.8) |
112 | 119 |
|
113 | 120 | # use fmax to map airmass nans to 0s. multiply and divide by tl to
|
114 | 121 | # reinsert tl nans
|
|
0 commit comments