读取Netcdf文件并在Python中计算RMSE

时间:2017-07-15 02:30:40

标签: python statistics netcdf

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

1 个答案:

答案 0 :(得分: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)。请尝试一下,如果无法使用,请尝试更新您的问题。