TNO Intern

Commit 6d234637 authored by Florian Knappers's avatar Florian Knappers
Browse files

refactors

parent 0e96b36c
Loading
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -54,7 +54,7 @@ def generate_thickness_permeability_transmissivity_for_pvalues(thickness_mean: f

    return thickness_pvalues, permeability_pvalues, transmissivity_pvalues_sampled

def _tpkt_kernel(
def calculate_transmissivity(
    thickness_mean,
    thickness_sd,
    ln_perm_mean,
+26 −25
Original line number Diff line number Diff line
@@ -4,7 +4,7 @@ from pathlib import Path
import numpy as np
import xarray as xr

from pythermogis.transmissivity.calculate_thick_perm_trans import _tpkt_kernel
from pythermogis.transmissivity.calculate_thick_perm_trans import calculate_transmissivity
from pythermogis.workflow.utc.configuration import UTCConfiguration
from pythermogis.workflow.utc.doublet import DoubletInput, calculate_doublet_performance

@@ -144,13 +144,17 @@ def compute_results_for_aquifer(
            tuple(result) if result is not None else tuple(np.nan for _ in output_names)
        )

    for p_value in config.p_values:
        # calc transmissivity(_with_ntg)
        hydro = compute_hydro_properties_mc(aquifer_ds, p_value)
        aquifer_ds["transmissivity"] = hydro["transmissivity"]
        aquifer_ds["transmissivity_with_ntg"] = hydro["transmissivity_with_ntg"]
        aquifer_ds["thickness"] = hydro["thickness"]
        aquifer_ds["permeability"] = hydro["permeability"]
    # apply hc mask
    hc_mask = aquifer_ds["hc_accum"] != 0
    vars_to_mask = [
        "thickness",
        "ntg",
        "depth",
        "porosity",
    ]

    for v in vars_to_mask:
        aquifer_ds[v] = aquifer_ds[v].where(hc_mask)

    # calc temperature grid
    mid_depth = -(aquifer_ds["depth"] + 0.5 * aquifer_ds["thickness"])
@@ -161,19 +165,13 @@ def compute_results_for_aquifer(

    aquifer_ds["temperature"] = temperature

        # use hc_accum mask..
        hc_mask = aquifer_ds["hc_accum"] != 0
        vars_to_mask = [
            "thickness",
            "ntg",
            "depth",
            "porosity",
            "transmissivity",
            "transmissivity_with_ntg",
            "temperature",
        ]
        for v in vars_to_mask:
            aquifer_ds[v] = aquifer_ds[v].where(hc_mask)
    for p_value in config.p_values:
        # calc transmissivity(_with_ntg)
        hydro = compute_hydro_properties_mc(aquifer_ds, p_value)
        aquifer_ds["transmissivity"] = hydro["transmissivity"]
        aquifer_ds["transmissivity_with_ntg"] = hydro["transmissivity_with_ntg"]
        aquifer_ds["thickness"] = hydro["thickness"]
        aquifer_ds["permeability"] = hydro["permeability"]

        results = xr.apply_ufunc(
            cell_calculation,
@@ -212,8 +210,9 @@ def compute_hydro_properties_mc(
    ln_perm_mean = np.log(aquifer_ds["permeability"])
    ln_perm_sd = aquifer_ds["permeability_lnsd"]

    start = time.perf_counter()
    thickness_p, permeability_p, transmissivity_p = xr.apply_ufunc(
        _tpkt_kernel,
        calculate_transmissivity,
        thickness_mean,
        thickness_sd,
        ln_perm_mean,
@@ -226,6 +225,8 @@ def compute_hydro_properties_mc(
        dask="parallelized",
        output_dtypes=[np.float64, np.float64, np.float64],
    )
    end = time.perf_counter()
    print(end-start)

    transmissivity_with_ntg = transmissivity_p * aquifer_ds["ntg"] / 1000.0
    transmissivity_with_ntg = transmissivity_with_ntg.where(