예제 #1
0
def test_replace_extension():
    grid = RasterModelGrid(4, 5, 2.)
    grid.add_field('node', 'air__temperature', np.arange(20.))

    with cdtemp() as _:
        grid.save('test.nc', format='esri-ascii')
        assert_true(os.path.isfile('test.asc'))

    with cdtemp() as _:
        grid.save('test.asc', format='netcdf')
        assert_true(os.path.isfile('test.nc'))
예제 #2
0
def test_guess_format():
    grid = RasterModelGrid(4, 5, 2.)
    grid.add_field('node', 'air__temperature', np.arange(20.))

    with cdtemp() as _:
        grid.save('test.asc')
        assert_true(os.path.isfile('test.asc'))
        read_esri_ascii('test.asc')

    with cdtemp() as _:
        grid.save('test.nc')
        assert_true(os.path.isfile('test.nc'))
        read_netcdf('test.nc')
예제 #3
0
def test_names_keyword_as_str_or_list():
    grid = RasterModelGrid((4, 5), spacing=(2., 2.))
    grid.add_field('node', 'air__temperature', np.arange(20.))
    grid.add_field('node', 'land_surface__elevation', np.arange(20.))

    with cdtemp() as _:
        files = write_esri_ascii('test.asc', grid, names='air__temperature')
        assert_list_equal(files, ['test.asc'])
        assert_true(os.path.isfile('test.asc'))

    with cdtemp() as _:
        files = write_esri_ascii('test.asc', grid, names=['air__temperature'])
        assert_list_equal(files, ['test.asc'])
        assert_true(os.path.isfile('test.asc'))
예제 #4
0
def test_names_keyword_as_str_or_list():
    grid = RasterModelGrid((4, 5), spacing=(2., 2.))
    grid.add_field('node', 'air__temperature', np.arange(20.))
    grid.add_field('node', 'land_surface__elevation', np.arange(20.))

    with cdtemp() as _:
        files = write_esri_ascii('test.asc', grid, names='air__temperature')
        assert_list_equal(files, ['test.asc'])
        assert_true(os.path.isfile('test.asc'))

    with cdtemp() as _:
        files = write_esri_ascii('test.asc', grid, names=['air__temperature'])
        assert_list_equal(files, ['test.asc'])
        assert_true(os.path.isfile('test.asc'))
예제 #5
0
def test_netcdf_write_at_cells():
    """Test write_netcdf using with cell fields"""
    if not WITH_NETCDF4:
        raise SkipTest('netCDF4 package not installed')

    field = RasterModelGrid((4, 3))
    field.add_field('cell', 'topographic__elevation',
                    np.arange(field.number_of_cells))
    field.add_field('cell', 'uplift_rate', np.arange(field.number_of_cells))

    with cdtemp() as _:
        write_netcdf('test-cells.nc', field, format='NETCDF4')
        root = nc.Dataset('test-cells.nc', 'r', format='NETCDF4')

        for name in ['topographic__elevation', 'uplift_rate']:
            assert_true(name in root.variables)
            assert_array_equal(root.variables[name][:].flat,
                               field.at_cell[name])

        assert_equal(set(root.dimensions), set(['nv', 'ni', 'nj', 'nt']))
        assert_equal(len(root.dimensions['nv']), 4)
        assert_equal(len(root.dimensions['ni']), 1)
        assert_equal(len(root.dimensions['nj']), 2)
        assert_true(len(root.dimensions['nt']), 1)
        assert_true(root.dimensions['nt'].isunlimited())

        assert_equal(
            set(root.variables),
            set(['x_bnds', 'y_bnds', 'topographic__elevation', 'uplift_rate']))
        root.close()
예제 #6
0
def test_names_keyword_with_bad_name():
    grid = RasterModelGrid((4, 5), spacing=(2., 2.))
    grid.add_field('node', 'air__temperature', np.arange(20.))

    with cdtemp() as _:
        assert_raises(ValueError, write_esri_ascii, 'test.asc', grid,
                      names='not_a_name')
