# Path: windpowerlib/wind_speed.py
# def logarithmic_profile(
#     wind_speed,
#     wind_speed_height,
#     hub_height,
#     roughness_length,
#     obstacle_height=0.0,
# ):
# def hellman(
#     wind_speed,
#     wind_speed_height,
#     hub_height,
#     roughness_length=None,
#     hellman_exponent=None,
# ):
# 
# Path: windpowerlib/density.py
# def barometric(pressure, pressure_height, hub_height, temperature_hub_height):
# def ideal_gas(pressure, pressure_height, hub_height, temperature_hub_height):
# 
# Path: windpowerlib/temperature.py
# def linear_gradient(temperature, temperature_height, hub_height):
# 
# Path: windpowerlib/power_output.py
# def power_coefficient_curve(
#     wind_speed,
#     power_coefficient_curve_wind_speeds,
#     power_coefficient_curve_values,
#     rotor_diameter,
#     density,
# ):
# def power_curve(
#     wind_speed,
#     power_curve_wind_speeds,
#     power_curve_values,
#     density=None,
#     density_correction=False,
# ):
# def power_curve_density_correction(
#     wind_speed, power_curve_wind_speeds, power_curve_values, density
# ):
# def _get_power_output(
#     wind_speed, power_curve_wind_speeds, density, power_curve_values
# ):
#     def interp_func(w_speed, p_curves):
# 
# Path: windpowerlib/tools.py
# class WindpowerlibUserWarning(UserWarning):
# def linear_interpolation_extrapolation(df, target_height):
# def logarithmic_interpolation_extrapolation(df, target_height):
# def gauss_distribution(function_variable, standard_deviation, mean=0):
# def estimate_turbulence_intensity(height, roughness_length):
# 
# Path: windpowerlib/data.py
# def get_turbine_types(turbine_library="local", print_out=True, filter_=True):
# def fetch_turbine_data_from_oedb(
#     schema="supply", table="wind_turbine_library"
# ):
# def load_turbine_data_from_oedb(schema="supply", table="wind_turbine_library"):
# def store_turbine_data_from_oedb(
#     schema="supply", table="wind_turbine_library"
# ):
# def check_turbine_data(filename):
# def check_data_integrity(filename, min_pc_length=5):
# def restore_default_turbine_data():
# def check_weather_data(weather_data):


import logging
from windpowerlib import (
    wind_speed,
    density,
    temperature,
    power_output,
    tools,
    data,
)
            logging.debug(
                "Calculating wind speed using logarithmic inter- or "
                "extrapolation."
            )
            wind_speed_hub = tools.logarithmic_interpolation_extrapolation(
                weather_df["wind_speed"], self.power_plant.hub_height
            )
        else:
            raise ValueError(
                "'{0}' is an invalid value. ".format(self.wind_speed_model)
                + "`wind_speed_model` must be "
                "'logarithmic', 'hellman', 'interpolation_extrapolation' "
                + "or 'log_interpolation_extrapolation'."
            )
        return wind_speed_hub

    def calculate_power_output(self, wind_speed_hub, density_hub):
        r"""
        Calculates the power output of the wind power plant.

        The method specified by the parameter `power_output_model` is used.

        Parameters
        ----------
        wind_speed_hub : :pandas:`pandas.Series<series>` or numpy.array
            Wind speed at hub height in m/s.
        density_hub : :pandas:`pandas.Series<series>` or numpy.array
            Density of air at hub height in kg/m³.

        Returns

# Path: windpowerlib/wind_speed.py
# def logarithmic_profile(
#     wind_speed,
#     wind_speed_height,
#     hub_height,
#     roughness_length,
#     obstacle_height=0.0,
# ):
# def hellman(
#     wind_speed,
#     wind_speed_height,
#     hub_height,
#     roughness_length=None,
#     hellman_exponent=None,
# ):
# 
# Path: windpowerlib/density.py
# def barometric(pressure, pressure_height, hub_height, temperature_hub_height):
# def ideal_gas(pressure, pressure_height, hub_height, temperature_hub_height):
# 
# Path: windpowerlib/temperature.py
# def linear_gradient(temperature, temperature_height, hub_height):
# 
# Path: windpowerlib/power_output.py
# def power_coefficient_curve(
#     wind_speed,
#     power_coefficient_curve_wind_speeds,
#     power_coefficient_curve_values,
#     rotor_diameter,
#     density,
# ):
# def power_curve(
#     wind_speed,
#     power_curve_wind_speeds,
#     power_curve_values,
#     density=None,
#     density_correction=False,
# ):
# def power_curve_density_correction(
#     wind_speed, power_curve_wind_speeds, power_curve_values, density
# ):
# def _get_power_output(
#     wind_speed, power_curve_wind_speeds, density, power_curve_values
# ):
#     def interp_func(w_speed, p_curves):
# 
# Path: windpowerlib/tools.py
# class WindpowerlibUserWarning(UserWarning):
# def linear_interpolation_extrapolation(df, target_height):
# def logarithmic_interpolation_extrapolation(df, target_height):
# def gauss_distribution(function_variable, standard_deviation, mean=0):
# def estimate_turbulence_intensity(height, roughness_length):
# 
# Path: windpowerlib/data.py
# def get_turbine_types(turbine_library="local", print_out=True, filter_=True):
# def fetch_turbine_data_from_oedb(
#     schema="supply", table="wind_turbine_library"
# ):
# def load_turbine_data_from_oedb(schema="supply", table="wind_turbine_library"):
# def store_turbine_data_from_oedb(
#     schema="supply", table="wind_turbine_library"
# ):
# def check_turbine_data(filename):
# def check_data_integrity(filename, min_pc_length=5):
# def restore_default_turbine_data():
# def check_weather_data(weather_data):


# Path: windpowerlib/modelchain.py
import logging
from windpowerlib import (
    wind_speed,
    density,
    temperature,
    power_output,
    tools,
    data,
)

            logging.debug(
                "Calculating wind speed using logarithmic inter- or "
                "extrapolation."
            )
            wind_speed_hub = tools.logarithmic_interpolation_extrapolation(
                weather_df["wind_speed"], self.power_plant.hub_height
            )
        else:
            raise ValueError(
                "'{0}' is an invalid value. ".format(self.wind_speed_model)
                + "`wind_speed_model` must be "
                "'logarithmic', 'hellman', 'interpolation_extrapolation' "
                + "or 'log_interpolation_extrapolation'."
            )
        return wind_speed_hub

    def calculate_power_output(self, wind_speed_hub, density_hub):
        r"""
        Calculates the power output of the wind power plant.

        The method specified by the parameter `power_output_model` is used.

        Parameters
        ----------
        wind_speed_hub : :pandas:`pandas.Series<series>` or numpy.array
            Wind speed at hub height in m/s.
        density_hub : :pandas:`pandas.Series<series>` or numpy.array
            Density of air at hub height in kg/m³.

        Returns

        -------