Skip to content

Commit 995f6a9

Browse files
committed
modified systemdef to use any meta dict
1 parent 4b1fec6 commit 995f6a9

File tree

2 files changed

+28
-14
lines changed

2 files changed

+28
-14
lines changed

pvlib/pvsystem.py

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -17,17 +17,17 @@
1717

1818

1919

20-
def systemdef(tmy_meta, surftilt, surfaz, albedo, series_modules,
20+
def systemdef(meta, surftilt, surfaz, albedo, series_modules,
2121
parallel_modules):
2222
'''
2323
Generates a dict of system paramters used throughout a simulation.
2424
2525
Parameters
2626
----------
2727
28-
tmy_meta : dict
29-
meta file generated from a TMY file using pvl_readtmy2 or pvl_readtmy3.
30-
It should contain at least the following fields:
28+
meta : dict
29+
meta dict either generated from a TMY file using readtmy2 or readtmy3, or
30+
a dict containing at least the following fields:
3131
3232
=============== ====== ====================
3333
meta field format description
@@ -73,8 +73,8 @@ def systemdef(tmy_meta, surftilt, surfaz, albedo, series_modules,
7373
* 'albedo'
7474
* 'series_modules'
7575
* 'parallel_modules'
76-
* 'Lat'
77-
* 'Long'
76+
* 'latitude'
77+
* 'longitude'
7878
* 'TZ'
7979
* 'name'
8080
* 'altitude'
@@ -87,20 +87,20 @@ def systemdef(tmy_meta, surftilt, surfaz, albedo, series_modules,
8787
'''
8888

8989
try:
90-
name = tmy_meta['Name']
90+
name = meta['Name']
9191
except KeyError:
92-
name = tmy_meta['City']
92+
name = meta['City']
9393

9494
system = {'surftilt':surftilt,
9595
'surfaz':surfaz,
9696
'albedo':albedo,
9797
'series_modules':series_modules,
9898
'parallel_modules':parallel_modules,
99-
'latitude':tmy_meta['latitude'],
100-
'longitude':tmy_meta['longitude'],
101-
'TZ':tmy_meta['TZ'],
99+
'latitude':meta['latitude'],
100+
'longitude':meta['longitude'],
101+
'TZ':meta['TZ'],
102102
'name':name,
103-
'altitude':tmy_meta['altitude']}
103+
'altitude':meta['altitude']}
104104

105105
return system
106106

@@ -1098,4 +1098,4 @@ def snlinverter(inverter, Vmp, Pmp):
10981098
ACPower[ACPower > Paco] = Paco
10991099
ACPower[ACPower < Pso] = - 1.0 * abs(Pnt)
11001100

1101-
return ACPower
1101+
return ACPower

pvlib/test/test_pvsystem.py

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
irrad_data = clearsky.ineichen(times, tus, solarposition_method='pyephem')
2525
aoi = irradiance.aoi(0, 0, ephem_data['apparent_zenith'], ephem_data['apparent_azimuth'])
2626
am = atmosphere.relativeairmass(ephem_data.apparent_zenith)
27+
meta = { 'latitude': 37.8, 'longitude': -122.3, 'altitude': 10, 'Name': 'Oakland', 'State': 'CA', 'TZ': -8}
2728

2829
pvlib_abspath = os.path.dirname(os.path.abspath(inspect.getfile(tmy)))
2930

@@ -58,6 +59,19 @@ def test_systemdef_tmy2():
5859
'surfaz': 0,
5960
'surftilt': 0}
6061
assert_equals(expected, pvsystem.systemdef(tmy2_metadata, 0, 0, .1, 5, 5))
62+
63+
def test_systemdef_dict():
64+
expected = {'TZ': -8, ## Note that TZ is float, but Location sets tz as string
65+
'albedo': 0.1,
66+
'altitude': 10,
67+
'latitude': 37.8,
68+
'longitude': -122.3,
69+
'name': 'Oakland',
70+
'parallel_modules': 5,
71+
'series_modules': 5,
72+
'surfaz': 0,
73+
'surftilt': 5}
74+
assert_equals(expected, pvsystem.systemdef(meta, 5, 0, .1, 5, 5))
6175

6276

6377

@@ -130,4 +144,4 @@ def test_snlinverter():
130144
pdcs = idcs * vdcs
131145

132146
pacs = pvsystem.snlinverter(inverters[testinv], vdcs, pdcs)
133-
147+

0 commit comments

Comments
 (0)