def METHOD_NAME(dataset, output_directory):
    """
    Converts a HDF5 `IMAGE` Class dataset to a compressed GeoTiff,
    with deflate zlevel 1 compression.
    Any attributes stored with the image will be written as dataset
    level metadata tags, and not band level tags.
    All attributes will also be written to a yaml file.
    :param dataset:
        A HDF5 `IMAGE` Class dataset.
    :param output_directory:
        A filesystem path to the directory that will be the root
        directory for any images extracted.
    :return:
        None, outputs are written directly to disk.
    """
    geobox = GriddedGeoBox.from_dataset(dataset)
    tags = {k: v for k, v in dataset.attrs.items() if k not in IGNORE}
    if "no_data_value" in tags:
        no_data = tags.pop("no_data_value")
    else:
        no_data = None
    tags["history"] = "Converted from HDF5 IMAGE to GeoTiff."
    # TODO: get x & y chunks from 3D images
    kwargs = {
        "driver": "GTiff",
        "geobox": geobox,
        "options": {"zlevel": 1, "compress": "deflate"},
        "tags": tags,
        "nodata": no_data,
    }
    base_fname = pjoin(output_directory, normpath(dataset.name.strip("/")))
    out_fname = "".join([base_fname, ".tif"])
    if not exists(dirname(out_fname)):
        os.makedirs(dirname(out_fname))
    write_img(dataset, out_fname, **kwargs)
    out_fname = "".join([base_fname, ".yaml"])
    tags = {k: v for k, v in dataset.attrs.items()}
    with open(out_fname, "w") as src:
        yaml.dump(tags, src, default_flow_style=False, indent=4)