当前位置:   article > 正文

多年逐日气象数据(例如SST),格式为nc文件,求年平均、月平均、日平均、全局年平均_nc数据怎么求年平均和全球平均

nc数据怎么求年平均和全球平均

多年逐日气象数据(例如SST),格式为nc文件,求年平均、月平均、全局年平均(自己备忘)

假设有一个nc文件,里面存储的是多年的逐日气象数据,现在我需要求出每年的月平均值或者年平均值,以及所有年份得到的一个年平均值,代码如下:

import netCDF4 as nc
import xarray as xr
import numpy as np
import calendar
import warnings
warnings.filterwarnings('ignore')

"""
19年的mld日数据是一个nc文件
"""
file = r"E:\123\HBhai\2002-2020\MLD\cmems_mod_glo_phy_my_0.083_P1D-m_1689426625965.nc"
# da = xr.open_dataset(file).sel(latitude=slice(0, 42), longitude=slice(117, 180))
data = xr.open_dataset(file)
data = data.where(~np.isnan(data), drop=True)
# 计算月平均 参数time='1M'表示按月对数据进行重采样,然后使用mean方法计算每个月的平均值。
monthly_mean = data.resample(time='1M').mean(dim='time', skipna=True)    # 将skipna=True参数传递给mean方法来忽略缺失值NaN
# 将月平均数据保存为NetCDF文件
monthly_mean.to_netcdf(r'E:\123\HBhai\2002-2020\MLD\monthly_mean_data.nc')
# 计算多年的全局年平均
yearly_mean = monthly_mean.mean(dim='time', skipna=True)
yearly_mean.to_netcdf(r'E:\123\HBhai\2002-2020\MLD\year_mean_data.nc')
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21

关键代码在于这一行:

# 计算月平均 参数time='1M'表示按月对数据进行重采样,然后使用mean方法计算每个月的平均值。
monthly_mean = data.resample(time='1M').mean(dim='time', skipna=True)
  • 1
  • 2

当求每年的月平均时,time=‘1M’
当求每年的年平均时,time=‘1Y’
当求多年的全局年平均时,可以直接在月平均基础上进行平均:

yearly_mean = monthly_mean.mean(dim='time', skipna=True)
  • 1

也可以直接平均:

yearly_mean = data['sea_surface_temperature'].mean(dim=('time', 'latitude', 'longitude'))
  • 1
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/天景科技苑/article/detail/856668
推荐阅读
相关标签
  

闽ICP备14008679号