TNO Intern

Commit 8e3981bf authored by Hen Brett's avatar Hen Brett 🐔
Browse files

Creating a new stochastic example

parent 9c0584c1
Loading
Loading
Loading
Loading
+26 −24
Original line number Diff line number Diff line
@@ -273,7 +273,7 @@ def test_example8():
    from matplotlib import pyplot as plt

    # generate simulation samples across desired reservoir properties
    Nsamples = 1000
    Nsamples = 100
    thickness_samples = np.random.uniform(low=150, high=300, size=Nsamples)
    porosity_samples = np.random.uniform(low=0.1, high=0.8, size=Nsamples)
    ntg_samples = np.random.uniform(low=0.1, high=0.5, size=Nsamples)
@@ -300,28 +300,30 @@ def test_example8():
    results.plot.scatter(x="permeability", y="npv", ax=axes[1,1])
    plt.show()

    # Calculate Stochastics Across Samples
    def plot_survival_function(samples, xlabel='Parameter value (x)', ax=None):
        sorted_samples = np.sort(samples)
        cdf = np.arange(1, len(samples) + 1) / len(samples)

        # Compute P(θ > x)
        survival = 1 - cdf

        # Plot survival function (expectation curve as P(>x))
        if ax is None:
            fig, ax = plt.subplots(figsize=(8, 5))
        ax.plot(sorted_samples, survival, label=r'$P(\theta > x)$', color='blue')
        ax.set_xlabel(xlabel)
        ax.set_ylabel('Cumulative probability $P(\\theta > x)$')
        ax.grid(True)
        ax.legend()

    fig, axes = plt.subplots(2,2, figsize=(10,10))
    plt.suptitle("Stochastic Measures")
    plot_survival_function(results.permeability, xlabel="permeability", ax=axes[0,0])
    plot_survival_function(results.power, xlabel="power", ax=axes[0, 1])
    plot_survival_function(results.utc, xlabel="utc", ax=axes[1, 0])
    plot_survival_function(results.npv, xlabel="net-present-value", ax=axes[1, 1])
    plt.show()

    # # Calculate Stochastics Across Samples
    # def plot_survival_function(samples, xlabel='Parameter value (x)', ax=None):
    #     sorted_samples = np.sort(samples)
    #     cdf = np.arange(1, len(samples) + 1) / len(samples)
    #
    #     # Compute P(θ > x)
    #     survival = 1 - cdf
    #
    #     # Plot survival function (expectation curve as P(>x))
    #     if ax is None:
    #         fig, ax = plt.subplots(figsize=(8, 5))
    #     ax.plot(sorted_samples, survival, label=r'$P(\theta > x)$', color='blue')
    #     ax.set_xlabel(xlabel)
    #     ax.set_ylabel('Cumulative probability $P(\\theta > x)$')
    #     ax.grid(True)
    #     ax.legend()
    #
    # fig, axes = plt.subplots(2,2, figsize=(10,10))
    # plt.suptitle("Stochastic Measures")
    # plot_survival_function(results.permeability, xlabel="permeability", ax=axes[0,0])
    # plot_survival_function(results.power, xlabel="power", ax=axes[0, 1])
    # plot_survival_function(results.utc, xlabel="utc", ax=axes[1, 0])
    # plot_survival_function(results.npv, xlabel="net-present-value", ax=axes[1, 1])
    # plt.show()