我有一个进程fn每 5 分钟使用netcdf4.Dataset(fn, mode=a). 我还有一个使用 a xarray.Dataset(我想保留它,因为它非常方便)的NetCDF 文件的散景服务器可视化。
问题是 NetCDF-update-process 在尝试添加新数据时失败,fn如果它在我的散景服务器进程中通过
ds = xarray.open_dataset(fn)
Run Code Online (Sandbox Code Playgroud)
如果我使用该选项 autoclose
ds = xarray.open_dataset(fn, autoclose=True)
Run Code Online (Sandbox Code Playgroud)
更新fn与其他过程,同时ds在背景虚化服务器应用程序的作品“开放的”,但更新的背景虚化的人物,这拉从时间片fn,得到非常laggy。
我的问题是:有没有其他方法可以在使用时释放 NetCDF 文件的锁定xarray.Dataset?
我不在乎 xarray.Dataset 的形状是否只在重新加载整个散景服务器应用程序后才一致更新。
谢谢!
这是一个最小的工作示例:
把它放到一个文件中并让它运行:
import time
from datetime import datetime
import numpy as np
import netCDF4
fn = 'my_growing_file.nc'
with netCDF4.Dataset(fn, 'w') as nc_fh:
# create dimensions
nc_fh.createDimension('x', 90)
nc_fh.createDimension('y', 90)
nc_fh.createDimension('time', None)
# create variables
nc_fh.createVariable('x', …Run Code Online (Sandbox Code Playgroud)