dask - 关于 xarray apply_ufunc
问题描述
我正在尝试从 3 小时的全球数据集中计算每日 Tmax。我可以使用 groupby 来做到这一点,但我想弄清楚如何通过使用 dask 并行操作(例如使用 apply_ufunc)来减少计算时间。如果有关于 ufunc 的好的文档,请告诉我(xarray 上的文档对我来说不够详细,让我有点困惑,因为我之前没有任何使用 dask 的经验)。谢谢!!
这是我的代码的样子:
TAS = xr.open_dataset(INFILE_template.format(YR, YR), chunks={'time':8})
DAYMAX = TAS.groupby('time.dayofyear').max(dim='time')
DAYMAX.to_netcdf(OUTFILE_template.format(YR, YR))
TAS的维度如下:
<xarray.Dataset>
Dimensions: (lat: 720, lon: 1440, time: 2928)
Coordinates:
* lon (lon) float64 0.125 0.375 0.625 0.875 1.125 1.375 1.625 1.875 ...
* lat (lat) float64 -89.88 -89.62 -89.38 -89.12 -88.88 -88.62 -88.38 ...
* time (time) datetime64[ns] 2008-01-01 2008-01-01T03:00:00 ...
Data variables:
tas (time, lat, lon) float32 dask.array<shape=(2928, 720, 1440),
解决方案
如果您已经可以使用groupby()
和其他 xarray 方法编写分析,那么所有这些都已经与 dask 并行化。apply_ufunc
更容易包装新功能以支持 xarray 和 dask,但 xarray 中的所有内置例程已经使用apply_ufunc
或内部类似的东西来支持 dask。
作为旁注:如果您能详细说明您在 xarray 文档中发现的令人困惑或遗漏的内容,我们一直在寻求改进它们!
推荐阅读
- c - 如何使函数 printf 在文件或控制台上输出?
- perl - Perl 5.26:如何从二维哈希中获取密钥?
- python - 执行 Python 脚本时没有结果
- wordpress - wc_price($price) 未通过过滤器“woocommerce_product_get_regular_price”显示折扣
- javascript - 承诺不等待 NodeJS 中的返回值
- javascript - 如何使用 Axios 定义是否需要参数?
- python-3.x - 如何在 Visual Studio Code IDE 中解决“无法导入 'requests'pylint(import-error)”?
- python - 尝试通过 VSCodium 打开执行 Python 脚本的文件时没有此类文件或目录错误
- android - 不能在两个不同的视图上使用相同的 BindingAdapter
- sql-server - 迁移后的 SSRS 异常