我有一个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/

10-10 18:20