Applies weather to an opened Miz file (the mission will be mutated)

        Args:
            miz: source miz

        Returns: True

def apply_to_miz(self, miz):
        """
        Applies weather to an opened Miz file (the mission will be mutated)

        Args:
            miz: source miz

        Returns: True

        """

        report = ['Building mission with weather:']

        miz.mission.weather.wind_at_ground_level_dir = self.wind_at_ground_level_dir
        miz.mission.weather.wind_at_ground_level_speed = self.wind_at_ground_level_speed
        miz.mission.weather.wind_at2000_dir = self._randomize_direction(self.wind_dir, 40)
        miz.mission.weather.wind_at2000_speed = self._randomize_speed(5 + self.wind_at_ground_level_speed * 2)
        miz.mission.weather.wind_at8000_dir = self._randomize_direction(self.wind_dir, 80)
        miz.mission.weather.wind_at8000_speed = self._randomize_speed(10 + self.wind_at_ground_level_speed * 3)
        miz.mission.weather.turbulence_at_ground_level = self.turbulence

        _ground = f'{miz.mission.weather.wind_at_ground_level_dir}/{miz.mission.weather.wind_at_ground_level_speed}'
        _at2000 = f'{miz.mission.weather.wind_at2000_dir}/{miz.mission.weather.wind_at2000_speed}'
        _at8000 = f'{miz.mission.weather.wind_at8000_dir}/{miz.mission.weather.wind_at8000_speed}'
        _turbulence = f'{miz.mission.weather.turbulence_at_ground_level}'

        wind = f'Wind:' \
               f'\n\tGround: {_ground}' \
               f'\n\t2000m: {_at2000}' \
               f'\n\t8000m: {_at8000}' \
               f'\n\tTurbulence: {_turbulence}'

        report.append(wind)

        miz.mission.weather.atmosphere_type = 0
        miz.mission.weather.qnh = self.qnh

        report.append(f'Atmosphere type: {miz.mission.weather.atmosphere_type}')
        report.append(f'QNH: {miz.mission.weather.qnh}')

        miz.mission.weather.visibility = self.visibility
        if self.fog_vis:
            miz.mission.weather.fog_thickness = 1000
            miz.mission.weather.fog_visibility = self.fog_vis
            miz.mission.weather.fog_enabled = True
        else:
            miz.mission.weather.fog_enabled = False
            miz.mission.weather.fog_visibility = 0
            miz.mission.weather.fog_thickness = 0

        visibility = f'Visibility: {miz.mission.weather.visibility}' \
                     f'\n\tFog: {"yes" if miz.mission.weather.fog_enabled else "no"}' \
                     f'\n\tFog thickness: {miz.mission.weather.fog_thickness}' \
                     f'\n\tFog visibility: {miz.mission.weather.fog_visibility}'

        report.append(visibility)

        miz.mission.weather.temperature = self.temperature

        report.append(f'Temperature: {self.temperature}°C')

        miz.mission.weather.cloud_density = max(self.force_cloud_density, self.cloud_density)
        miz.mission.weather.cloud_thickness = self.cloud_thickness
        miz.mission.weather.cloud_base = self.cloud_base
        miz.mission.weather.precipitations = self.precipitations

        clouds = f'Clouds:' \
                 f'\n\tClouds density: {miz.mission.weather.cloud_density}' \
                 f'\n\tClouds thickness: {miz.mission.weather.cloud_thickness}' \
                 f'\n\tClouds base: {miz.mission.weather.cloud_base}' \
                 f'\n\tPrecipitations: {miz.mission.weather.precipitations}'

        report.append(clouds)

        LOGGER.debug('applying weather: %s', report)

        return True