예제 #7
0
def test_netcdf_write():
    """Test generic write_netcdf."""
    if not WITH_NETCDF4:
        raise SkipTest('netCDF4 package not installed')

    field = RasterModelGrid(4, 3)
    field.add_field('node', 'topographic__elevation', np.arange(12.))

    with cdtemp() as _:
        write_netcdf('test.nc', field, format='NETCDF4')
        root = nc.Dataset('test.nc', 'r', format='NETCDF4')

        assert_equal(set(root.dimensions), set(['ni', 'nj', 'nt']))
        assert_equal(len(root.dimensions['ni']), 3)
        assert_equal(len(root.dimensions['nj']), 4)
        assert_true(len(root.dimensions['nt']), 1)
        assert_true(root.dimensions['nt'].isunlimited())

        assert_equal(set(root.variables),
                     set(['x', 'y', 'topographic__elevation']))

        assert_array_equal(root.variables['x'][:].flat,
                           np.array([0., 1., 2., 0., 1., 2., 0., 1., 2.,
                                     0., 1., 2., ]))
        assert_array_equal(root.variables['y'][:].flat,
                           np.array([0., 0., 0., 1., 1., 1., 2., 2., 2.,
                                     3., 3., 3., ]))
        assert_array_equal(root.variables['topographic__elevation'][:].flat,
                           field.at_node['topographic__elevation'])

        root.close()
예제 #8
0
def test_netcdf_write_at_cells():
    """Test write_netcdf using with cell fields"""
    if not WITH_NETCDF4:
        raise SkipTest("netCDF4 package not installed")

    field = RasterModelGrid((4, 3))
    field.add_field("cell", "topographic__elevation", np.arange(field.number_of_cells))
    field.add_field("cell", "uplift_rate", np.arange(field.number_of_cells))

    with cdtemp() as _:
        write_netcdf("test-cells.nc", field, format="NETCDF4")
        root = nc.Dataset("test-cells.nc", "r", format="NETCDF4")

        for name in ["topographic__elevation", "uplift_rate"]:
            assert_true(name in root.variables)
            assert_array_equal(root.variables[name][:].flat, field.at_cell[name])

        assert_equal(set(root.dimensions), set(["nv", "ni", "nj", "nt"]))
        assert_equal(len(root.dimensions["nv"]), 4)
        assert_equal(len(root.dimensions["ni"]), 1)
        assert_equal(len(root.dimensions["nj"]), 2)
        assert_true(len(root.dimensions["nt"]), 1)
        assert_true(root.dimensions["nt"].isunlimited())

        assert_equal(set(root.variables), set(["x_bnds", "y_bnds", "topographic__elevation", "uplift_rate"]))
        root.close()
예제 #9
0
def test_netcdf_write():
    """Test generic write_netcdf."""
    if not WITH_NETCDF4:
        raise SkipTest('netCDF4 package not installed')

    field = RasterModelGrid(4, 3)
    field.add_field('node', 'topographic__elevation', np.arange(12.))

    with cdtemp() as _:
        write_netcdf('test.nc', field, format='NETCDF4')
        root = nc.Dataset('test.nc', 'r', format='NETCDF4')

        assert_equal(set(root.dimensions), set(['ni', 'nj', 'nt']))
        assert_equal(len(root.dimensions['ni']), 3)
        assert_equal(len(root.dimensions['nj']), 4)
        assert_true(len(root.dimensions['nt']), 1)
        assert_true(root.dimensions['nt'].isunlimited())

        assert_equal(set(root.variables),
                     set(['x', 'y', 'topographic__elevation']))

        assert_array_equal(root.variables['x'][:].flatten(),
                           np.array([0., 1., 2., 0., 1., 2., 0., 1., 2.,
                                     0., 1., 2., ]))
        assert_array_equal(root.variables['y'][:].flatten(),
                           np.array([0., 0., 0., 1., 1., 1., 2., 2., 2.,
                                     3., 3., 3., ]))
        assert_array_equal(root.variables['topographic__elevation'][:].flatten(),
                           field.at_node['topographic__elevation'])

        root.close()
예제 #10
0
def test_netcdf_write():
    if not WITH_NETCDF4:
        raise SkipTest("netCDF4 package not installed")

    field = RasterModelGrid(4, 3)
    field.add_field("node", "topographic__elevation", np.arange(12.0))

    with cdtemp() as _:
        write_netcdf("test.nc", field, format="NETCDF4")
        root = nc.Dataset("test.nc", "r", format="NETCDF4")

        assert_equal(set(root.dimensions), set(["ni", "nj", "nt"]))
        assert_equal(len(root.dimensions["ni"]), 3)
        assert_equal(len(root.dimensions["nj"]), 4)
        assert_true(len(root.dimensions["nt"]), 1)
        assert_true(root.dimensions["nt"].isunlimited())

        assert_equal(set(root.variables), set(["x", "y", "topographic__elevation"]))

        assert_array_equal(
            root.variables["x"][:].flat, np.array([0.0, 1.0, 2.0, 0.0, 1.0, 2.0, 0.0, 1.0, 2.0, 0.0, 1.0, 2.0])
        )
        assert_array_equal(
            root.variables["y"][:].flat, np.array([0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 2.0, 2.0, 2.0, 3.0, 3.0, 3.0])
        )
        assert_array_equal(root.variables["topographic__elevation"][:].flat, field.at_node["topographic__elevation"])

        root.close()
