2017-07-15 65 views
1

我有一個netcdf文件。我在這個文件中有兩個變量:wspd_wrf_m和wspd_sodar_o。我想讀取netcdf文件並計算wspd_wrf_m和wspd_sodar_o之間的RMSE值。閱讀Netcdf文件並計算Python中的RMSE

變量的尺寸(天,時間)是(1094,24) 我想計算文件的最後365天的RMSE。你能幫助我嗎?

我知道我需要使用:

from netCDF4 import Dataset 
import numpy as np 

g = Dataset('station_test_new.nc','r',format='NETCDF3_64BIT') 
wspd_wrf = g.variables["wspd_wrf_m"][:,:] 
wspd_sodar = g.variables["wspd_sodar_o"][:,:] 

但是我怎麼選擇,我需要從這個計算RMSE每小時數據的最近365天?

回答

1

選擇最後365天是將數組切片到正確大小的問題。例如:

import numpy as np 
var = np.zeros((1094, 24)) 
print(var.shape, var[729:,:].shape, var[-365:,:].shape) 

它打印:

(1094,24)(365,24)(365,24)

所以既var[729:,:]var[-365:,:]切片最近365天(包括所有小時值)從1094天大小的陣列中取出。

Numpy manual有更多信息/更多示例。

有很多關於如何計算Python中RMSE的例子(例如this之一)。請嘗試一下,如果你無法使用它,請嘗試更新你的問題。