Source code for landlab.utils.add_halo

import numpy as np


[docs] def add_halo(data, halo=1, halo_value=None): """Add a halo of no data value to data. Parameters ---------- data : array-like Array to add the halo to. halo : int, optional The size of the halo. halo_value : float, optional Value to fill the halo with. If not provided, the new data will is not initialized. Examples -------- >>> import numpy as np >>> from landlab.utils import add_halo >>> data = np.array([[1, 2, 3], [4, 5, 6]]) >>> add_halo(data, halo_value=9) array([[9, 9, 9, 9, 9], [9, 1, 2, 3, 9], [9, 4, 5, 6, 9], [9, 9, 9, 9, 9]]) """ if halo < 0: raise ValueError("halo must be greater than or equal to zero") elif halo == 0: return data.copy() data_with_halo = np.empty([dim + 2 * halo for dim in data.shape], dtype=data.dtype) data_with_halo[halo:-halo, halo:-halo] = data if halo_value is not None: data_with_halo[:halo, :] = halo_value data_with_halo[-halo:, :] = halo_value data_with_halo[:, :halo] = halo_value data_with_halo[:, -halo:] = halo_value return data_with_halo