Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
68 changes: 6 additions & 62 deletions src/ert/__main__.py
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@
from ert.namespace import Namespace
from ert.plugins import ErtRuntimePlugins, get_site_plugins, setup_site_logging
from ert.run_models.multiple_data_assimilation import MultipleDataAssimilationConfig
from ert.services import ErtServer, WebvizErt
from ert.services import ErtServer
from ert.services._storage_main import add_parser_options as ert_api_add_parser_options
from ert.shared.status.utils import get_ert_memory_usage
from ert.storage import ErtStorageException, ErtStoragePermissionError
Expand All @@ -63,67 +63,24 @@ def run_ert_storage(args: Namespace, _: ErtRuntimePlugins | None = None) -> None


def run_webviz_ert(args: Namespace, _: ErtRuntimePlugins | None = None) -> None:
try:
import webviz_ert # type: ignore # noqa
except ImportError as err:
raise ValueError(
"Running `ert vis` requires that webviz_ert is installed"
) from err

kwargs: dict[str, Any] = {"verbose": args.verbose}
ert_config = ErtConfig.with_plugins(get_site_plugins()).from_file(args.config)

os.chdir(ert_config.config_path)
ens_path = ert_config.ens_path

# Changing current working directory means we need to
# only use the base name of the config file path
kwargs["ert_config"] = os.path.basename(args.config)
kwargs["project"] = os.path.abspath(ens_path)

yellow = "\x1b[33m"
green = "\x1b[32m"
bold = "\x1b[1m"
reset = "\x1b[0m"

