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

    """

    def __init__(
        self,
        power_plant,
        wind_speed_model="logarithmic",
        temperature_model="linear_gradient",
        density_model="barometric",
        power_output_model="power_curve",
        density_correction=False,
        obstacle_height=0,
        hellman_exp=None,
        **kwargs,
    ):

        self.power_plant = power_plant
        self.obstacle_height = obstacle_height
        self.wind_speed_model = wind_speed_model
        self.temperature_model = temperature_model
        self.density_model = density_model
        self.power_output_model = power_output_model
        self.density_correction = density_correction
        self.hellman_exp = hellman_exp
        self.power_output = None

    def temperature_hub(self, weather_df):
        r"""
        Calculates the temperature of air at hub height.


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


    """

    def __init__(
        self,
        power_plant,
        wind_speed_model="logarithmic",
        temperature_model="linear_gradient",
        density_model="barometric",
        power_output_model="power_curve",
        density_correction=False,
        obstacle_height=0,
        hellman_exp=None,
        **kwargs,
    ):

        self.power_plant = power_plant
        self.obstacle_height = obstacle_height
        self.wind_speed_model = wind_speed_model
        self.temperature_model = temperature_model
        self.density_model = density_model
        self.power_output_model = power_output_model
        self.density_correction = density_correction
        self.hellman_exp = hellman_exp
        self.power_output = None

    def temperature_hub(self, weather_df):
        r"""
        Calculates the temperature of air at hub height.


        The temperature is calculated using the method specified by