実際に多くの属性と変数を含むnetcdfファイル内の単一の変数を処理する必要があります。NetCDFファイルを更新することはできないと思います(Scientific.IO.NetCDF.NetCDFFileの変数を削除する方法についての質問を参照してください) 。
私のアプローチは次のとおりです。
- 元のファイルから処理する変数を取得します
- 変数を処理する
- 元のnetcdfからすべてのデータをコピーしますが、処理された変数を最終ファイルにコピーします
- 処理された変数を最終ファイルにコピーします
私の問題は、ステップ3をコーディングすることです。私は次のことから始めました。
def processing(infile, variable, outfile):
data = fileH.variables[variable][:]
# do processing on data...
# and now save the result
fileH = NetCDFFile(infile, mode="r")
outfile = NetCDFFile(outfile, mode='w')
# build a list of variables without the processed variable
listOfVariables = list( itertools.ifilter( lamdba x:x!=variable , fileH.variables.keys() ) )
for ivar in listOfVariables:
# here I need to write each variable and each attribute
データの構造全体を再構築せずに、すべてのデータと属性を一握りのコードで保存するにはどうすればよいですか?