我正与Pint一起在Python项目中进行单元转换。该项目涉及温度梯度,这些温度梯度没有在Pint中定义。我的单位通常是“度C/公里”,所以我想申报一个数量为"55度C/公里“。然后我想使用Pint无痛地将这个数量转换为"XXX Deg.F/英里“或"YYY deg.F/km”等。这涉及到使用Pint的内置功能定义我自己的单元,但我不明白。
例如,我希望能够这样做:
from pint import UnitRegistry, Quantity
ureg = UnitRegistry()
ureg.load_definitions('GEOPHIRES3_newunits.txt')
Myquanity = Quantity("55 deg.C/km")
Myquantity_new_units = Myquanity.to("deg.F/mile")
Myquantity_new_units2 = Myquanity.to("deg.C/mile")
我应该能够通过编辑自己的定义文件(在代码的第3行中定义为GEOPHIRES3_newunits.txt )来做到这一点。这就是我所拥有的:
#Gradient
[gradient] = [temperature] / [length]
CooperC = degC/km = deg.C/km
CooperF = CooperC * 1.60934 * 1.7999 = degF/mi = deg.F/mi
因为“dec.C/km”被定义为别名,所以它应该可以工作,但是它却创建了一个错误类型的数量--它创建了< Quantity (55.0,'coulomb *度数/公里‘)>。
发布于 2022-06-09 05:30:06
从我的第一次浏览中可以看出,您的代码中有几个问题:
deg.C
是“库仑*度”,在我的测试中是deg.F
)。https://stackoverflow.com/questions/72536955
复制相似问题