# 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,
)
            wind_speed_hub = wind_speed.logarithmic_profile(
                weather_df["wind_speed"][closest_height],
                closest_height,
                self.power_plant.hub_height,
                weather_df["roughness_length"].iloc[:, 0],
                self.obstacle_height,
            )
        elif self.wind_speed_model == "hellman":
            logging.debug("Calculating wind speed using hellman equation.")
            closest_height = weather_df["wind_speed"].columns[
                min(
                    range(len(weather_df["wind_speed"].columns)),
                    key=lambda i: abs(
                        weather_df["wind_speed"].columns[i]
                        - self.power_plant.hub_height
                    ),
                )
            ]
            wind_speed_hub = wind_speed.hellman(
                weather_df["wind_speed"][closest_height],
                closest_height,
                self.power_plant.hub_height,
                weather_df["roughness_length"].iloc[:, 0],
                self.hellman_exp,
            )
        elif self.wind_speed_model == "interpolation_extrapolation":
            logging.debug(
                "Calculating wind speed using linear inter- or "
                "extrapolation."
            )

# 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,
)

            wind_speed_hub = wind_speed.logarithmic_profile(
                weather_df["wind_speed"][closest_height],
                closest_height,
                self.power_plant.hub_height,
                weather_df["roughness_length"].iloc[:, 0],
                self.obstacle_height,
            )
        elif self.wind_speed_model == "hellman":
            logging.debug("Calculating wind speed using hellman equation.")
            closest_height = weather_df["wind_speed"].columns[
                min(
                    range(len(weather_df["wind_speed"].columns)),
                    key=lambda i: abs(
                        weather_df["wind_speed"].columns[i]
                        - self.power_plant.hub_height
                    ),
                )
            ]
            wind_speed_hub = wind_speed.hellman(
                weather_df["wind_speed"][closest_height],
                closest_height,
                self.power_plant.hub_height,
                weather_df["roughness_length"].iloc[:, 0],
                self.hellman_exp,
            )
        elif self.wind_speed_model == "interpolation_extrapolation":
            logging.debug(
                "Calculating wind speed using linear inter- or "
                "extrapolation."
            )

            wind_speed_hub = tools.linear_interpolation_extrapolation(