@@ -20,6 +20,7 @@ def basic_chain(times, latitude, longitude,
20
20
transposition_model = 'haydavies' ,
21
21
solar_position_method = 'nrel_numpy' ,
22
22
airmass_model = 'kastenyoung1989' ,
23
+ altitude = None , pressure = None ,
23
24
** kwargs ):
24
25
"""
25
26
An experimental function that computes all of the modeling steps
@@ -79,9 +80,23 @@ def basic_chain(times, latitude, longitude,
79
80
airmass_model : str
80
81
Passed to location.get_airmass.
81
82
83
+ altitude : None or float
84
+ If None, computed from pressure. Assumed to be 0 m
85
+ if pressure is also None.
86
+
87
+ pressure : None or float
88
+ If None, computed from altitude. Assumed to be 101325 Pa
89
+ if altitude is also None.
90
+
82
91
**kwargs
83
92
Arbitrary keyword arguments.
84
93
See code for details.
94
+
95
+ Returns
96
+ -------
97
+ output : (dc, ac)
98
+ Tuple of DC power (with SAPM parameters) (DataFrame) and AC
99
+ power (Series).
85
100
"""
86
101
87
102
# use surface_tilt and surface_azimuth if provided,
@@ -97,14 +112,24 @@ def basic_chain(times, latitude, longitude,
97
112
98
113
times = times
99
114
115
+ if altitude is None and pressure is None :
116
+ altitude = 0.
117
+ pressure = 101325.
118
+ elif altitude is None :
119
+ altitude = atmosphere .pres2alt (pressure )
120
+ elif pressure is None :
121
+ pressure = atmosphere .alt2pres (altitude )
122
+
100
123
solar_position = solarposition .get_solarposition (times , latitude ,
101
- longitude , ** kwargs )
124
+ longitude ,
125
+ altitude = altitude ,
126
+ pressure = pressure ,
127
+ ** kwargs )
102
128
103
129
# possible error with using apparent zenith with some models
104
130
airmass = atmosphere .relativeairmass (solar_position ['apparent_zenith' ],
105
131
model = airmass_model )
106
- airmass = atmosphere .absoluteairmass (airmass ,
107
- kwargs .get ('pressure' , 101325. ))
132
+ airmass = atmosphere .absoluteairmass (airmass , pressure )
108
133
dni_extra = pvlib .irradiance .extraradiation (solar_position .index )
109
134
dni_extra = pd .Series (dni_extra , index = solar_position .index )
110
135
@@ -118,7 +143,8 @@ def basic_chain(times, latitude, longitude,
118
143
latitude ,
119
144
longitude ,
120
145
zenith_data = solar_position ['apparent_zenith' ],
121
- airmass_data = airmass )
146
+ airmass_data = airmass ,
147
+ altitude = altitude )
122
148
123
149
total_irrad = pvlib .irradiance .total_irrad (
124
150
surface_tilt ,
@@ -272,9 +298,9 @@ def run_model(self, times, irradiance=None, weather=None):
272
298
273
299
Returns
274
300
-------
275
- output : (ac, dc )
276
- Tuple of AC power (Series) and DC power with SAPM parameters
277
- (DataFrame ).
301
+ output : (dc, ac )
302
+ Tuple of DC power ( with SAPM parameters) (DataFrame) and AC
303
+ power (Series ).
278
304
279
305
Assigns attributes: times, solar_position, airmass, irradiance,
280
306
total_irrad, weather, temps, aoi, dc, ac
0 commit comments