我在计算循环的每次迭代中将计算结果写入 NetCDF 变量,因为在对变量进行单次写入之前,我无法将所有结果数据保存在内存中。我的假设是每次写入 NetCDF 变量只会写入我正在写入的数据片段,因此每次写入都会很快,但是每次写入似乎都需要相当长的时间,我担心整个 NetCDF 文件正在在每个变量赋值语句处重写,而不仅仅是被赋值的数据片段,导致相当不必要的 I/O 开销。
结果数据切片被写入输出 NetCDF 变量,如下所示:
outputSpi01MonthVariable[totalNumberOfOutputMonths, lat:lat + 1:1, len(lonDimension)] = spiScale01 # a numpy array with compatible shape assigned to the variable at specified indices
是否有更好的方法将值分配给输出 NetCDF 变量而不会导致太多 I/O 开销?顺便说一句,我已将输出变量的填充设置为关闭,但这似乎没有效果。