- 积分
- 492
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2021-12-11
- 最后登录
- 1970-1-1
|
登录后查看更多精彩内容~
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
本帖最后由 XiaoMaFenJu 于 2023-10-25 20:57 编辑
数据size:50*721*1440 (时间*纬度*经度)(nc文件)
需求:求各点的平均变化趋势,即相当于进行一次拟合/回归并求各点拟合/回归系数
问题:一维数据可以使用numpy.polyfit()函数,但其不支持三维及以上数据,而对各点进行循环又耗时过长(25mins)
解决方法:使用xarray.DataArray.polyfit or xarray.Dataset.polyfit
大白话就是用xarray读nc,选所需变量直接后面加.polyfit()并选dim和deg,如:
- ds_pre = xr.open_dataset(filepath)
- a = ds_pre['t2m'].polyfit(dim='time',deg=1)
- print(a)
- print(a['polyfit_coefficients'][0,:,:])
复制代码 解决过程:找到一大碗年糕在22年7月发的帖子:“最方便的python回归分析”中使用的GeoCAT-comp库有ndpolyfit函数,但官方文档已经在22年10月删除了这个函数,并建议使用xarray的polyfit。
|
|