try:
with ErtServer.init_service(project=Path(ens_path).absolute()) as storage:
storage.wait_until_ready()
print(
f"""
print(
f"""
---------------------------------------------------------------

{yellow}{bold}Webviz-ERT is deprecated and will be removed in the near future{reset}
{yellow}{bold}Webviz-ERT is removed.

{green}{bold}Plotting capabilities provided by Webviz-ERT are now available
using the ERT plotter{reset}

---------------------------------------------------------------

Starting up Webviz-ERT. This might take more than a minute.

---------------------------------------------------------------
"""
)
logger.info("Show Webviz-ert deprecation warning")
webviz_kwargs = {
"experimental_mode": args.experimental_mode,
"verbose": args.verbose,
"title": kwargs.get("ert_config", "ERT - Visualization tool"),
"project": kwargs.get("project", os.getcwd()),
}
with WebvizErt.start_server(**webviz_kwargs) as webviz_ert_server:
webviz_ert_server.wait()
except PermissionError as pe:
print(f"Error: {pe}", file=sys.stderr)
print(
"Cannot start or connect to storage service due to permission issues.",
file=sys.stderr,
)
print(
"This is most likely due to another user starting ERT using this storage",
file=sys.stderr,
)
)
logger.info("Show Webviz-ert removal warning")


def strip_error_message_and_raise_exception(validated: ValidationStatus) -> None:
Expand Down Expand Up @@ -317,19 +274,6 @@ def get_ert_parser(parser: ArgumentParser | None = None) -> ArgumentParser:
ert_api_parser.set_defaults(func=run_ert_storage)
ert_api_add_parser_options(ert_api_parser)

ert_vis_parser = subparsers.add_parser(
"vis",
description="Launch webviz-driven visualization tool.",
)
ert_vis_parser.set_defaults(func=run_webviz_ert)
ert_vis_parser.add_argument("--name", "-n", type=str, default="Webviz-ERT")
ert_vis_parser.add_argument(
"--experimental-mode",
action="store_true",
help="Feature flag for enabling experimental plugins",
)
ert_api_add_parser_options(ert_vis_parser) # ert vis shares args with ert api

# test_run_parser
test_run_description = f"Run '{TEST_RUN_MODE}' in cli"
test_run_parser = subparsers.add_parser(
Expand Down
Empty file.
42 changes: 0 additions & 42 deletions src/ert/dark_storage/compute/misfits.py
Original file line number Diff line number Diff line change
@@ -1,42 +0,0 @@
from collections.abc import Mapping

import numpy as np
import numpy.typing as npt
import pandas as pd


def _calculate_signed_chi_squared_misfit(
obs_value: npt.NDArray[np.float64],
response_value: npt.NDArray[np.float64],
obs_std: npt.NDArray[np.float64],
) -> list[float]:
"""The signed version is intended for visualization. For data assimiliation one
would normally use the normal chi-square"""
residual = response_value - obs_value
return (np.sign(residual) * residual * residual / (obs_std * obs_std)).tolist()


def calculate_signed_chi_squared_misfits(
reponses_dict: Mapping[int, pd.DataFrame],
observation: pd.DataFrame,
summary_misfits: bool = False,
) -> pd.DataFrame:
"""
Compute misfits from reponses_dict (real_id, values in dataframe)
and observation
"""
misfits_dict = {}
for realization_index in reponses_dict:
misfits_dict[realization_index] = _calculate_signed_chi_squared_misfit(
observation["values"],
reponses_dict[realization_index]
.loc[:, observation.index]
.to_numpy()
.flatten(),
observation["errors"],
)

df = pd.DataFrame(data=misfits_dict, index=observation.index)
if summary_misfits:
df = pd.DataFrame([df.abs().sum(axis=0)], columns=df.columns, index=[0])
return df.T
2 changes: 0 additions & 2 deletions src/ert/dark_storage/endpoints/__init__.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
from fastapi import APIRouter

from .compute.misfits import router as misfits_router
from .ensembles import router as ensembles_router
from .experiment_server import router as experiment_server_router
from .experiments import router as experiments_router
Expand All @@ -15,7 +14,6 @@
router.include_router(ensembles_router)
router.include_router(observations_router)
router.include_router(updates_router)
router.include_router(misfits_router)
router.include_router(parameters_router)
router.include_router(responses_router)
router.include_router(experiment_server_router)
Expand Down
Empty file.
95 changes: 0 additions & 95 deletions src/ert/dark_storage/endpoints/compute/misfits.py

This file was deleted.

3 changes: 0 additions & 3 deletions src/ert/dark_storage/endpoints/experiments.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@
from ert.config import SurfaceConfig
from ert.dark_storage import json_schema as js
from ert.dark_storage.common import get_storage
from ert.shared.storage.extraction import create_priors
from ert.storage import Storage

router = APIRouter(tags=["experiment"])
Expand All @@ -26,7 +25,6 @@ def get_experiments(
id=experiment.id,
name=experiment.name,
ensemble_ids=[ens.id for ens in experiment.ensembles],
priors=create_priors(experiment),
userdata={},
parameters={
group: config.model_dump()
Expand Down Expand Up @@ -62,7 +60,6 @@ def get_experiment_by_id(
name=experiment.name,
id=experiment.id,
ensemble_ids=[ens.id for ens in experiment.ensembles],
priors=create_priors(experiment),
userdata={},
parameters={
group: config.model_dump()
Expand Down
1 change: 0 additions & 1 deletion src/ert/dark_storage/json_schema/experiment.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,6 @@ class ExperimentIn(_Experiment):
class ExperimentOut(_Experiment):
id: UUID
ensemble_ids: list[UUID]
priors: Mapping[str, dict[str, Any]]
userdata: Mapping[str, Any]
parameters: Mapping[str, dict[str, Any]]
responses: Mapping[str, list[dict[str, Any]]]
Expand Down
2 changes: 1 addition & 1 deletion src/ert/gui/tools/plot/plot_window.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@
from ert.config.field import Field
from ert.dark_storage.common import get_storage_api_version
from ert.gui.ertwidgets import CopyButton, showWaitCursorWhileWaiting
from ert.services._base_service import ServerBootFail
from ert.services import ServerBootFail
from ert.utils import log_duration

from .customize import PlotCustomizer
Expand Down
5 changes: 2 additions & 3 deletions src/ert/services/__init__.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
from .ert_server import ErtServer
from .webviz_ert_service import WebvizErt
from .ert_server import ErtServer, ErtServerExit, ServerBootFail

__all__ = ["ErtServer", "WebvizErt"]
__all__ = ["ErtServer", "ErtServerExit", "ServerBootFail"]
Loading
Loading