예제 #11
0
def test_grid_with_one_field():
    grid = RasterModelGrid((4, 5), spacing=(2., 2.))
    grid.add_field('node', 'air__temperature', np.arange(20.))
    with cdtemp() as _:
        files = write_esri_ascii('test.asc', grid)
        assert_list_equal(files, ['test.asc'])
        for fname in files:
            assert_true(os.path.isfile(fname))
예제 #12
0
def test_grid_with_one_field():
    grid = RasterModelGrid((4, 5), spacing=(2., 2.))
    grid.add_field('node', 'air__temperature', np.arange(20.))
    with cdtemp() as _:
        files = write_esri_ascii('test.asc', grid)
        assert_list_equal(files, ['test.asc'])
        for fname in files:
            assert_true(os.path.isfile(fname))
예제 #13
0
def test_from_yaml_path():
    """Load parameters from YAML-formatted string."""
    with cdtemp() as dir:
        with open('params.txt', 'w') as fp:
            fp.write(MPD_PARAMS_STR)
        params = load_params('./params.txt')
    assert_dict_equal(params, MPD_PARAMS)
    assert_is_instance(params['x'], float)
    assert_is_instance(params['y'], int)
예제 #14
0
def test_names_keyword():
    grid = RasterModelGrid(4, 5, 2.)
    grid.add_field('node', 'air__temperature', np.arange(20.))
    grid.add_field('node', 'land_surface__elevation', np.arange(20.))

    with cdtemp() as _:
        grid.save('test.asc', names='land_surface__elevation')
        assert_true(os.path.isfile('test.asc'))
        read_esri_ascii('test.asc')

    with cdtemp() as _:
        grid.save('test.asc', names=['land_surface__elevation',
                                     'air__temperature'])
        files = ['test_land_surface__elevation.asc',
                 'test_air__temperature.asc']
        for fname in files:
            assert_true(os.path.isfile(fname))
            read_esri_ascii(fname)
예제 #15
0
def test_from_yaml_path():
    """Load parameters from YAML-formatted string."""
    with cdtemp() as dir:
        with open('params.txt', 'w') as fp:
            fp.write(MPD_PARAMS_STR)
        params = load_params('./params.txt')
    assert_dict_equal(params, MPD_PARAMS)
    assert_is_instance(params['x'], float)
    assert_is_instance(params['y'], int)
예제 #16
0
def test_names_keyword_with_bad_name():
    grid = RasterModelGrid((4, 5), spacing=(2., 2.))
    grid.add_field('node', 'air__temperature', np.arange(20.))

    with cdtemp() as _:
        assert_raises(ValueError,
                      write_esri_ascii,
                      'test.asc',
                      grid,
                      names='not_a_name')
예제 #17
0
def test_clobber_keyword():
    grid = RasterModelGrid((4, 5), spacing=(2., 2.))
    grid.add_field('node', 'air__temperature', np.arange(20.))

    with cdtemp() as _:
        write_esri_ascii('test.asc', grid)
        assert_raises(ValueError, write_esri_ascii, 'test.asc', grid)
        assert_raises(ValueError, write_esri_ascii, 'test.asc', grid,
                      clobber=False)
        write_esri_ascii('test.asc', grid, clobber=True)
예제 #18
0
def test_grid_with_two_fields():
    grid = RasterModelGrid((4, 5), spacing=(2., 2.))
    grid.add_field('node', 'air__temperature', np.arange(20.))
    grid.add_field('node', 'land_surface__elevation', np.arange(20.))
    with cdtemp() as _:
        files = write_esri_ascii('test.asc', grid)
        files.sort()
        assert_list_equal(files, ['test_air__temperature.asc',
                                  'test_land_surface__elevation.asc'])
        for fname in files:
            assert_true(os.path.isfile(fname))
