<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def generate_grid(horiz_dim, bbox):
 r"""Generate a meshgrid based on bounding box and x & y resolution. Parameters horiz_dim: integer Horizontal resolution bbox: dictionary Dictionary containing coordinates for corners of study area. Returns ------- grid_x: (X, Y) ndarray X dimension meshgrid defined by given bounding box grid_y: (X, Y) ndarray Y dimension meshgrid defined by given bounding box """

    x_steps, y_steps = get_xy_steps(bbox, horiz_dim)

    grid_x = np.linspace(bbox['west'], bbox['east'], x_steps)
    grid_y = np.linspace(bbox['south'], bbox['north'], y_steps)

    gx, gy = np.meshgrid(grid_x, grid_y)

    return gx, gy