計算ループの反復ごとに計算結果を NetCDF 変数に書き込んでいます。これは、変数への 1 回の書き込みを行う前にすべての結果データをメモリに保持できないためです。私の仮定では、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 オーバーヘッドがあまり発生しない、より良い方法はありますか? ところで、出力変数の塗りつぶしをオフに設定しましたが、これは効果がないようです。