-
Notifications
You must be signed in to change notification settings - Fork 20
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
New metrics to return Inventory table with quantity (kg/GWe) in terms of cumulative power from time 0 to time of the simulation #163
base: main
Are you sure you want to change the base?
Conversation
…antity_per_gwe function
cymetric/metrics.py
Outdated
total_power = 0 | ||
for t in range(len(df1)): | ||
realpower = total_power + df1.Value[t] | ||
total_power += realpower |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
total_power += realpower | |
total_power += df1.Value[t] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
mainly formatting issues, otherwise this mostly look good.
in the test_metrics.py I would also add a single blank line to split each part of the test methods:
- declaration of the expected value
- declaration of the input
- getting the observed value and testing it against the expected one
@@ -504,4 +504,58 @@ def inventory_quantity_per_gwe(expinv,power): | |||
inv.Quantity = inv.Quantity/inv.Value | |||
inv=inv.drop(['Value'],axis=1) | |||
return inv | |||
|
|||
|
|||
# Cumulative power from time 0 to time t in TimeSeriesPower metric |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
PEP8: 2 lines between methods
|
||
@metric(name='CumulativeTimeSeriesPower', depends=_cumpdeps, schema=_cumpschema) | ||
def cumulative_timeseriespower(power): | ||
"""Cumulative Timeseriespower metric returns the TimeSeriesPower metric with a cumulative sum |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
line < 80 chars
power = pd.DataFrame(data={'SimId': power.SimId, | ||
'AgentId': power.AgentId, | ||
'Time': power.Time, | ||
'Value': power.Value}, | ||
columns=['SimId','AgentID','Time', 'Value']) | ||
power_index = ['SimId','Time'] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
no tabs :)
add a space after ,
df1['Value'] = df1['Value'].cumsum() | ||
return df1 | ||
|
||
# Quantity per GigaWattElectric Per Cumulative Power in Inventory [kg/GWe] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
2 blank line between methods
return df1 | ||
|
||
# Quantity per GigaWattElectric Per Cumulative Power in Inventory [kg/GWe] | ||
_invdeps = ['ExplicitInventory','CumulativeTimeSeriesPower'] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ad space after ,
('SimId', 'O'), ('AgentId', '<i8'), ('Time', '<i8'), | ||
('InventoryName', 'O'), ('NucId', '<i8'), ('Quantity', '<f8')])) | ||
) | ||
#ctsp is the CumulativeTimeSeriesPower metrics |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
#ctsp is the CumulativeTimeSeriesPower metrics | |
# ctsp is the CumulativeTimeSeriesPower metrics |
], dtype=ensure_dt_bytes([ | ||
('SimId', 'O'), ('Time', '<i8'), ('Value', '<f8')])) | ||
) | ||
#inv is the ExplicitInventory metrics |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
#inv is the ExplicitInventory metrics | |
# inv is the ExplicitInventory metrics |
('InventoryName', 'O'), ('NucId', '<i8'), ('Quantity', '<f8')])) | ||
) | ||
obs = metrics.inventory_quantity_per_cumulative_power.func(inv, ctsp) | ||
assert_frame_equal(exp, obs) | ||
|
||
if __name__ == "__main__": |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
PEP8 2 blank lines between methods
(UUID('f22f2281-2464-420a-8325-37320fd418f8'), 1, 2, 'core', 922350000, 300), | ||
(UUID('f22f2281-2464-420a-8325-37320fd418f8'), 1, 2, 'usedfuel', 922350000, 600), | ||
(UUID('f22f2281-2464-420a-8325-37320fd418f8'), 2, 3, 'core', 922350000, 1050), | ||
(UUID('f22f2281-2464-420a-8325-37320fd418f8'), 2, 3, 'usedfuel', 922350000, 350) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
those lines are too long :)
(UUID('f22f2281-2464-420a-8325-37320fd418f8'), 2, 3, 'usedfuel', 922350000, 350) | ||
], dtype=ensure_dt_bytes([ | ||
('SimId', 'O'), ('AgentId', '<i8'), ('Time', '<i8'), | ||
('InventoryName', 'O'), ('NucId', '<i8'), ('Quantity', '<f8')])) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
same here, maybe put all the pair on a line ?
Merging prerequisite: PR #164
Made some changes to metrics.py. Added a new metrics called "InventoryQuantityPerCumulativePower" to return the explicit inventory table with quantity in units of kg/GWe, calculated by dividing the original quantity by the cumulative sum of the electricity generated in TimeSeriesPower metric from time 0 and created the test to check the expected output as well. Feel free to give feedback or suggestions :).