我有一个从1979年1月1日到2005年12月31日的3D时间序列数据矩阵。矩阵目前为9862x360x720(日降雨量x 0.5°纬度x 0.5°经度)。我想将每日降雨量总和为月降雨量(总共324个月),同时还设置了一个求和NaN值的阈值。在
换句话说,如果某个特定的lat/lon网格单元的每日NaN值超过10个,那么我希望将每月汇总的单元格标记为NaN。如果网格单元的daily-NaN值少于10个,我希望将剩余的非NaN-daily值相加,并将其用作每月值。在
我成功地使用了xarray库的“resample”函数,但我无法找到为NaN值设置阈值的方法。我读过的所有内容都说要使用sum或nansum函数,但我找不到一种方法来通过这些函数设置NaN阈值。在这一点上,我对任何方法都是开放的(xarray或其他)。在
import netCDF4
import numpy as np
import xarray as xr
import pandas as pd
f = netCDF4.dataset("daily_data", 'r')
daily_dataset = xr.Dataset({'precipitation': (['time', 'lat', 'lon'], f['precipitation'][:, :, :])},
coords={'lat': (f['lat'][:]), 'lon': (f['lon'][:]), 'time': pd.date_range('1979-01-01', periods=9862)})
monthly_dataset = daily_dataset['precipitation'].resample('M', dim='time', how='sum', skipna=False)
我可以用上面的代码将每天的数据相加为每月,但是我不能设置一个NaN阈值。每日数据当前存储在NetCDF文件中。在
我相信这是你想要的:
相关问题 更多 >
编程相关推荐