def test_save_and_load_hex(): """Test saving and loading of a HexModelGrid.""" mg1 = HexModelGrid(3, 3, 1.0) mg1.add_zeros("node", "topographic__elevation") save_grid(mg1, "testsavedgrid.grid") mg2 = load_grid("testsavedgrid.grid") assert mg1.x_of_node[0] == mg2.x_of_node[0] assert_array_equal(mg1.status_at_node, mg2.status_at_node) for name in mg1.at_node: assert_array_equal(mg1.at_node[name], mg2.at_node[name])
def test_save_and_load_hex(): """Test saving and loading of a HexModelGrid.""" mg1 = HexModelGrid(3, 3, 1.0) mg1.add_zeros("node", "topographic__elevation") save_grid(mg1, "testsavedgrid.grid") mg2 = load_grid("testsavedgrid.grid") assert mg1.x_of_node[0] == mg2.x_of_node[0] assert_array_equal(mg1.status_at_node, mg2.status_at_node) for name in mg1.at_node: assert_array_equal(mg1.at_node[name], mg2.at_node[name])
def test_save(): # Make a simple-ish grid mg1 = RasterModelGrid(10, 10, 2.) z = mg1.add_zeros('node', 'topographic__elevation') z += mg1.node_x.copy() fa = FlowAccumulator(mg1, flow_director='D8') fa.run_one_step() save_grid(mg1, 'testsavedgrid.grid') mg2 = load_grid('testsavedgrid.grid') os.remove('testsavedgrid.grid') assert mg1.shape == mg2.shape assert (mg1.dy, mg1.dx) == (mg2.dy, mg2.dx) assert_array_equal(mg1.status_at_node, mg2.status_at_node) for name in mg1.at_node: assert_array_equal(mg1.at_node[name], mg2.at_node[name])
def test_save(): # Make a simple-ish grid mg1 = RasterModelGrid(10, 10, xy_spacing=2.0) z = mg1.add_zeros("node", "topographic__elevation") z += mg1.node_x.copy() fa = FlowAccumulator(mg1, flow_director="D8") fa.run_one_step() save_grid(mg1, "testsavedgrid.grid") mg2 = load_grid("testsavedgrid.grid") os.remove("testsavedgrid.grid") assert mg1.shape == mg2.shape assert (mg1.dy, mg1.dx) == (mg2.dy, mg2.dx) assert_array_equal(mg1.status_at_node, mg2.status_at_node) for name in mg1.at_node: assert_array_equal(mg1.at_node[name], mg2.at_node[name])
def test_save(): # Make a simple-ish grid mg1 = RasterModelGrid((10, 10), xy_spacing=2.0) z = mg1.add_zeros("node", "topographic__elevation") z += mg1.node_x.copy() fa = FlowAccumulator(mg1, flow_director="D8") fa.run_one_step() save_grid(mg1, "testsavedgrid.grid") mg2 = load_grid("testsavedgrid.grid") os.remove("testsavedgrid.grid") assert mg1.shape == mg2.shape assert (mg1.dy, mg1.dx) == (mg2.dy, mg2.dx) assert_array_equal(mg1.status_at_node, mg2.status_at_node) for name in mg1.at_node: assert_array_equal(mg1.at_node[name], mg2.at_node[name])
def test_save(): # Make a simple-ish grid mg1 = RasterModelGrid(10,10,2.) z = mg1.add_zeros('node', 'topographic__elevation') z += mg1.node_x.copy() fa = FlowAccumulator(mg1, flow_director='D8') fa.run_one_step() save_grid(mg1, 'testsavedgrid.grid') mg2 = load_grid('testsavedgrid.grid') os.remove('testsavedgrid.grid') assert_tuple_equal(mg1.shape, mg2.shape) assert_tuple_equal((mg1.dy, mg1.dx), (mg2.dy, mg2.dx)) assert_array_equal(mg1.status_at_node, mg2.status_at_node) for name in mg1.at_node: assert_array_equal(mg1.at_node[name], mg2.at_node[name])
def test_save(): # Make a simple-ish grid mg1 = RasterModelGrid(10,10,2.) z = mg1.add_zeros('node', 'topographic__elevation') z += mg1.node_x.copy() fa = FlowAccumulator(mg1, flow_director='D8') fa.run_one_step() save_grid(mg1, 'testsavedgrid.grid') mg2 = load_grid('testsavedgrid.grid') # compare the two len(mg1.__dict__) == len(mg2.__dict__) mg1keys = sorted(list(mg1.__dict__.keys())) mg2keys = sorted(list(mg2.__dict__.keys())) for i in range(len(mg1keys)): assert_equal(mg1keys[i], mg2keys[i]) a = compare_dictionaries(mg1.__dict__,mg2.__dict__,'m1','m2') assert_equal(a, '') os.remove('testsavedgrid.grid')
def write_output(self, grid, outfilename, iteration): """Write output to file (currently netCDF).""" filename = outfilename + str(iteration).zfill(4) + ".nc" save_grid(grid, filename)
'weathering_rate': 0.0, 'dissolution_rate': 0.0, 'uplift_interval': 866.0, 'plot_interval': 1300.0, 'friction_coef': 1.0, 'fault_x': 23.0, 'cell_width': 0.5, 'grav_accel': 9.8, } # Sweep through a range of parameters for dist_exp in np.arange(-4, 0): for weath_exp in np.arange(-4, 0): weath_rate = 10.0**weath_exp dist_rate = 10.0**dist_exp params['disturbance_rate'] = dist_rate params['weathering_rate'] = weath_rate print('Disturbance rate: ' + str(params['disturbance_rate']) + ' 1/y') print('Weathering rate: ' + str(params['weathering_rate']) + ' 1/y') opname = ('d' + str(int(10 * dist_exp)) + 'w' + str(int(10 * weath_exp))) create_folder(opname) params['plot_file_name'] = opname + '/' + opname gfs = GrainFacetSimulator(**params) gfs.run() save_grid(gfs.grid, opname + '.grid', clobber=True)
def write_output(self, grid, outfilename, iteration): """Write output to file (currently netCDF).""" filename = outfilename + str(iteration).zfill(4) + '.nc' save_grid(grid, filename)
results_file = open('results' + today_str + '.csv', 'w') results_file.write('Landlab version,' + landlab.__version__ + ',\n') # Print header in file results_file.write('Dissolution rate parameter (1/yr),Gradient (m/m),' + 'Slope angle (deg)\n') # Sweep through a range of dissolution rate parameters for diss_rate in np.arange(4.0e-5, 5.0e-4, 4.0e-5): params['dissolution_rate'] = diss_rate print('Dissolution rate: ' + str(params['dissolution_rate']) + ' 1/y') opname = 'dissolve_dr' + str(int(diss_rate * 1.0e5)) create_folder(opname) params['plot_file_name'] = opname + '/' + opname gfs = GrainFacetSimulator(**params) gfs.run() sm = SlopeMeasurer(gfs) sm.pick_rock_surface() (m, b) = sm.fit_straight_line_to_surface() angle = np.degrees(np.arctan(m)) results_file.write(str(diss_rate) + ',' + str(m) + ',' + str(angle) + '\n') save_grid(gfs.grid, opname + '/' + opname + '.grid') results_file.close()