예제 #19
0
def test_grid_with_two_fields():
    grid = RasterModelGrid((4, 5), spacing=(2., 2.))
    grid.add_field('node', 'air__temperature', np.arange(20.))
    grid.add_field('node', 'land_surface__elevation', np.arange(20.))
    with cdtemp() as _:
        files = write_esri_ascii('test.asc', grid)
        files.sort()
        assert_list_equal(
            files,
            ['test_air__temperature.asc', 'test_land_surface__elevation.asc'])
        for fname in files:
            assert_true(os.path.isfile(fname))
예제 #20
0
def test_clobber_keyword():
    grid = RasterModelGrid((4, 5), spacing=(2., 2.))
    grid.add_field('node', 'air__temperature', np.arange(20.))

    with cdtemp() as _:
        write_esri_ascii('test.asc', grid)
        assert_raises(ValueError, write_esri_ascii, 'test.asc', grid)
        assert_raises(ValueError,
                      write_esri_ascii,
                      'test.asc',
                      grid,
                      clobber=False)
        write_esri_ascii('test.asc', grid, clobber=True)
예제 #21
0
def test_names_keyword_multiple_names():
    grid = RasterModelGrid(4, 5, dx=2.)
    grid.add_field('node', 'air__temperature', np.arange(20.))
    grid.add_field('node', 'land_surface__elevation', np.arange(20.))

    with cdtemp() as _:
        files = write_esri_ascii('test.asc', grid,
                                 names=['air__temperature',
                                        'land_surface__elevation'])
        files.sort()
        assert_list_equal(files, ['test_air__temperature.asc',
                                  'test_land_surface__elevation.asc'])
        for fname in files:
            assert_true(os.path.isfile(fname))
예제 #22
0
def test_write_then_read():
    grid = RasterModelGrid((4, 5), spacing=(2., 2.))
    grid.add_field('node', 'air__temperature', np.arange(20.))

    with cdtemp() as _:
        write_esri_ascii('test.asc', grid)
        new_grid, field = read_esri_ascii('test.asc')

    assert_equal(grid.number_of_node_columns, new_grid.number_of_node_columns)
    assert_equal(grid.number_of_node_rows, new_grid.number_of_node_rows)
    assert_equal(grid.dx, new_grid.dx)
    assert_array_almost_equal(grid.node_x, new_grid.node_x)
    assert_array_almost_equal(grid.node_y, new_grid.node_y)
    assert_array_almost_equal(field, grid.at_node['air__temperature'])
예제 #23
0
def test_write_then_read():
    grid = RasterModelGrid((4, 5), spacing=(2., 2.))
    grid.add_field('node', 'air__temperature', np.arange(20.))

    with cdtemp() as _:
        write_esri_ascii('test.asc', grid)
        new_grid, field = read_esri_ascii('test.asc')

    assert_equal(grid.number_of_node_columns, new_grid.number_of_node_columns)
    assert_equal(grid.number_of_node_rows, new_grid.number_of_node_rows)
    assert_equal(grid.dx, new_grid.dx)
    assert_array_almost_equal(grid.node_x, new_grid.node_x)
    assert_array_almost_equal(grid.node_y, new_grid.node_y)
    assert_array_almost_equal(field, grid.at_node['air__temperature'])
예제 #24
0
def test_netcdf_write_uint8_field_netcdf4():
    """Test write_netcdf with a grid that has an uint8 field."""
    field = RasterModelGrid(4, 3)
    field.add_field("node", "topographic__elevation", np.arange(12, dtype=np.uint8))

    with cdtemp() as _:
        write_netcdf("test.nc", field, format="NETCDF4")

        root = nc.Dataset("test.nc", "r", format="NETCDF4")

        for name in ["topographic__elevation"]:
            assert_true(name in root.variables)
            assert_array_equal(root.variables[name][:].flat, field.at_node[name])
            assert_equal(root.variables[name][:].dtype, "uint8")

        root.close()
예제 #25
0
def test_netcdf_write_uint8_field_netcdf4():
    field = RasterModelGrid(4, 3)
    field.add_field('node', 'topographic__elevation',
                    np.arange(12, dtype=np.uint8))

    with cdtemp() as _:
        write_netcdf('test.nc', field, format='NETCDF4')

        root = nc.Dataset('test.nc', 'r', format='NETCDF4')

        for name in ['topographic__elevation']:
            assert_true(name in root.variables)
            assert_array_equal(root.variables[name][:].flat,
                               field.at_node[name])
            assert_equal(root.variables[name][:].dtype, 'uint8')

        root.close()
