コード例 #1
0
    def __call__(self, samples=0, use_latin_hypercube=False):
        """
        Call this object
        :param samples: number of samples
        :param use_latin_hypercube: use Latin Hypercube to sample
        :return: Time series object
        """
        if use_latin_hypercube:

            lhs_points = lhs(self.n, samples=samples, criterion='center')

            if samples > 0:
                S = np.zeros((samples, self.n), dtype=complex)
                I = np.zeros((samples, self.n), dtype=complex)
                Y = np.zeros((samples, self.n), dtype=complex)

                for i in range(self.n):
                    if self.Scdf[i] is not None:
                        S[:, i] = self.Scdf[i].get_at(lhs_points[:, i])

        else:
            if samples > 0:
                S = np.zeros((samples, self.n), dtype=complex)
                I = np.zeros((samples, self.n), dtype=complex)
                Y = np.zeros((samples, self.n), dtype=complex)

                for i in range(self.n):
                    if self.Scdf[i] is not None:
                        S[:, i] = self.Scdf[i].get_sample(samples)
            else:
                S = np.zeros(self.n, dtype=complex)
                I = np.zeros(self.n, dtype=complex)
                Y = np.zeros(self.n, dtype=complex)

                for i in range(self.n):
                    if self.Scdf[i] is not None:
                        S[i] = complex(self.Scdf[i].get_sample()[0])

        time_series_input = TimeSeriesInput()
        time_series_input.S = S
        time_series_input.I = I
        time_series_input.Y = Y
        time_series_input.valid = True

        return time_series_input
コード例 #2
0
    def sample_steps(self):

        n = len(self.grid.time_profile)
        points = (np.sort(lhs(self.number_of_steps, 1)[0]) * n).astype(int)

        return points