def test_find_t0(self): gdir = init_hef(border=DOM_BORDER, invert_with_sliding=False) flowline.init_present_time_glacier(gdir) glacier = gdir.read_pickle('model_flowlines') df = pd.read_csv(utils.get_demo_file('hef_lengths.csv'), index_col=0) df.columns = ['Leclercq'] df = df.loc[1950:] vol_ref = flowline.FlowlineModel(glacier).volume_km3 init_bias = 100. # 100 so that "went too far" comes once on travis rtol = 0.005 flowline.find_inital_glacier(gdir, y0=df.index[0], init_bias=init_bias, rtol=rtol, write_steps=False) past_model = gdir.read_pickle('past_model') vol_start = past_model.volume_km3 bef_fls = copy.deepcopy(past_model.fls) mylen = [] for y in df.index: past_model.run_until(y) mylen.append(past_model.fls[-1].length_m) df['oggm'] = mylen df = df - df.iloc[-1] vol_end = past_model.volume_km3 np.testing.assert_allclose(vol_ref, vol_end, rtol=0.05) rmsd = utils.rmsd(df.Leclercq, df.oggm) self.assertTrue(rmsd < 1000.) if do_plot: # pragma: no cover df.plot() plt.ylabel('Glacier length (relative to 2003)') plt.show() fig = plt.figure() lab = 'ref (vol={:.2f}km3)'.format(vol_ref) plt.plot(glacier[-1].surface_h, 'k', label=lab) lab = 'oggm start (vol={:.2f}km3)'.format(vol_start) plt.plot(bef_fls[-1].surface_h, 'b', label=lab) lab = 'oggm end (vol={:.2f}km3)'.format(vol_end) plt.plot(past_model.fls[-1].surface_h, 'r', label=lab) plt.plot(glacier[-1].bed_h, 'gray', linewidth=2) plt.legend(loc='best') plt.show()
def test_grow(self): gdirs = up_to_inversion() for gd in gdirs[0:2]: if gd.rgi_id in ['RGI40-11.00719']: # Bad bad glacier continue flowline.init_present_time_glacier(gd) flowline.find_inital_glacier(gd)
def test_find_t0(self): gdir = init_hef(border=DOM_BORDER, invert_with_sliding=False) flowline.init_present_time_glacier(gdir) glacier = gdir.read_pickle('model_flowlines') df = pd.read_csv(utils.get_demo_file('hef_lengths.csv'), index_col=0) df.columns = ['Leclercq'] df = df.loc[1950:] vol_ref = flowline.FlowlineModel(glacier).volume_km3 init_bias = 100. # 100 so that "went too far" comes once on travis rtol = 0.005 flowline.find_inital_glacier(gdir, y0=df.index[0], init_bias=init_bias, rtol=rtol, write_steps=False) past_model = gdir.read_pickle('past_model') vol_start = past_model.volume_km3 bef_fls = copy.deepcopy(past_model.fls) mylen = [] for y in df.index: past_model.run_until(y) mylen.append(past_model.fls[-1].length_m) df['oggm'] = mylen df = df-df.iloc[-1] vol_end = past_model.volume_km3 np.testing.assert_allclose(vol_ref, vol_end, rtol=0.05) rmsd = utils.rmsd(df.Leclercq, df.oggm) self.assertTrue(rmsd < 1000.) if do_plot: # pragma: no cover df.plot() plt.ylabel('Glacier length (relative to 2003)') plt.show() fig = plt.figure() lab = 'ref (vol={:.2f}km3)'.format(vol_ref) plt.plot(glacier[-1].surface_h, 'k', label=lab) lab = 'oggm start (vol={:.2f}km3)'.format(vol_start) plt.plot(bef_fls[-1].surface_h, 'b', label=lab) lab = 'oggm end (vol={:.2f}km3)'.format(vol_end) plt.plot(past_model.fls[-1].surface_h, 'r', label=lab) plt.plot(glacier[-1].bed_h, 'gray', linewidth=2) plt.legend(loc='best') plt.show()