예제 #26
0
def test_netcdf_write_as_netcdf4_classic():
    if not WITH_NETCDF4:
        raise SkipTest("netCDF4 package not installed")

    field = RasterModelGrid(4, 3)
    field.add_field("node", "topographic__elevation", np.arange(12.0))
    field.add_field("node", "uplift_rate", np.arange(12.0))

    with cdtemp() as _:
        write_netcdf("test.nc", field, format="NETCDF4_CLASSIC")
        root = nc.Dataset("test.nc", "r", format="NETCDF4_CLASSIC")

        for name in ["topographic__elevation", "uplift_rate"]:
            assert_true(name in root.variables)
            assert_array_equal(root.variables[name][:].flat, field.at_node[name])

        root.close()
예제 #27
0
def test_netcdf_write_names_keyword_as_str():
    if not WITH_NETCDF4:
        raise SkipTest("netCDF4 package not installed")

    field = RasterModelGrid(4, 3)
    field.add_field("node", "topographic__elevation", np.arange(12.0))
    field.add_field("node", "uplift_rate", np.arange(12.0))

    with cdtemp() as _:
        write_netcdf("test.nc", field, names="uplift_rate", format="NETCDF4")
        root = nc.Dataset("test.nc", "r", format="NETCDF4")

        assert_true("topographic__elevation" not in root.variables)
        assert_true("uplift_rate" in root.variables)
        assert_array_equal(root.variables["uplift_rate"][:].flat, field.at_node["uplift_rate"])

        root.close()
예제 #28
0
def test_netcdf_write_as_netcdf3_classic():
    from scipy.io import netcdf

    field = RasterModelGrid(4, 3)
    field.add_field('node', 'topographic__elevation', np.arange(12.))
    field.add_field('node', 'uplift_rate', 2. * np.arange(12.))

    with cdtemp() as _:
        write_netcdf('test.nc', field, format='NETCDF3_CLASSIC')

        f = netcdf.netcdf_file('test.nc', 'r')

        for name in ['topographic__elevation', 'uplift_rate']:
            assert_true(name in f.variables)
            assert_array_equal(f.variables[name][:].flat, field.at_node[name])

        f.close()
예제 #29
0
def test_netcdf_write_as_netcdf3_classic():
    from scipy.io import netcdf

    field = RasterModelGrid(4, 3)
    field.add_field("node", "topographic__elevation", np.arange(12.0))
    field.add_field("node", "uplift_rate", 2.0 * np.arange(12.0))

    with cdtemp() as _:
        write_netcdf("test.nc", field, format="NETCDF3_CLASSIC")

        f = netcdf.netcdf_file("test.nc", "r")

        for name in ["topographic__elevation", "uplift_rate"]:
            assert_true(name in f.variables)
            assert_array_equal(f.variables[name][:].flat, field.at_node[name])

        f.close()
예제 #30
0
def test_netcdf_write_uint8_field_netcdf4():
    field = RasterModelGrid(4, 3)
    field.add_field('node', 'topographic__elevation',
                    np.arange(12, dtype=np.uint8))

    with cdtemp() as _:
        write_netcdf('test.nc', field, format='NETCDF4')

        root = nc.Dataset('test.nc', 'r', format='NETCDF4')

        for name in ['topographic__elevation']:
            assert_true(name in root.variables)
            assert_array_equal(root.variables[name][:].flat,
                               field.at_node[name])
            assert_equal(root.variables[name][:].dtype, 'uint8')

        root.close()
예제 #31
0
def test_netcdf_write_as_netcdf3_classic():
    from scipy.io import netcdf

    field = RasterModelGrid(4, 3)
    field.add_field('node', 'topographic__elevation', np.arange(12.))
    field.add_field('node', 'uplift_rate', 2. * np.arange(12.))

    with cdtemp() as _:
        write_netcdf('test.nc', field, format='NETCDF3_CLASSIC')

        f = netcdf.netcdf_file('test.nc', 'r')

        for name in ['topographic__elevation', 'uplift_rate']:
            assert_true(name in f.variables)
            assert_array_equal(f.variables[name][:].flat, field.at_node[name])

        f.close()
예제 #32
0
def test_netcdf_write_names_keyword_as_none():
    """Test write_netcdf using ``None`` for the *names* keyword."""
    if not WITH_NETCDF4:
        raise SkipTest("netCDF4 package not installed")

    field = RasterModelGrid(4, 3)
    field.add_field("node", "topographic__elevation", np.arange(12.0))
    field.add_field("node", "uplift_rate", np.arange(12.0))

    with cdtemp() as _:
        write_netcdf("test.nc", field, names=None, format="NETCDF4")
        root = nc.Dataset("test.nc", "r", format="NETCDF4")

        for name in ["topographic__elevation", "uplift_rate"]:
            assert_true(name in root.variables)
            assert_array_equal(root.variables[name][:].flat, field.at_node[name])

        root.close()
