windwhisper.noisepropagation

Attributes

NOISE_MAP_RESOLUTION

NOISE_MAP_MARGIN

Classes

NoisePropagation

Model sound propagation and attenuation for wind turbine layouts.

Functions

define_bounding_box(wind_turbines)

Derive latitude and longitude axes for the simulation grid.

Module Contents

windwhisper.noisepropagation.NOISE_MAP_RESOLUTION
windwhisper.noisepropagation.NOISE_MAP_MARGIN
windwhisper.noisepropagation.define_bounding_box(wind_turbines)

Derive latitude and longitude axes for the simulation grid.

Parameters:

wind_turbines (dict) – Turbine specifications including position tuples.

Returns:

Tuple (latitudes, longitudes) defining the rectangular grid.

Return type:

tuple[numpy.ndarray, numpy.ndarray]

class windwhisper.noisepropagation.NoisePropagation(wind_turbines, humidity=70, temperature=20, elevation_data=None)

Model sound propagation and attenuation for wind turbine layouts.

Parameters:
  • wind_turbines (dict)

  • humidity (float)

  • temperature (float)

  • elevation_data (xarray.Dataset)

incr_noise_att = None
noise_attenuation = None
elevation_grid = None
haversine_distances = None
listeners = 70
wind_turbines
elevation_data = None
noise_level_at_wind_speeds
hourly_noise_levels
l_den
l_night
incr_noise_att_night
calculate_hourly_noise_levels()

Interpolate hourly emission levels for each turbine.

compute_lden()

Calculate the day-evening-night noise level from hourly levels.

Returns:

Lden noise level raster.

Return type:

xarray.DataArray

compute_lnight()

Calculate the night noise level from hourly levels.

Returns:

Lnight noise level raster.

Return type:

xarray.DataArray

calculate_incremental_noise_attenuation(noise)

Apply successive attenuation terms to the emission raster.

Parameters:

noise (xarray.DataArray) – Base noise level raster to which attenuations are applied.

Returns:

Dataset containing intermediate attenuation stages.

Return type:

xarray.Dataset

get_noise_emissions_vs_time_or_speed(noise, coord_name, coord_value)

Aggregate turbine emissions along the requested dimension.

Parameters:
  • noise (numpy.ndarray) – Noise levels per turbine for each coordinate value.

  • coord_name (str) – Name of the output coordinate ("wind_speed" or "hour").

  • coord_value (numpy.ndarray) – Coordinate values associated with the emissions.

Returns:

Noise levels summed over all turbines for each grid cell.

Return type:

xarray.DataArray

noise_map_at_wind_speeds(noise)

Backward compatible alias for get_noise_emissions_vs_time_or_speed().

Parameters:

noise (numpy.ndarray) – Noise levels per turbine for each wind speed.

Returns:

Noise map aggregated across turbines for each wind speed.

Return type:

xarray.DataArray

abstract calculate_sound_level_at_distance(*args, **kwargs)

Deprecated compatibility wrapper for legacy APIs.

Raises:

NotImplementedError – Always raised to direct users to get_noise_emissions_vs_time_or_speed().

superimpose_wind_turbines_noise()

Deprecated alias returning the aggregated wind speed noise map.

calculate_noise_attenuation_terms()

Compute distance, atmospheric, ground and obstacle attenuation.

plot_noise_map(dimension='wind_speed')

Display interactive contour plots of turbine noise levels.

Parameters:

dimension (str) – Dimension to explore ("wind_speed" or "hour").