def METHOD_NAME(scn_name):
    """
    Map H2 buses to nearest HV AC bus.
    Parameters
    ----------
    scn_name : str
        Name of the scenario.
    Returns
    -------
    gdf : geopandas.GeoDataFrame
        GeoDataFrame with connected buses.
    """
    # Create dataframes containing all gas buses and all the HV power buses
    sql_AC = f"""SELECT bus_id, geom
                FROM grid.egon_etrago_bus
                WHERE carrier = 'AC' AND scn_name = '{scn_name}'
                AND country = 'DE';
                """
    sql_gas = f"""SELECT bus_id, scn_name, geom
                FROM grid.egon_etrago_bus
                WHERE carrier LIKE 'H2%%' AND scn_name = '{scn_name}'
                AND country = 'DE';"""
    gdf_AC = db.select_geodataframe(sql_AC, epsg=4326)
    gdf_gas = db.select_geodataframe(sql_gas, epsg=4326)
    # Associate each gas bus to its nearest HV power bus
    n_gas = np.array(list(gdf_gas.geometry.apply(lambda x: (x.x, x.y))))
    n_AC = np.array(list(gdf_AC.geometry.apply(lambda x: (x.x, x.y))))
    btree = cKDTree(n_AC)
    dist, idx = btree.query(n_gas, k=1)
    gd_AC_nearest = (
        gdf_AC.iloc[idx]
        .rename(columns={"bus_id": "bus0", "geom": "geom_AC"})
        .reset_index(drop=True)
    )
    gdf = pd.concat(
        [
            gdf_gas.reset_index(drop=True),
            gd_AC_nearest,
            pd.Series(dist, name="dist"),
        ],
        axis=1,
    )
    return gdf.rename(columns={"bus_id": "bus1", "geom": "geom_gas"})