Loading src/thermogis_classes/doublet.py +0 −1 Original line number Diff line number Diff line Loading @@ -84,7 +84,6 @@ def calculate_performance_across_dimensions(input_data: xr.Dataset, # Setup output_data output_data = input_data.thickness_mean.copy().to_dataset(name="thickness") output_data.thickness.data[:] = np.nan output_data = output_data.expand_dims({"p_value": p_values}) # Calculate Thickness, Permeability and Transmissivity for each P-value Loading tests/tests/test_doublet.py +41 −1 Original line number Diff line number Diff line Loading @@ -6,6 +6,7 @@ from pathlib import Path from time import sleep from unittest import TestCase from matplotlib import pyplot as plt from pygridsio.grid_plotting import plot_grid from tqdm import tqdm import xarray as xr Loading Loading @@ -209,4 +210,43 @@ class PyThermoGIS(TestCase): input_grids["ln_permeability_mean"] = np.log(read_grid(self.model_path / "InputData" / "simplified__k.zmap")) input_grids["ln_permeability_sd"] = read_grid(self.model_path / "InputData" / "simplified__k_lnsd.zmap") output_grids = calculate_performance_across_dimensions(input_grids, doublet, p_values=[10, 50, 90]) # Run calculation across all dimensions of input_grids, and all provided P_values output_grids = calculate_performance_across_dimensions(input_grids, doublet, p_values=[10, 20, 30, 40, 50, 60, 70, 80, 90]) # Plot some output output_grids_sel = output_grids.isel(x=1, y=1) output_grids_sel["utc"].plot(x="p_value") plt.savefig(self.test_files_out_path / "plotting") def test_doublet_single_values(self): # Arrange # Import Java Classes Logger = JClass("logging.Logger") Mockito = JClass("org.mockito.Mockito") RNG = JClass("tno.geoenergy.stochastic.RandomNumberGenerator") ThermoGISDoublet = JClass("thermogis.calc.doublet.ThermoGisDoublet") UTCPropertiesBuilder = JClass("thermogis.properties.builders.UTCPropertiesBuilder") propsBuilder = UTCPropertiesBuilder() utc_properties = propsBuilder.build() # Create an instance of a ThermoGISDoublet doublet = ThermoGISDoublet(Mockito.mock(Logger), RNG(123), utc_properties) # Act # Read Input grids input_data = xr.Dataset({ "thickness_mean": ((), 300), "thickness_sd": ((), 50), "ntg": ((), 0.5), "porosity": ((), 0.5), "depth": ((), 5000), "hc_accum": ((), np.nan), "ln_permeability_mean": ((), 5), "ln_permeability_sd": ((), 0.5), }) # Run calculation across all dimensions of input_grids, and all provided P_values output_data = calculate_performance_across_dimensions(input_data, doublet, p_values=[10, 20, 30, 40, 50, 60, 70, 80, 90]) # Plot some output output_data["utc"].plot(x="p_value") plt.savefig(self.test_files_out_path / "plotting") Loading
src/thermogis_classes/doublet.py +0 −1 Original line number Diff line number Diff line Loading @@ -84,7 +84,6 @@ def calculate_performance_across_dimensions(input_data: xr.Dataset, # Setup output_data output_data = input_data.thickness_mean.copy().to_dataset(name="thickness") output_data.thickness.data[:] = np.nan output_data = output_data.expand_dims({"p_value": p_values}) # Calculate Thickness, Permeability and Transmissivity for each P-value Loading
tests/tests/test_doublet.py +41 −1 Original line number Diff line number Diff line Loading @@ -6,6 +6,7 @@ from pathlib import Path from time import sleep from unittest import TestCase from matplotlib import pyplot as plt from pygridsio.grid_plotting import plot_grid from tqdm import tqdm import xarray as xr Loading Loading @@ -209,4 +210,43 @@ class PyThermoGIS(TestCase): input_grids["ln_permeability_mean"] = np.log(read_grid(self.model_path / "InputData" / "simplified__k.zmap")) input_grids["ln_permeability_sd"] = read_grid(self.model_path / "InputData" / "simplified__k_lnsd.zmap") output_grids = calculate_performance_across_dimensions(input_grids, doublet, p_values=[10, 50, 90]) # Run calculation across all dimensions of input_grids, and all provided P_values output_grids = calculate_performance_across_dimensions(input_grids, doublet, p_values=[10, 20, 30, 40, 50, 60, 70, 80, 90]) # Plot some output output_grids_sel = output_grids.isel(x=1, y=1) output_grids_sel["utc"].plot(x="p_value") plt.savefig(self.test_files_out_path / "plotting") def test_doublet_single_values(self): # Arrange # Import Java Classes Logger = JClass("logging.Logger") Mockito = JClass("org.mockito.Mockito") RNG = JClass("tno.geoenergy.stochastic.RandomNumberGenerator") ThermoGISDoublet = JClass("thermogis.calc.doublet.ThermoGisDoublet") UTCPropertiesBuilder = JClass("thermogis.properties.builders.UTCPropertiesBuilder") propsBuilder = UTCPropertiesBuilder() utc_properties = propsBuilder.build() # Create an instance of a ThermoGISDoublet doublet = ThermoGISDoublet(Mockito.mock(Logger), RNG(123), utc_properties) # Act # Read Input grids input_data = xr.Dataset({ "thickness_mean": ((), 300), "thickness_sd": ((), 50), "ntg": ((), 0.5), "porosity": ((), 0.5), "depth": ((), 5000), "hc_accum": ((), np.nan), "ln_permeability_mean": ((), 5), "ln_permeability_sd": ((), 0.5), }) # Run calculation across all dimensions of input_grids, and all provided P_values output_data = calculate_performance_across_dimensions(input_data, doublet, p_values=[10, 20, 30, 40, 50, 60, 70, 80, 90]) # Plot some output output_data["utc"].plot(x="p_value") plt.savefig(self.test_files_out_path / "plotting")