我需要從netCDf文件中提取值。我對Python很新,甚至更新的這種文件格式。我需要在特定位置(lat,lon)提取時間序列數據。 我發現在UNIX時間裏有一個變量(稱爲「base_time」),另一個變量(稱爲「時間」)與「自2013-20-10 00:00:00以來的秒數」(這是測量時間的開始現在在UTC)。Python - 從netCDF文件中讀取數據,時間爲「秒以來」開始測量
當我詢問數據集的變量,我得到這個:
<type 'netCDF4.Variable'>
int32 base_time()
units: seconds since 1970-01-01 00:00:00 00:00
unlimited dimensions:
current shape =()
filling off
<type 'netCDF4.Variable'>
float64 time(time)
units: seconds since 2013-10-20 00:00:00 00:00
interval(sec): 30.0
unlimited dimensions: time
current shape = (2880,)
filling off
當我讀值陣列,例如像
time_var = dataset.variables['time'][:]
我可以看到,有2880(大小爲2880)中的值的時間可變,但只是一個(大小爲1)在base_time變量。 我認爲this答案正是我所需要的,但是我只在需要轉換時間的部分遇到問題。當我這樣做:
dtime = netCDF4.num2date(time_var[:],time_var.units)
我得到的錯誤:
AttributeError: 'numpy.ndarray' object has no attribute 'units'
而且我覺得我需要時間變量轉換(秒因爲測量的開始)反正,而不是轉換UNIX時間(因爲netCDf文件中只有一個值?)。 我嘗試了一些datetime.dateime部分的變體,但我只是不明白。我只需要將「2013-10-20 00:00:00之後的秒數」轉換爲可讀格式即可提取和繪製數據。 謝謝!