1

我想知道是否有一种方法可以直接从 NetCDF 文件流式传输数据,因为它是用 `xarray.

我想我可以像这样“创建”一个非缓冲文件?

import io
ts_file_stream = io.open("/some/file/being/written/to.nc", mode='rb', buffering=-1)

我也知道我可以用 Xarray 打开它:

import xarray as xr
ds = xr.open_dataset(ts_file_stream)

但是,我不确定这些数组是否会不断更新?整个事情的目的如下:我有一个产生输出的数值模型,我想在模型运行时可视化一些变量以了解当前状态。我知道这得到了 Holoviews 人的支持:https ://hvplot.holoviz.org/user_guide/Streaming.html

streamz这需要我用图书馆制作自己的流吗?https://streamz.readthedocs.io/en/latest/index.html

关于如何让它为 netcdf 工作的任何提示都会很棒!

干杯,
保罗

4

1 回答 1

0

不确定这是否能解决您的问题,但我有一个类似的用例,我想要一个经常更新的网格数据散景图。因为 NetCDF 不能在 Python 中并行读写,所以这不是开箱即用的,因为在绘制数据的同时写入 NetCDF 需要某种手动同步。

我还没有尝试流。但我发现使用 zarr 文件而不是 NetCDF是解决此问题的简单方法,因为您可以轻松地从 xarray 附加到 zarr 文件,而另一个应用程序从文件中读取。

于 2020-12-23T09:52:07.820 回答