2017-07-15 67 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之一)。请尝试一下,如果你无法使用它,请尝试更新你的问题。