TLDR:我希望将pint
某个(派生)维度中的数量默认转换为预设单位。
细节:
我处理 5 个维度,如下所示。请注意,[power](通常以 MW 为单位)和 [price](通常以 Eur/MWh 为单位)是派生维度。
# units.txt
# Base dimensions and their units
hour = [time] = h = hr
megawatthour = [energy] = MWh
euro = [currency] = Eur = €
# Derived dimensions and their units
[power] = [energy] / [time]
megawatt = megawatthour / hour = MW
[price] = [currency] / [energy]
euro_per_MWh = euro / megawatthour = Eur/MWh
我的问题:是否可以指定具有维度 [power] 的计算量默认转换为 MW?
这是一个例子:
import pint
ureg = pint.UnitRegistry("units.txt",)
ureg.default_format = ".0f~P"
energy = 100 * ureg.MWh
time = 4 * ureg.h
revenue = 4000 * ureg.euro
price = revenue / energy
power = energy / time
print(energy, time, revenue, price, power)
# 100 MWh 4 h 4000 Eur 40 Eur/MWh 25 MWh/h
在这里,由于计算方式的原因,功率以MWh/h表示,我可以通过调用将其“转换”为MWpower.to('MW')
。每次计算此维度中的数量时是否可以自动执行此操作?
请注意,.to_base_units()
对所有数量进行覆盖会将其恢复为MWh/h。
评论:
- 我不想使用 [power] 作为基本维度。无论如何,它将问题转移到价格上。
- 我知道前缀;我只是将它们留在这里以使示例尽可能简短。