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

您所在的位置:网站首页 温度怎么求平均值公式 多年逐日气象数据(例如SST),格式为nc文件,求年平均、月平均、日平均、全局年平均

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

2024-06-03 10:40| 来源: 网络整理| 查看: 265

多年逐日气象数据(例如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')

关键代码在于这一行:

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

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

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

也可以直接平均:

yearly_mean = data['sea_surface_temperature'].mean(dim=('time', 'latitude', 'longitude'))


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3