def to_optimize(x): tasks.mass_conservation_inversion(gdir, glen_a=glen_a * x[0], fs=fs * x[1]) tasks.distribute_thickness_per_altitude(gdir) with xr.open_dataset(gdir.get_filepath('gridded_data')) as ds: thick = ds.distributed_thickness.isel(x=('z', df['i']), y=('z', df['j'])) out = (np.abs(thick - df.thick)).mean() return out
pdf[r'$\mu (t)$'] = mu_yr_clim pdf['bias'] = diff res = t_star_from_refmb(gdir, mbdf=mbdf.ANNUAL_BALANCE) # For the mass flux cl = gdir.read_pickle('inversion_input')[-1] mbmod = ConstantMassBalance(gdir) mbx = (mbmod.get_annual_mb(cl['hgt']) * cfg.SEC_IN_YEAR * cfg.PARAMS['ice_density']) fdf = pd.DataFrame(index=np.arange(len(mbx)) * cl['dx']) fdf['Flux'] = cl['flux'] fdf['Mass balance'] = mbx # For the distributed thickness tasks.mass_conservation_inversion(gdir, glen_a=2.4e-24 * 3, fs=0) tasks.distribute_thickness_per_altitude(gdir) # plot functions def example_plot_temp_ts(): d = xr.open_dataset(gdir.get_filepath('climate_historical')) temp = d.temp.resample(time='12MS').mean('time').to_series() temp.index = temp.index.year try: temp = temp.rename_axis(None) except AttributeError: del temp.index.name temp.plot(figsize=(8, 4), label='Annual temp') tsm = temp.rolling(31, center=True, min_periods=15).mean() tsm.plot(label='31-yr avg') plt.legend(loc='best')
pdf[r'$\mu (t)$'] = mu_yr_clim pdf['bias'] = diff res = t_star_from_refmb(gdir, mbdf=mbdf.ANNUAL_BALANCE) # For the mass flux cl = gdir.read_pickle('inversion_input')[-1] mbmod = ConstantMassBalance(gdir) mbx = (mbmod.get_annual_mb(cl['hgt']) * cfg.SEC_IN_YEAR * cfg.PARAMS['ice_density']) fdf = pd.DataFrame(index=np.arange(len(mbx))*cl['dx']) fdf['Flux'] = cl['flux'] fdf['Mass balance'] = mbx # For the distributed thickness tasks.mass_conservation_inversion(gdir, glen_a=2.4e-24 * 3, fs=0) tasks.distribute_thickness_per_altitude(gdir) # plot functions def example_plot_temp_ts(): d = xr.open_dataset(gdir.get_filepath('climate_monthly')) temp = d.temp.resample(time='12MS').mean('time').to_series() del temp.index.name temp.plot(figsize=(8, 4), label='Annual temp') tsm = temp.rolling(31, center=True, min_periods=15).mean() tsm.plot(label='31-yr avg') plt.legend(loc='best') plt.title('HISTALP annual temperature, Hintereisferner') plt.ylabel(r'degC') plt.tight_layout() plt.show()