TNO Intern

Commit 91f05685 authored by Florian Knappers's avatar Florian Knappers
Browse files

updated test

parent 8c561328
Loading
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -15,3 +15,4 @@ pydoubletcalc_install
workdir

**/output_plots/**
**/output_grids/**
 No newline at end of file
+37 −117
Original line number Diff line number Diff line
from pathlib import Path
import shutil

import pytest
import xarray as xr
@@ -9,7 +8,7 @@ from pythermogis.workflow.utc.configuration import UTCConfiguration
from pythermogis.workflow.utc.utc import run_utc_workflow


@pytest.mark.skip(reason="Takes too long, and results should be checked manually")
# @pytest.mark.skip(reason="Takes too long, and results should be checked manually")
def test_rosl_roslu():
    """
    Integration test that runs the whole ROSL_ROSLU aquifer.
@@ -23,122 +22,43 @@ def test_rosl_roslu():
    input_folder = Path(__file__).parent / "input"
    grid_output_folder = Path(__file__).parent / "output_grids"
    plot_output_folder = Path(__file__).parent / "output_plots"
    java_ouput_folder = Path(__file__).parent / "java_output"
    java_output_folder = Path(__file__).parent / "java_output"

    plot_output_folder.mkdir(parents=True, exist_ok=True)
    grid_output_folder.mkdir(parents=True, exist_ok=True)

    try:
    p_values = [50, 90]

    config = UTCConfiguration(
        input_data_dir=input_folder,
        results_dir=grid_output_folder,
        aquifers=["ROSL_ROSLU"],
        segment_length=1,
            p_values=[50, 90]
        p_values=p_values
    )
    result = run_utc_workflow(config)

        # UTC
        java_utc_p50 = xr.open_dataset(java_ouput_folder / "ROSL_ROSLU__utc_P50.nc")["data"]
        python_utc_p50 = result.ROSL_ROSLU.utc_p50
        plot_grid_comparison(
            grid1=java_utc_p50,
            grid2=python_utc_p50,
            outfile=plot_output_folder / "ROSL_ROSLU__utc_P50.png",
            add_netherlands_shapefile=True,
            title1="Java results",
            title2="Python results",
            suptitle="utc p50"
        )
    variables = [
        ("utc", "utc"),
        ("flowr", "flow"),
        ("power", "power"),
        ("welld", "welld")
    ]

        java_utc_p90 = xr.open_dataset(java_ouput_folder / "ROSL_ROSLU__utc_P90.nc")["data"]
        python_utc_p90 = result.ROSL_ROSLU.utc_p90
        plot_grid_comparison(
            grid1=java_utc_p90,
            grid2=python_utc_p90,
            outfile=plot_output_folder / "ROSL_ROSLU__utc_P90.png",
            add_netherlands_shapefile=True,
            title1="Java results",
            title2="Python results",
            suptitle="utc p90"
        )

        # FLOW
        java_flow_p50 = xr.open_dataset(java_ouput_folder / "ROSL_ROSLU__flowr_P50.nc")["data"]
        python_flow_p50 = result.ROSL_ROSLU.flow_p50
        plot_grid_comparison(
            grid1=java_flow_p50,
            grid2=python_flow_p50,
            outfile=plot_output_folder / "ROSL_ROSLU__flow_P50.png",
            add_netherlands_shapefile=True,
            title1="Java results",
            title2="Python results",
            suptitle="flow p50"
        )
    for java_name, python_name in variables:
        for p_value in p_values:
            java_file = java_output_folder / f"ROSL_ROSLU__{java_name}_P{p_value}.nc"
            java_data = xr.open_dataset(java_file)["data"]

        java_flow_p90 = xr.open_dataset(java_ouput_folder / "ROSL_ROSLU__flowr_P90.nc")["data"]
        python_flow_p90 = result.ROSL_ROSLU.flow_p90
        plot_grid_comparison(
            grid1=java_flow_p90,
            grid2=python_flow_p90,
            outfile=plot_output_folder / "ROSL_ROSLU__flow_P90.png",
            add_netherlands_shapefile=True,
            title1="Java results",
            title2="Python results",
            suptitle="flow p90"
        )
            python_data = getattr(result.ROSL_ROSLU, f"{python_name}_p{p_value}")

        # POWER
        java_power_p50 = xr.open_dataset(java_ouput_folder / "ROSL_ROSLU__power_P50.nc")["data"]
        python_power_p50 = result.ROSL_ROSLU.power_p50
            plot_grid_comparison(
            grid1=java_power_p50,
            grid2=python_power_p50,
            outfile=plot_output_folder / "ROSL_ROSLU__power_P50.png",
                grid1=java_data,
                grid2=python_data,
                outfile=plot_output_folder / f"ROSL_ROSLU__{python_name}_P{p_value}.png",
                add_netherlands_shapefile=True,
                title1="Java results",
                title2="Python results",
            suptitle="power p50"
                suptitle=f"{python_name} p{p_value}"
            )
 No newline at end of file

        java_power_p90 = xr.open_dataset(java_ouput_folder / "ROSL_ROSLU__power_P90.nc")["data"]
        python_power_p90 = result.ROSL_ROSLU.power_p90
        plot_grid_comparison(
            grid1=java_power_p90,
            grid2=python_power_p90,
            outfile=plot_output_folder / "ROSL_ROSLU__power_P90.png",
            add_netherlands_shapefile=True,
            title1="Java results",
            title2="Python results",
            suptitle="power p90"
        )

        # welld
        java_welld_p50 = xr.open_dataset(java_ouput_folder / "ROSL_ROSLU__welld_P50.nc")["data"]
        python_welld_p50 = result.ROSL_ROSLU.welld_p50
        plot_grid_comparison(
            grid1=java_welld_p50,
            grid2=python_welld_p50,
            outfile=plot_output_folder / "ROSL_ROSLU__welld_P50.png",
            add_netherlands_shapefile=True,
            title1="Java results",
            title2="Python results",
            suptitle="welld p50"
        )

        java_welld_p90 = xr.open_dataset(java_ouput_folder / "ROSL_ROSLU__welld_P90.nc")["data"]
        python_welld_p90 = result.ROSL_ROSLU.welld_p90
        plot_grid_comparison(
            grid1=java_welld_p90,
            grid2=python_welld_p90,
            outfile=plot_output_folder / "ROSL_ROSLU__welld_P90.png",
            add_netherlands_shapefile=True,
            title1="Java results",
            title2="Python results",
            suptitle="welld p90"
        )


    finally:
        if grid_output_folder and grid_output_folder.exists():
            shutil.rmtree(grid_output_folder)