windwhisper.ground_attenuation ============================== .. py:module:: windwhisper.ground_attenuation .. autoapi-nested-parse:: Estimate ground and obstacle attenuation following ISO 9613-2. Attributes ---------- .. autoapisummary:: windwhisper.ground_attenuation.NOISE_MAP_RESOLUTION Functions --------- .. autoapisummary:: windwhisper.ground_attenuation.compute_turbine_attenuation windwhisper.ground_attenuation.calculate_ground_attenuation Module Contents --------------- .. py:data:: NOISE_MAP_RESOLUTION .. py:function:: compute_turbine_attenuation(args) Compute ground and obstacle attenuation for a single turbine. :param args: Tuple containing the turbine identifier, specification, latitude/longitude grids, elevation data, interpolator and distances. :type args: tuple :returns: Tuple ``(ground_attenuation, obstacles_attenuation)`` storing the attenuation per grid cell. :rtype: tuple[numpy.ndarray, numpy.ndarray] .. py:function:: calculate_ground_attenuation(haversine_distances, longitudes, latitudes, wind_turbines, elevation_data) Calculate ground and obstacle attenuation layers. :param haversine_distances: Surface distances between each turbine and grid cell. :type haversine_distances: xarray.DataArray :param longitudes: Longitudes defining the interpolation grid. :type longitudes: numpy.ndarray :param latitudes: Latitudes defining the interpolation grid. :type latitudes: numpy.ndarray :param wind_turbines: Turbine specifications keyed by turbine identifier. :type wind_turbines: dict :param elevation_data: Optional elevation dataset used instead of remote downloads. :type elevation_data: xarray.DataArray | None :returns: Tuple containing the interpolated elevation grid, ground attenuation layer and obstacle attenuation layer. :rtype: tuple[xarray.DataArray | None, xarray.DataArray | None, xarray.DataArray | None]