TNO Intern

Commit 0768f353 authored by Hen Brett's avatar Hen Brett 🐔
Browse files

Allowing for multidimensional doublet_calculations

parent a2fcab6f
Loading
Loading
Loading
Loading
+0 −1
Original line number Diff line number Diff line
@@ -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
+41 −1
Original line number Diff line number Diff line
@@ -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
@@ -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")