3

1 つのディレクトリに大気測定値を含むファイルがたくさんあります。ファイル形式は NetCDF です。各ファイルにはタイムスタンプ (変数「basetime」) があります。すべてのファイルを読み取り、個々の測定イベント (温度と高度) をプロットできます。次に行う必要があるのは、「ファイルを日ごとにグループ化」し、1 つの日に取得したすべての測定値を 1 つのプロットにプロットすることです。残念ながら、私にはそれを行う方法がわかりません。1 つのアイデアは、以下のコードで定義されている変数「measurement_day」を使用することです。毎日、通常、temp を含む 4 つの異なるファイルがあります。そして高度。理想的には、これら 4 つの異なるファイルのデータをグループ化する必要があります (たとえば、プロット用)。私の質問が明確であることを願っています。誰でも私を助けてください。

編集: 今、辞書を使用しようとしていますが、1 つの測定日に 1 つのエントリが既に存在するかどうかを判断するのに苦労しています。以下の編集されたコードを参照してください

from netCDF4 import Dataset

data ={} # was edited

for f in listdir(path):
    if isfile(join(path,f)):
        full_path = join(path,f)
        f = Dataset(full_path, 'r')
        basetime = f.variables['base_time'][:]
        altitude = f.variables['alt'][:]
        temp = f.variables['tdry'][:]
        actual_date =  strftime("%Y-%m-%d %H:%M:%S", gmtime(basetime))
        measurement_day =  strftime("%Y-%m-%d", gmtime(basetime))
        # check if dict entries for day already exist, if not create empty dict  
        # and lists inside
        if len(data[measurement_day]) == 0:
             data[measurement_day] = {}
        else: pass
        if len(data[measurement_day]['temp']) == 0:
            data[measurement_day]['temp'] = []
            data[measurement_day]['altitude'] = []
        else: pass

次のエラー メッセージが表示されます: Traceback (most recent call last):... if len(data[measurement_day]) == 0: KeyError: '2009/05/28'

4

1 に答える 1