Skip to content

Commit

Permalink
totalPower -> peakPowerKw; mongo power cleanup
Browse files Browse the repository at this point in the history
  • Loading branch information
vokimon committed Mar 22, 2022
1 parent 29c56e5 commit f3a9f62
Show file tree
Hide file tree
Showing 4 changed files with 25 additions and 18 deletions.
15 changes: 11 additions & 4 deletions heman/api/pvcalculator/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,13 @@ def parseMongoAzimuth(azimuth):
return (int(azimuth),)
return tuple(int(a) for a in azimuth.split('#'))

def parseMongoPower(peakPower):
return float(peakPower.replace(' kWp', ''))

def queryPeakPower(peakPower):
if not peakPower: return None
return float(peakPower)

def queryAzimuth(queryAzimuth):
"""
This turns a list of strings representing the azimuths into
Expand All @@ -53,7 +60,7 @@ def get(self, contract):

tiltDegrees = float(request.args.get('tilt'))
azimuthDegrees = queryAzimuth(request.args.getlist('azimuth'))
powerKwh = request.args.get('power')
peakPowerKw = queryPeakPower(request.args.get('power'))

scenario_report = self.get_last_scenario(contract_name=contract)

Expand All @@ -75,7 +82,7 @@ def get(self, contract):
for i,scenario in enumerate(scenarios)
if scenario['settings']['tilt'] == tiltDegrees
and parseMongoAzimuth(scenario['settings']['azimuth']) == azimuthDegrees
and (scenario['settings']['power'] == powerKwh or not powerKwh)
and (parseMongoPower(scenario['settings']['power']) == peakPowerKw or not peakPowerKw)
]
if not selectedScenarios:
return Response(
Expand Down Expand Up @@ -109,7 +116,7 @@ def get(self, contract):
tiltDegrees= bestScenario['settings']['tilt'],
areaM2 = bestScenario['settings']['area'],
nModules = bestScenario['settings']['numModules'],
totalPower = bestScenario['settings']['power'],
peakPowerKw = parseMongoPower(bestScenario['settings']['power']),
dailyLoadProfileKwh = scenario_report['results']['pvAutoSize']['load']['profile'],
dailyProductionProfileKwh = bestScenario['generation']['profile'],
monthlyProductionToLoadKwh = bestScenario['generation']['monthlyPVtoLoad'],
Expand Down Expand Up @@ -148,7 +155,7 @@ def get(self, contract):
(
scenario['settings']['tilt'],
parseMongoAzimuth(scenario['settings']['azimuth']),
scenario['settings']['power'],
parseMongoPower(scenario['settings']['power']),
)
for i,scenario in enumerate(scenarios)
])
Expand Down
24 changes: 12 additions & 12 deletions heman/api/pvcalculator/pvcalculator_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -103,9 +103,9 @@ def test__scenario_report__with_power(api, scenario_data, snapshot):
contract, token = scenario_data
r = api.get('/api/ScenarioReport/{}'.format(contract),
query_string=dict(
tilt=30.0,
azimuth=[180,0], # TODO: split both azimuths
power='10.640 kWp', # TODO: Remove units from value
tilt='30.0',
azimuth=['180','0'],
power=10.64,
),
headers=dict(
Authorization = 'token {}'.format(token)
Expand Down Expand Up @@ -155,14 +155,14 @@ def test__scenario_params(api, scenario_data):
'tilt': [15.0, 30.0],
'azimuth': [[100], [100,280], [140], [140,320], [180], [180,0]],
'power': [
'10.640 kWp',
'2.280 kWp',
'3.040 kWp',
'4.560 kWp',
'5.320 kWp',
'6.080 kWp',
'7.600 kWp',
'8.360 kWp',
'9.120 kWp',
2.280,
3.040,
4.560,
5.320,
6.080,
7.600,
8.360,
9.120,
10.640,
],
}
Original file line number Diff line number Diff line change
Expand Up @@ -153,6 +153,7 @@ snapshot:
- 61.757296502695255
nModules: 6.0
paybackYears: 12.4569525340302
peakPowerKw: 2.28
productionKwhYear: 2713.065471190853
productionToGridEuroYear: 135.97414413724206
productionToGridKwhYear: 1938.3961489902156
Expand All @@ -162,4 +163,3 @@ snapshot:
productionToLoadPercent: 28.73521485120825
savingsEuroYear: 307.05135592354816
tiltDegrees: 30.0
totalPower: 2.280 kWp
Original file line number Diff line number Diff line change
Expand Up @@ -153,6 +153,7 @@ snapshot:
- 63.82
nModules: 28.0
paybackYears: 20.54521623587875
peakPowerKw: 10.64
productionKwhYear: 12863.530773648346
productionToGridEuroYear: 283.9833047153394
productionToGridKwhYear: 11853.280996988628
Expand All @@ -162,4 +163,3 @@ snapshot:
productionToLoadPercent: 7.891967334033866
savingsEuroYear: 505.2692606181667
tiltDegrees: 30.0
totalPower: 10.640 kWp

0 comments on commit f3a9f62

Please sign in to comment.