Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
loc = {'latitude': float,
'longitude': float,
'altitude': float/int,
'tz': str, int, float, or pytz.timezone, default 'UTC'}
See
http://en.wikipedia.org/wiki/List_of_tz_database_time_zones
for a list of valid time zones.
pytz.timezone objects will be converted to strings.
ints and floats must be in hours from UTC.
Returns
-------
pvlib location object.
"""
return Location(**loc)
if airmass is None:
airmass = atmosphere.get_relative_airmass(solar_zenith)
return irradiance.get_total_irradiance(surface_tilt,
surface_azimuth,
solar_zenith,
solar_azimuth,
dni, ghi, dhi,
dni_extra=dni_extra,
airmass=airmass,
model=model,
albedo=self.albedo,
**kwargs)
class LocalizedSingleAxisTracker(SingleAxisTracker, Location):
"""
The LocalizedSingleAxisTracker class defines a standard set of
installed PV system attributes and modeling functions. This class
combines the attributes and methods of the SingleAxisTracker (a
subclass of PVSystem) and Location classes.
The LocalizedSingleAxisTracker may have bugs due to the difficulty
of robustly implementing multiple inheritance. See
:py:class:`~pvlib.modelchain.ModelChain` for an alternative paradigm
for modeling PV systems at specific locations.
"""
def __init__(self, pvsystem=None, location=None, **kwargs):
new_kwargs = _combine_localized_attributes(
pvsystem=pvsystem,
object or latitude, longitude, and any location kwargs
Parameters
----------
location : None or Location, default None
latitude : None or float, default None
longitude : None or float, default None
**kwargs : see Location
Returns
-------
localized_system : LocalizedSingleAxisTracker
"""
if location is None:
location = Location(latitude, longitude, **kwargs)
return LocalizedSingleAxisTracker(pvsystem=self, location=location)
def solar_position(pvobj, dr):
# returns ephemeris in a dataframe sp
Location = pvlib.location.Location(pvobj.lat,
pvobj.lon,
pvobj.timezone,
pvobj.alt)
sp = pvlib.solarposition.ephemeris(dr, Location.latitude,
Location.longitude)
return sp
latitude, longitude, and any location kwargs
Parameters
----------
location : None or Location, default None
latitude : None or float, default None
longitude : None or float, default None
**kwargs : see Location
Returns
-------
localized_system : LocalizedPVSystem
"""
if location is None:
location = Location(latitude, longitude, **kwargs)
return LocalizedPVSystem(pvsystem=self, location=location)
'albedo': 0.2,
}
# own location parameter
wittenberg = {
'altitude': 34,
'name': 'Wittenberg',
'latitude': my_weather.latitude,
'longitude': my_weather.longitude,
}
# the following has been implemented in the pvlib ModelChain in the
# complete_irradiance method (pvlib version > v0.4.5)
if w.get('dni') is None:
w['dni'] = (w.ghi - w.dhi) / cosd(
Location(**wittenberg).get_solarposition(times).zenith)
# pvlib's ModelChain
mc = ModelChain(PVSystem(**yingli210),
Location(**wittenberg),
orientation_strategy='south_at_latitude_tilt')
mc.run_model(times, weather=w)
if plt:
mc.dc.p_mp.fillna(0).plot()
plt.show()
else:
logging.warning("No plots shown. Install matplotlib to see the plots.")
logging.info('Done!')