def interactive_plot(cube, cmap='viridis', kdims=['longitude', 'latitude'], coastlines=False, coastline_color='pink', projection=ccrs.PlateCarree, tools=['hover'], min_height=600, **opts):
    dataset = gv.Dataset(cube, [coord.name() for coord in cube.dim_coords], label=cube.name())
    image = regrid(dataset.to(gv.Image, kdims, dynamic=True))
    options = {'cmap': cmap, 'responsive': True, 'projection': projection(), 'colorbar': True, 'min_height': min_height, 'aspect': 2, 'tools': tools}
    if coastlines:
        return (((gv.feature.ocean * gv.feature.land) * image.opts(**options, **opts)) * gv.feature.coastline.opts(line_color=coastline_color))
    else:
        return image.opts(**options, **opts)
def interactive_plot(cube, cmap='viridis', kdims=['longitude', 'latitude'], coastlines=False, coastline_color='pink', projection=ccrs.PlateCarree, tools=['hover'], min_height=600, **opts):
    dataset = gv.Dataset(cube, [coord.name() for coord in cube.dim_coords], label=cube.name())
    image = regrid(dataset.to(gv.Image, kdims, dynamic=True))
    options = {'cmap': cmap, 'responsive': True, 'projection': projection(), 'colorbar': True, 'min_height': min_height, 'aspect': 2, 'tools': tools}
    if coastlines:
        return (((gv.feature.ocean * gv.feature.land) * image.opts(**options, **opts)) * gv.feature.coastline.opts(line_color=coastline_color))
    else:
        return image.opts(**options, **opts)