【发布时间】:2022-01-27 21:31:51
【问题描述】:
我有一个高达 300m 海洋深度(不规则深度)的地下温度数据。我想用 Python 计算 0-300m 的海洋热含量。单元格面积正在由 CDO 工具计算。
公式为:
OHC = 海水密度 * 比热容 * 对该深度的温度进行积分。
我会写代码。
#OHC Calculation
def ocean_heat(Temperature,cell Area):
density = 1026 #kg/m^3
c_p = 3990 #J/(kg K)
heat = Temperature.sum(dim=['depth','lon','lat']) * density * c_p * cell Area
return heat
但是,深度不在同一区间。所以我认为有必要使用加权温度。因此,如果有人可以帮助了解计算 OHC 的正确程序。如果还有其他来源或模块,请告诉我。
谢谢。
【问题讨论】:
-
如果我理解正确,您想将每个术语乘以深度差吗?面积是每次迭代的常数,还是向量?您需要一个单独的向量来表示“细胞深度”或“细胞体积”。这个函数可能对计算深度差异很有用:numpy.org/doc/stable/reference/generated/numpy.ediff1d.html 看起来你在变量“单元格区域”中有一个空格,这将是一个语法错误。
-
欢迎堆栈溢出!请参阅How to Ask 上的指南,尤其是如何创建minimal reproducible example。就目前而言,我们不清楚您是在问一个可能属于Earth Science stack exchange 的方法问题(什么是正确的科学程序?),还是关于如何实现加权平均值或xarray DataArray 的总和.如果是后者,请帮助我们更多地了解您尝试过的内容以及遇到的问题,包括复制数据、所有代码以及任何错误的堆栈跟踪。谢谢!
标签: python numpy python-xarray ocean