예제 #33
0
def test_netcdf_write_names_keyword_as_none():
    if not WITH_NETCDF4:
        raise SkipTest('netCDF4 package not installed')

    field = RasterModelGrid(4, 3)
    field.add_field('node', 'topographic__elevation', np.arange(12.))
    field.add_field('node', 'uplift_rate', np.arange(12.))

    with cdtemp() as _:
        write_netcdf('test.nc', field, names=None, format='NETCDF4')
        root = nc.Dataset('test.nc', 'r', format='NETCDF4')

        for name in ['topographic__elevation', 'uplift_rate']:
            assert_true(name in root.variables)
            assert_array_equal(root.variables[name][:].flat,
                               field.at_node[name])

        root.close()
예제 #34
0
def test_netcdf_write_names_keyword_as_str():
    if not WITH_NETCDF4:
        raise SkipTest('netCDF4 package not installed')

    field = RasterModelGrid(4, 3)
    field.add_field('node', 'topographic__elevation', np.arange(12.))
    field.add_field('node', 'uplift_rate', np.arange(12.))

    with cdtemp() as _:
        write_netcdf('test.nc', field, names='uplift_rate', format='NETCDF4')
        root = nc.Dataset('test.nc', 'r', format='NETCDF4')

        assert_true('topographic__elevation' not in root.variables)
        assert_true('uplift_rate' in root.variables)
        assert_array_equal(root.variables['uplift_rate'][:].flat,
                           field.at_node['uplift_rate'])

        root.close()
예제 #35
0
def test_netcdf_write_as_netcdf4_classic():
    if not WITH_NETCDF4:
        raise SkipTest('netCDF4 package not installed')

    field = RasterModelGrid(4, 3)
    field.add_field('node', 'topographic__elevation', np.arange(12.))
    field.add_field('node', 'uplift_rate', np.arange(12.))

    with cdtemp() as _:
        write_netcdf('test.nc', field, format='NETCDF4_CLASSIC')
        root = nc.Dataset('test.nc', 'r', format='NETCDF4_CLASSIC')

        for name in ['topographic__elevation', 'uplift_rate']:
            assert_true(name in root.variables)
            assert_array_equal(root.variables[name][:].flat,
                               field.at_node[name])

        root.close()
예제 #36
0
def test_netcdf_write_int64_field_netcdf4():
    """Test write_netcdf with a grid that has an int64 field."""
    field = RasterModelGrid(4, 3)
    field.add_field('node', 'topographic__elevation',
                    np.arange(12, dtype=np.int64))

    with cdtemp() as _:
        write_netcdf('test.nc', field, format='NETCDF4')

        root = nc.Dataset('test.nc', 'r', format='NETCDF4')

        for name in ['topographic__elevation']:
            assert_true(name in root.variables)
            assert_array_equal(root.variables[name][:].flatten(),
                               field.at_node[name])
            assert_equal(root.variables[name][:].dtype, 'int64')

        root.close()
예제 #37
0
def test_netcdf_write_names_keyword_as_str():
    """Test write_netcdf using a ``str`` for the *names* keyword."""
    if not WITH_NETCDF4:
        raise SkipTest('netCDF4 package not installed')

    field = RasterModelGrid(4, 3)
    field.add_field('node', 'topographic__elevation', np.arange(12.))
    field.add_field('node', 'uplift_rate', np.arange(12.))

    with cdtemp() as _:
        write_netcdf('test.nc', field, names='uplift_rate', format='NETCDF4')
        root = nc.Dataset('test.nc', 'r', format='NETCDF4')

        assert_true('topographic__elevation' not in root.variables)
        assert_true('uplift_rate' in root.variables)
        assert_array_equal(root.variables['uplift_rate'][:].flat,
                           field.at_node['uplift_rate'])

        root.close()
예제 #38
0
def test_grid_with_no_fields():
    grid = RasterModelGrid((4, 5), spacing=(2., 2.))
    with cdtemp() as _:
        assert_raises(ValueError, write_esri_ascii, 'test.asc', grid)
예제 #39
0
def test_grid_with_no_fields():
    grid = RasterModelGrid((4, 5), spacing=(2., 2.))
    with cdtemp() as _:
        assert_raises(ValueError, write_esri_ascii, 'test.asc', grid)