Ejemplo n.º 1
0
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])
Ejemplo n.º 2
0
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])
Ejemplo n.º 3
0
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])
Ejemplo n.º 4
0
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])
Ejemplo n.º 5
0
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])
Ejemplo n.º 6
0
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])
Ejemplo n.º 7
0
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')
Ejemplo n.º 8
0
 def write_output(self, grid, outfilename, iteration):
     """Write output to file (currently netCDF)."""
     filename = outfilename + str(iteration).zfill(4) + ".nc"
     save_grid(grid, filename)
Ejemplo n.º 9
0
    '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)
Ejemplo n.º 10
0
 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()