我有一个netcdf文件。我在此文件中有两个变量:wspd_wrf_m和wspd_sodar_o。我想读取netcdf文件并计算wspd_wrf_m和wspd_sodar_o之间的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"][:,:]
但是,如何选择我需要的每小时最后365天的数据并据此计算RMSE?
最佳答案
选择最近的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:,:]
都会从1094天大小的数组中切出最近365天(具有所有小时值)。Numpy manual中有更多信息/更多示例。
关于如何在Python中计算RMSE的例子很多(例如this一个)。请尝试一下,如果无法使用,请尝试尝试更新问题。
关于python - 读取Netcdf文件并在Python中计算RMSE,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45113891/