Loading pythermogis/transmissivity.py +5 −5 Original line number Diff line number Diff line Loading @@ -9,7 +9,7 @@ def generate_thickness_permeability_transmissivity_for_pvalues( ln_permeability_mean: float, ln_permeability_sd: float, p_values: xr.DataArray, nsamples: int = 10000, n_samples: int = 10000, ) -> float: """ Given thickness provided as a normal distribution and ln(permeability) Loading Loading @@ -67,11 +67,11 @@ def generate_thickness_permeability_transmissivity_for_pvalues( if thickness_sd == 0: thickness_pvalues = np.full(len(p_value_fractions), thickness_mean) thickness_samples = np.full(nsamples, thickness_mean) thickness_samples = np.full(n_samples, thickness_mean) else: thickness_dist = stats.norm(loc=thickness_mean, scale=thickness_sd) thickness_pvalues = thickness_dist.ppf(p_value_fractions) thickness_samples = thickness_dist.rvs(nsamples) thickness_samples = thickness_dist.rvs(n_samples) thickness_samples = np.clip(thickness_samples, a_min=0.01, a_max=None) ln_permeability_dist = stats.norm( Loading @@ -81,10 +81,10 @@ def generate_thickness_permeability_transmissivity_for_pvalues( # Sampling method for transmissivity transmissivity_samples = np.sort( np.exp(ln_permeability_dist.rvs(nsamples) + np.log(thickness_samples)) np.exp(ln_permeability_dist.rvs(n_samples) + np.log(thickness_samples)) ) sample_indexes = np.array(p_value_fractions * (nsamples - 1)) sample_indexes = np.array(p_value_fractions * (n_samples - 1)) transmissivity_pvalues_sampled = transmissivity_samples[sample_indexes.astype(int)] return thickness_pvalues, permeability_pvalues, transmissivity_pvalues_sampled tests/test_transmissivity.py +7 −7 Original line number Diff line number Diff line Loading @@ -32,7 +32,7 @@ class PyThermoGIS(TestCase): thickness_sd = 5 ln_perm_mean = 5 ln_perm_sd = 0.5 nSamples = 100000 n_samples = 100000 p_values_list = [1, 10, 20, 30, 40, 50, 60, 70, 80, 90] # Loading @@ -57,7 +57,7 @@ class PyThermoGIS(TestCase): ln_perm_mean, ln_perm_sd, p_values, kwargs={"nSamples": nSamples}, kwargs={"n_samples": n_samples}, input_core_dims=[[], [], [], [], []], output_core_dims=[[], [], []], vectorize=True, Loading @@ -72,7 +72,7 @@ class PyThermoGIS(TestCase): self.generate_transmissivity_java( ln_perm_mean, ln_perm_sd, nSamples, n_samples, p_values_list, thickness_mean, thickness_sd, Loading Loading @@ -127,7 +127,7 @@ class PyThermoGIS(TestCase): self, ln_perm_mean, ln_perm_sd, nSamples, n_samples, p_values_list, thickness_mean, thickness_sd, Loading @@ -149,13 +149,13 @@ class PyThermoGIS(TestCase): for pValue in p_values_list ] permeabilitySamples = permeabilityDistribution.generateSamples(nSamples) thicknessSamples = thicknessDistribution.generateSamples(nSamples) permeabilitySamples = permeabilityDistribution.generateSamples(n_samples) thicknessSamples = thicknessDistribution.generateSamples(n_samples) thicknessSamples = np.clip(thicknessSamples, a_min=0.01, a_max=None) trans_samples = np.sort(np.exp(permeabilitySamples + np.log(thicknessSamples))) trans_p_value_java = [ trans_samples[int((100 - p_value) / 100 * nSamples)] trans_samples[int((100 - p_value) / 100 * n_samples)] for p_value in p_values_list ] Loading Loading
pythermogis/transmissivity.py +5 −5 Original line number Diff line number Diff line Loading @@ -9,7 +9,7 @@ def generate_thickness_permeability_transmissivity_for_pvalues( ln_permeability_mean: float, ln_permeability_sd: float, p_values: xr.DataArray, nsamples: int = 10000, n_samples: int = 10000, ) -> float: """ Given thickness provided as a normal distribution and ln(permeability) Loading Loading @@ -67,11 +67,11 @@ def generate_thickness_permeability_transmissivity_for_pvalues( if thickness_sd == 0: thickness_pvalues = np.full(len(p_value_fractions), thickness_mean) thickness_samples = np.full(nsamples, thickness_mean) thickness_samples = np.full(n_samples, thickness_mean) else: thickness_dist = stats.norm(loc=thickness_mean, scale=thickness_sd) thickness_pvalues = thickness_dist.ppf(p_value_fractions) thickness_samples = thickness_dist.rvs(nsamples) thickness_samples = thickness_dist.rvs(n_samples) thickness_samples = np.clip(thickness_samples, a_min=0.01, a_max=None) ln_permeability_dist = stats.norm( Loading @@ -81,10 +81,10 @@ def generate_thickness_permeability_transmissivity_for_pvalues( # Sampling method for transmissivity transmissivity_samples = np.sort( np.exp(ln_permeability_dist.rvs(nsamples) + np.log(thickness_samples)) np.exp(ln_permeability_dist.rvs(n_samples) + np.log(thickness_samples)) ) sample_indexes = np.array(p_value_fractions * (nsamples - 1)) sample_indexes = np.array(p_value_fractions * (n_samples - 1)) transmissivity_pvalues_sampled = transmissivity_samples[sample_indexes.astype(int)] return thickness_pvalues, permeability_pvalues, transmissivity_pvalues_sampled
tests/test_transmissivity.py +7 −7 Original line number Diff line number Diff line Loading @@ -32,7 +32,7 @@ class PyThermoGIS(TestCase): thickness_sd = 5 ln_perm_mean = 5 ln_perm_sd = 0.5 nSamples = 100000 n_samples = 100000 p_values_list = [1, 10, 20, 30, 40, 50, 60, 70, 80, 90] # Loading @@ -57,7 +57,7 @@ class PyThermoGIS(TestCase): ln_perm_mean, ln_perm_sd, p_values, kwargs={"nSamples": nSamples}, kwargs={"n_samples": n_samples}, input_core_dims=[[], [], [], [], []], output_core_dims=[[], [], []], vectorize=True, Loading @@ -72,7 +72,7 @@ class PyThermoGIS(TestCase): self.generate_transmissivity_java( ln_perm_mean, ln_perm_sd, nSamples, n_samples, p_values_list, thickness_mean, thickness_sd, Loading Loading @@ -127,7 +127,7 @@ class PyThermoGIS(TestCase): self, ln_perm_mean, ln_perm_sd, nSamples, n_samples, p_values_list, thickness_mean, thickness_sd, Loading @@ -149,13 +149,13 @@ class PyThermoGIS(TestCase): for pValue in p_values_list ] permeabilitySamples = permeabilityDistribution.generateSamples(nSamples) thicknessSamples = thicknessDistribution.generateSamples(nSamples) permeabilitySamples = permeabilityDistribution.generateSamples(n_samples) thicknessSamples = thicknessDistribution.generateSamples(n_samples) thicknessSamples = np.clip(thicknessSamples, a_min=0.01, a_max=None) trans_samples = np.sort(np.exp(permeabilitySamples + np.log(thicknessSamples))) trans_p_value_java = [ trans_samples[int((100 - p_value) / 100 * nSamples)] trans_samples[int((100 - p_value) / 100 * n_samples)] for p_value in p_values_list ] Loading