    def __determine_skill_for_current_timestep(self, t):
        """
        Compute the skill of NWP model forecasts at t=0 using spatial correlation,
        ensuring skill decreases with increasing scale level. For t>0, update
        extrapolation skill based on lead time.
        """
        if t == 0:
            # Calculate the initial skill of the (NWP) model forecasts at t=0.
            self.__params.rho_nwp_models = []
            for model_index in range(
                self.__state.precip_models_cascades_timestep.shape[0]
            ):
                rho_value = blending.skill_scores.spatial_correlation(
                    obs=self.__state.precip_cascades[0, :, -1, :, :].copy(),
                    mod=self.__state.precip_models_cascades_timestep[
                        model_index, :, :, :
                    ].copy(),
                    domain_mask=self.__params.domain_mask,
                )
                self.__params.rho_nwp_models.append(rho_value)
            self.__params.rho_nwp_models = np.stack(self.__params.rho_nwp_models)

            # Ensure that the model skill decreases with increasing scale level.
            for model_index in range(
                self.__state.precip_models_cascades_timestep.shape[0]
            ):
                for i in range(
                    1, self.__state.precip_models_cascades_timestep.shape[1]
                ):
                    if (
                        self.__params.rho_nwp_models[model_index, i]
                        > self.__params.rho_nwp_models[model_index, i - 1]
                    ):
                        # Set it equal to the previous scale level
                        self.__params.rho_nwp_models[model_index, i] = (
                            self.__params.rho_nwp_models[model_index, i - 1]
                        )

            # Save this in the climatological skill file
            blending.clim.save_skill(
                current_skill=self.__params.rho_nwp_models,
                validtime=self.__issuetime,
                outdir_path=self.__config.outdir_path_skill,
                **self.__params.climatology_kwargs,
            )
        if t > 0:
            # Determine the skill of the components for lead time (t0 + t)
            # First for the extrapolation component. Only calculate it when t > 0.
            (
                self.__state.rho_extrap_cascade,
                self.__state.rho_extrap_cascade_prev,
            ) = blending.skill_scores.lt_dependent_cor_extrapolation(
                PHI=self.__params.PHI,
                correlations=self.__state.rho_extrap_cascade,
                correlations_prev=self.__state.rho_extrap_cascade_prev,
            )
Compute the skill of NWP model forecasts at t=0 using spatial correlation,
ensuring skill decreases with increasing scale level. For t>0, update
extrapolation skill based on lead time.
pysteps/blending/steps.py