gpt4 book ai didi

python - 如何将标量值添加到 yt 数组?

转载 作者:太空宇宙 更新时间:2023-11-04 03:41:52 25 4
gpt4 key购买 nike

我正在尝试向我在 yt 中的派生字段之一添加一个数字下限。但是,当我尝试时: new_field = 1.0e-10 + data['metal_density']

我收到以下错误:

In [1]: ad = ds.all_data()

In [2]: floored_density = 1.0e-10 + ad['density'] yt : [INFO ] 2014-09-26 10:15:21,901 Gathering a field list (this may take a moment.) yt : [INFO ] 2014-09-26 10:15:22,275 Loading field plugins. yt : [INFO ] 2014-09-26 10:15:22,275 Loaded angular_momentum (8 new fields) yt : [INFO ] 2014-09-26 10:15:22,276 Loaded astro (14 new fields) yt : [INFO ] 2014-09-26 10:15:22,276 Loaded cosmology (20 new fields) yt : [INFO ] 2014-09-26 10:15:22,276 Loaded fluid (56 new fields) yt : [INFO ] 2014-09-26 10:15:22,277 Loaded fluid_vector (88 new fields) yt : [INFO ] 2014-09-26 10:15:22,278 Loaded geometric (102 new fields) yt : [INFO ] 2014-09-26 10:15:22,278 Loaded local (102 new fields) yt : [INFO ] 2014-09-26 10:15:22,278 Loaded magnetic_field (108 new fields) yt : [INFO ] 2014-09-26 10:15:22,278 Loaded species (108 new fields)
--------------------------------------------------------------------------- YTUnitOperationError Traceback (most recent call last) /home/skillman/yt-x86_64/src/yt-3.0/yt/mods.pyc in <module>()
----> 1 floored_density = 1.0e-10 + ad['density']

/home/skillman/yt-x86_64/src/yt-3.0/yt/units/yt_array.pyc in
__radd__(self, left_object)
674 def __radd__(self, left_object):
675 """ See __add__. """
--> 676 lo = sanitize_units_add(self, left_object, "addition")
677 return YTArray(super(YTArray, self).__radd__(lo))
678

/home/skillman/yt-x86_64/src/yt-3.0/yt/units/yt_array.pyc in sanitize_units_add(this_object, other_object, op_string)
159 else:
160 if not inp.units.is_dimensionless:
--> 161 raise YTUnitOperationError(op_string, inp.units, dimensionless)
162 return ret
163

YTUnitOperationError: The addition operator for YTArrays with units (g/cm**3) and (1) is not well defined.

最佳答案

只要注意要添加的标量与 yt 数组的单位相同,就可以执行以下操作:

ad = ds.all_data()

floored_density = 1.0e-10 * ad['density'].uq + ad['density']

.uq 代表“单位数量”,在相关字段的单位中等于 1.0。在这种情况下,ad['密度'].uq 等于 1.0 g/cm**3。

此处描述了与 yt 数组 Hook 的其他有用属性:http://yt-project.org/doc/analyzing/units/symbolic_units.html?highlight=unit_quantity#Creating-arrays-and-quantities

关于python - 如何将标量值添加到 yt 数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26065032/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com