额,nc文件

nc文件选择时间,年内平均,双线性插值

for m in MODEL_NAME:
    ds=xr.open_dataset(r"J:\09 FUTURE_BUDYKO\CMIP_LAI\\"+m+"\Scenario_historical.nc")
    ds00 = ds.sel(time=slice(str(1982), str(2014)))
    ds_year = ds00.groupby('time.year').mean(dim='time')
    olr = xr.open_dataset(r"J:\09 FUTURE_BUDYKO\GLASS_LAI\YEARLY\GLASS_LAI_YR 1986.nc")
    LAI02 = (ds_year.interp(lat=olr.lat.values, lon=olr.lon.values))

所有时间平均

ds00=ds.sel(time=slice(str(j), str(j+19)))
ds01=ds00["lai"].data
ds02=np.where(ds01<0,np.NaN,ds)
# print(ds01.shape)
ds_mean=np.mean(ds02,axis=0,dtype=np.float32)

pandas时间

daterange = pd.date_range(start=str(j)+'0101', periods=1, freq='Y')

转换经度

def LATLON(ds):
    lon_name = 'lon'  #你的nc文件中经度的命名
    ds['longitude_adjusted'] = xr.where(
        ds[lon_name] > 180,
        ds[lon_name] - 360,
        ds[lon_name])
    ds = (
        ds
        .swap_dims({lon_name: 'longitude_adjusted'})
        .sel(**{'longitude_adjusted': sorted(ds.longitude_adjusted)})
        .drop(lon_name))
    ds = ds.rename({'longitude_adjusted': lon_name})
    return ds

拟合函数

from scipy import optimize
def f_1(x, A, B):
        return A * x + B
A1_train, B1_train = optimize.curve_fit(f_1, x_train, y_train)[0]
for i in range(1982,2019):
    ds=xr.open_dataset(r"J:\14 DRY_WET\02 LAI\LAI_MON\LAI_MON "+str(i)+".nc")
    # ds.data = np.where(ds.data>0, ds.data, np.nan)
    # print(ds["ppt"])
    ds = ds.assign_coords(time=pd.date_range(start=str(i)+'0101', periods=12, freq='M'))
    ds01=ds.sel(time=slice(pd.to_datetime(str(i)+'0401'),pd.to_datetime(str(i)+'1101')))
    print(ds01)
    ds01.mean(dim="time")

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值