Exemplo n.º 1
0
        d[nmodel] = tmp.values.reshape(nyr,4,33,180)
        nmodel += 1

    data += [d]

DS = xr.Dataset( {'omip2-1': (['model','time','basin','depth','lat'], data[1] - data[0]), },
                 coords = { 'time': time0,
                            'lat': np.linspace(-89.5,89.5,num=180)}) 

print( 'Calculating OMIP2 - OMIP1' )

tmp_stats=np.array(np.zeros((5,4,33,180)),dtype=np.float32)
#tmp_series=np.array(np.zeros((nmodel,nyr,33,180)),dtype=np.float32)
for m in range(4):
    tmp_series=DS['omip2-1'].isel(basin=m).values
    dout = uncertain_2d( tmp_series, num_bootstraps )
    tmp_stats[0,m,:,:]=dout[0]
    tmp_stats[1,m,:,:]=dout[1]
    tmp_stats[2,m,:,:]=dout[2]
    tmp_stats[3,m,:,:]=dout[3]
    tmp_stats[4,m,:,:]=dout[4]

DS_stats = xr.Dataset( { 'mean': (['basin','depth','lat'], tmp_stats[0]),
                         'std':  (['basin','depth','lat'], tmp_stats[1]),
                         'M':    (['basin','depth','lat'], tmp_stats[2]),
                         'V':    (['basin','depth','lat'], tmp_stats[3]),
                         'B':    (['basin','depth','lat'], tmp_stats[4]),},
                       coords = { 'depth': lev33, 'lat': np.linspace(-89.5,89.5,num=180),}, )

print( 'Output netCDF4' )
path_out='../analysis/STDs/'
Exemplo n.º 2
0
        wgt = np.tile(wgt0,(len(tmp),1,1)) * np.logical_not(np.isnan(tmp))
        data_ave = np.average(tmp.fillna(0),weights=wgt,axis=(1,2))
        for n in range(len(data_ave)):
            tmp[n] = tmp[n] - data_ave[n]

        d[nmodel] = tmp.values.reshape(nyr,180,360)
        nmodel += 1

    data += [d]

DS = xr.Dataset( {'omip2-1': (['model','time','lat','lon'], data[1] - data[0]), },
                 coords = { 'time': time0,
                            'lat': np.linspace(-89.5,89.5,num=180)}) 

print( 'Calculating OMIP2 - OMIP1' )
dout = uncertain_2d( DS['omip2-1'].values, num_bootstraps )
DS_stats = xr.Dataset( { 'mean': (['lat','lon'], dout[0]),
                       'std':  (['lat','lon'], dout[1]),
                       'M':    (['lat','lon'], dout[2]),
                       'V':    (['lat','lon'], dout[3]),
                       'B':    (['lat','lon'], dout[4]),},
                     coords = { 'lat': np.linspace(-89.5,89.5,num=180), 
                                'lon': np.linspace(0.5,359.5,num=360), }, )

print( 'Output netCDF4' )
path_out='../analysis/STDs/'
outstatsfile=path_out + 'SSH_omip1-omip2_stats.nc'
DS_stats.to_netcdf(path=outstatsfile,mode='w',format='NETCDF4')


#J 描画