{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Linear Regression with PEST++ iES\n", "\n", "Test notebook to compare the PEST++ iES outcomes for a linear regression problem where the confidence intervals can be computed exact. \n", "\n", "## Setup\n", "\n", "### Packages" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Pyemu version: 1.3.8+54.g41adeeb6\n", "Pastas version: 1.11.0\n", "Python version: 3.13.5\n", "NumPy version: 2.2.5\n", "Pandas version: 2.2.3\n", "SciPy version: 1.15.2\n", "Matplotlib version: 3.10.1\n", "Numba version: 0.61.2\n", "pastas_plugins version : 0.3.2\n", "- cross_correlation version : not available (check dependencies)\n", "- modflow version : 0.3.0\n", "- pest version : 0.0.3\n", "- reservoirs version : 0.1.0\n", "- responses version : 0.2.0\n", "\n", "Note: To install missing dependencies use `pip install pastas-plugins[]`\n" ] } ], "source": [ "import json\n", "from dataclasses import dataclass, field\n", "from pathlib import Path\n", "from typing import Any, Literal\n", "\n", "import matplotlib as mpl\n", "import matplotlib.pyplot as plt\n", "import numpy as np\n", "import pandas as pd\n", "import pyemu\n", "import scipy as sp\n", "import xarray as xr\n", "from cmcrameri import cm as cmc\n", "from numpy.typing import NDArray\n", "from pastas import show_versions\n", "from pyemu.utils.get_pestpp import run_main as get_pestpp\n", "\n", "from pastas_plugins import show_plugin_versions\n", "from pastas_plugins.pest import PestIesSolver\n", "\n", "print(\"Pyemu version:\", pyemu.__version__)\n", "show_versions()\n", "show_plugin_versions()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Linear regression model\n", "\n", "Setup of the model might be a bit weird but this way we can easily use the PestIesSolver in Pastas Plugins. The PestIesSolver allows for the pypestworker etc." ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "@dataclass\n", "class LinRegModel:\n", " y: pd.Series = field(repr=False)\n", "\n", " def __post_init__(self):\n", " self.x: NDArray[float] = self.y.index.values\n", " p0_mean = np.mean(self.y.values)\n", " p1_ini = (y.iat[-1] - y.iat[0]) / (x[-1] - x[0]) # initial estimate slope\n", " self._parameters: pd.DataFrame = pd.DataFrame(\n", " [\n", " [\n", " p0_mean,\n", " np.min(self.y.values) - p0_mean / 4,\n", " np.max(self.y.values) + p0_mean / 4,\n", " np.nan,\n", " True,\n", " ],\n", " [p1_ini, p1_ini - p1_ini * 2.0, p1_ini + p1_ini * 2.0, np.nan, True],\n", " ],\n", " index=pd.Index(\n", " [\n", " \"p_0\",\n", " \"p_1\",\n", " ],\n", " name=\"parnames\",\n", " ),\n", " columns=[\"initial\", \"pmin\", \"pmax\", \"optimal\", \"vary\"],\n", " )\n", "\n", " @property\n", " def p_0(self):\n", " return (\n", " self._parameters.at[\"p_0\", \"initial\"]\n", " if np.isnan(self._parameters.at[\"p_0\", \"optimal\"])\n", " else self._parameters.at[\"p_0\", \"optimal\"]\n", " )\n", "\n", " @property\n", " def p_1(self):\n", " return (\n", " self._parameters.at[\"p_1\", \"initial\"]\n", " if np.isnan(self._parameters.at[\"p_1\", \"optimal\"])\n", " else self._parameters.at[\"p_1\", \"optimal\"]\n", " )\n", "\n", " @property\n", " def parameters(self):\n", " return self._parameters\n", "\n", " def observations(self):\n", " return self.y\n", "\n", " def simulate(self):\n", " y = self.p_0 + self.p_1 * self.x\n", " return pd.Series(y, index=pd.Index(self.x, name=\"x\"), name=\"Simulated\")\n", "\n", " @staticmethod\n", " def synthetic(\n", " x: NDArray[float],\n", " p_0: float,\n", " p_1: float,\n", " noise_std: float = 0.0,\n", " noise_ccoeff: float = 0.0,\n", " ):\n", " \"\"\"Generate synthetic linear data with optional noise.\n", "\n", " Parameters\n", " ----------\n", " x : NDArray[float]\n", " Input x values.\n", " p_0 : float\n", " Intercept of the linear model.\n", " p_1 : float\n", " Slope of the linear model.\n", " noise_std : float, optional\n", " Standard deviation of the Gaussian noise to be added, by default 0.0.\n", " noise_ccoeff : float, optional\n", " Correlation coefficient for autocorrelated noise (between -1 and 1), by default 0.0.\n", "\n", " Returns\n", " -------\n", " pd.Series\n", " Synthetic y values with optional noise.\n", " \"\"\"\n", " y = p_0 + p_1 * x\n", " if noise_std > 0.0:\n", " drng = np.random.default_rng(pyemu.en.SEED) # set seed\n", " noise = drng.normal(loc=0.0, scale=noise_std, size=len(y))\n", " if noise_ccoeff != 0.0:\n", " sige = np.sqrt(1 - noise_ccoeff**2) * noise_std\n", " e = drng.normal(loc=0.0, scale=sige, size=len(y))\n", " for j in range(1, len(y)):\n", " noise[j] = noise_ccoeff * noise[j - 1] + e[j]\n", "\n", " y += noise\n", " return pd.Series(y, index=pd.Index(x, name=\"x\"))\n", "\n", " def set_parameter(\n", " self,\n", " name: str,\n", " initial: float | None = None,\n", " pmin: float | None = None,\n", " pmax: float | None = None,\n", " optimal: float | None = None,\n", " vary: bool | None = None,\n", " ) -> None:\n", " if initial is not None:\n", " self._parameters.loc[name, \"initial\"] = initial\n", " if pmin is not None:\n", " self._parameters.loc[name, \"pmin\"] = pmin\n", " if pmax is not None:\n", " self._parameters.loc[name, \"pmax\"] = pmax\n", " if optimal is not None:\n", " self._parameters.loc[name, \"optimal\"] = optimal\n", " # setattr(self, name, optimal)\n", " if vary is not None:\n", " self._parameters.loc[name, \"vary\"] = vary\n", "\n", " def add_solver(self, solver: Any):\n", " self.solver = solver\n", " solver.set_model(self)\n", "\n", " def solve(self) -> None:\n", " self.solver.solve()\n", "\n", " def to_file(self, path: Path) -> None:\n", " # write dummy model to emulate pastas\n", " with open(path, \"w\") as f:\n", " f.write(\"Dummy model file\\n\")\n", " f.write(f\"p_0: {self.p_0}\\n\")\n", " f.write(f\"p_1: {self.p_1}\\n\")\n", "\n", " def rss(self, sim: pd.Series | None = None) -> float:\n", " if sim is None:\n", " sim = self.simulate()\n", " residuals = self.y - sim\n", " return float(np.sum(residuals**2))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Linear regression solver\n", "\n", "Linear regression solver from SciPy (`scipy.stats.linregress`) which can compute the true confidence intervals and everything." ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "@dataclass\n", "class LinRegSolver:\n", " \"\"\"https://docs.scipy.org/doc/scipy/reference/generated/scipy.stats.linregress.html\"\"\"\n", "\n", " model: None | LinRegModel = None\n", "\n", " def set_model(self, model: LinRegModel) -> None:\n", " self.model = model\n", "\n", " @staticmethod\n", " def linregress(x: NDArray[float], y: NDArray[float]) -> sp.optimize.OptimizeResult:\n", " res = sp.stats.linregress(x=x, y=y)\n", " return res\n", "\n", " def solve(self) -> None:\n", " if self.model is None:\n", " raise ValueError(\"No model assigned to solver.\")\n", " res = self.linregress(x=self.model.x, y=self.model.y)\n", " self.res = res\n", " self.model.set_parameter(name=\"p_1\", optimal=res.slope)\n", " self.model.set_parameter(name=\"p_0\", optimal=res.intercept)\n", "\n", " def critical_t(self, alpha: float = 0.05) -> float:\n", " \"\"\"Calculate the critical t-value for the slope and intercept.\n", "\n", " Parameters\n", " ----------\n", " alpha : float, optional\n", " Significance level, by default 0.05\n", "\n", " Returns\n", " -------\n", " float\n", " Critical t-value\n", " \"\"\"\n", " n = len(self.model.x)\n", " dof = n - 2 # degrees of freedom\n", " # alpha = 0.05 # probability of confidence interval\n", " tinv = abs(\n", " sp.stats.distributions.t.ppf(alpha / 2.0, dof)\n", " ) # Two-sided inverse Students t-distribution\n", " return tinv\n", "\n", " def ci(self, alpha: float = 0.05) -> tuple[float, float]:\n", " \"\"\"Calculate the confidence interval for the slope and intercept.\n", "\n", " Parameters\n", " ----------\n", " alpha : float, optional\n", " Significance level, by default 0.05\n", "\n", " Returns\n", " -------\n", " tuple[float, float]\n", " Confidence interval for intercept and slope (p_0_ci, p_1_ci)\n", " \"\"\"\n", " tinv = self.critical_t(alpha=alpha)\n", " p_0_ci = tinv * self.res.intercept_stderr\n", " p_1_ci = tinv * self.res.stderr\n", " return p_0_ci, p_1_ci\n", "\n", " def ci_sim(self, alpha: float = 0.05) -> tuple[NDArray[float], NDArray[float]]:\n", " \"\"\"Calculate the confidence interval for the simulated values.\n", " https://rpubs.com/aaronsc32/regression-confidence-prediction-intervals\n", "\n", " Parameters\n", " ----------\n", " alpha : float, optional\n", " Significance level, by default 0.05\n", "\n", " Returns\n", " -------\n", " tuple[NDArray[float], NDArray[float]]\n", " Lower and upper confidence interval for simulated values\n", " \"\"\"\n", " x = self.model.x\n", " n = len(x)\n", " se = np.sqrt(self.model.rss() / (n - 2)) * np.sqrt(\n", " 1 / n + (x - np.mean(x)) ** 2 / np.sum((x - np.mean(x)) ** 2)\n", " )\n", "\n", " y_fit = self.model.simulate()\n", " tinv = self.critical_t(alpha=alpha)\n", " lb = y_fit - tinv * se\n", " ub = y_fit + tinv * se\n", "\n", " # Compute lower and upper bounds for simulated values using the confidence intervals\n", " # p0, p1 = self.res.intercept, self.res.slope\n", " # p_0_ci, p_1_ci = self.ci(alpha=alpha)\n", " # b0 = self.model.synthetic(self.model.x, p0 - p_0_ci, p1 - p_1_ci).rename(\"--\")\n", " # b1 = self.model.synthetic(self.model.x, p0 + p_0_ci, p1 + p_1_ci).rename(\"++\")\n", " # b2 = self.model.synthetic(self.model.x, p0 - p_0_ci, p1 + p_1_ci).rename(\"-+\")\n", " # b3 = self.model.synthetic(self.model.x, p0 + p_0_ci, p1 - p_1_ci).rename(\"+-\")\n", " # lb = pd.concat([b0, b1, b2, b3], axis=1).min(axis=1)\n", " # ub = pd.concat([b0, b1, b2, b3], axis=1).max(axis=1)\n", "\n", " return lb, ub" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### PEST++ iES PostProcessor\n", "\n", "Load all iES results in one object (xarray.Dataset)." ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "class PestIesPostProcessor:\n", " \"\"\"PEST++ iES postprocessing class\"\"\"\n", "\n", " def __init__(self, path: str | Path):\n", " \"\"\"Initialize the PestIesPostProcessor with a path.\"\"\"\n", " self.path = Path(path).resolve()\n", "\n", " def __repr__(self):\n", " return f\"PestIesPostProcessor(path={self.path})\"\n", "\n", " @property\n", " def files(self) -> list[Path]:\n", " \"\"\"Return all files in the path.\"\"\"\n", " return [x for x in self.path.glob(\"*\") if x.is_file()]\n", "\n", " @property\n", " def noptmax(self) -> int:\n", " \"\"\"Return the maximum number of optimization iterations.\"\"\"\n", " nopt_maxes = [x.name.split(\".\")[1] for x in list(self.path.glob(\"pest.*.*\"))]\n", " noptmax = max([int(x) for x in nopt_maxes if x.isdigit()])\n", " return noptmax\n", "\n", " @staticmethod\n", " def df_to_da(df: pd.DataFrame) -> xr.DataArray:\n", " \"\"\"Convert a DataFrame to an xarray DataArray.\"\"\"\n", " da = xr.DataArray(\n", " df.values,\n", " coords=[df.index, df.columns],\n", " dims=[\n", " \"index\" if df.index.name is None else df.index.name,\n", " \"columns\" if df.columns.name is None else df.columns.name,\n", " ],\n", " )\n", " return da\n", "\n", " def _load_ensembles(self, suffix: Literal[\".par.csv\", \".obs.csv\"]) -> xr.Dataset:\n", " \"\"\"Load ensembles from the processed files.\"\"\"\n", " suffix_mapping = {\n", " \".obs.csv\": \"oname\",\n", " \".par.csv\": \"pname\",\n", " \".pdc.csv\": \"pdcname\",\n", " }\n", "\n", " das = []\n", " for file in self.files:\n", " if file.name.endswith(suffix):\n", " if \"rejected\" in file.name:\n", " continue\n", " df = pd.read_csv(file, index_col=0)\n", " df.columns.name = suffix_mapping[suffix]\n", " iteration = int(file.name.split(\".\")[1])\n", " da = self.df_to_da(df).rename(suffix.split(\".\")[1])\n", " da = da.expand_dims(iteration=[iteration])\n", " das.append(da)\n", " return xr.concat(das, dim=\"iteration\").sortby(\"iteration\")\n", "\n", " def _load_file(self, file: Path, column_name: str) -> pd.DataFrame:\n", " if file not in self.files:\n", " raise FileNotFoundError(f\"File not found: {file} in {self.path}\")\n", " df = pd.read_csv(file, index_col=0)\n", " df.columns.name = column_name\n", " return df\n", "\n", " def load_parameters(self) -> xr.Dataset:\n", " \"\"\"Load parameter ensembles from the processed files.\"\"\"\n", " return self._load_ensembles(\".par.csv\")\n", "\n", " def load_simulations(self) -> xr.Dataset:\n", " \"\"\"Load simulation ensembles from the processed files.\"\"\"\n", " return self._load_ensembles(\".obs.csv\")\n", "\n", " def load_observations(self) -> xr.DataArray:\n", " df = self._load_file(self.path / \"pest.obs+noise.csv\", \"oname\")\n", " da = self.df_to_da(df).rename(\"observations\")\n", " return da\n", "\n", " def load_weights(self) -> xr.DataArray:\n", " \"\"\"Load weights from the processed files.\"\"\"\n", " df = self._load_file(self.path / \"pest.weights.csv\", \"oname\")\n", " df.index = df.index.astype(str)\n", " df = df.rename(index={df.index[-1]: \"base\"})\n", " da = self.df_to_da(df).rename(\"weights\")\n", " return da\n", "\n", " def load_phi(self) -> xr.DataArray:\n", " \"\"\"Load phi ensembles from the processed files.\"\"\"\n", " df = self._load_file(self.path / \"pest.phi.actual.csv\", \"real_name\")\n", " col_i = df.columns.to_list().index(\"max\") # start reading after the max column\n", " df = df.iloc[:, slice(col_i + 1, None)]\n", " da = self.df_to_da(df).rename(\"phi\")\n", " return da\n", "\n", " def load_dataset(self, rename: bool = False) -> xr.Dataset:\n", " \"\"\"Load the complete dataset from the processed files.\"\"\"\n", " ds = xr.merge(\n", " [\n", " self.load_parameters(),\n", " self.load_simulations(),\n", " self.load_phi(),\n", " self.load_observations(),\n", " self.load_weights(),\n", " ],\n", " compat=\"override\",\n", " )\n", " if rename:\n", " param_index = json.load((self.path / \"parameter_index.json\").open(\"r\"))\n", " obs_index = json.load((self.path / \"observation_index.json\").open(\"r\"))\n", " ds = ds.assign_coords(\n", " pname=list(param_index.values()),\n", " oname=[pd.Timestamp(x) for x in obs_index.values()],\n", " )\n", " return ds" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Case 1: no noise on observations\n", "\n", "Synthetic series with no noise" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "# create synthetic data\n", "x = np.linspace(0.0, 1.0, 101) # x coordinates\n", "a = 1.0 # slope\n", "b = 5.0 # y-intercept\n", "noise_std = 0.0 # noise level\n", "\n", "y = LinRegModel.synthetic(p_0=b, p_1=a, x=x, noise_std=noise_std)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Solve model\n", "\n", "#### SciPy" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
initialpminpmaxoptimalvary
parnames
p_05.53.6257.3755.0True
p_11.0-1.0003.0001.0True
\n", "
" ], "text/plain": [ " initial pmin pmax optimal vary\n", "parnames \n", "p_0 5.5 3.625 7.375 5.0 True\n", "p_1 1.0 -1.000 3.000 1.0 True" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# create a linear regression model and solve with SciPy\n", "ml_sp = LinRegModel(y)\n", "ml_sp.add_solver(LinRegSolver())\n", "ml_sp.solve()\n", "ml_sp.parameters" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Scipy finds the true parameters." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### PEST++ iES" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [], "source": [ "# ies settings\n", "weight = 1e6\n", "num_reals = 251\n", "noptmax = 25\n", "pestpp_ies_options = {\n", " # \"ies_bad_phi_sigma\": 3.0,\n", " # \"ies_multimodal_alpha\": 0.15,\n", " # \"ies_use_approx\": False,\n", " # \"ies_autoadaloc\": True,\n", " # \"ies_lambda_mults\": [0.01, 0.1, 1.0, 10.0],\n", "}\n", "\n", "exe_name = Path(\"bin/pestpp-ies\")\n", "exe_name.parent.mkdir(\n", " parents=True, exist_ok=True\n", ") if not exe_name.parent.exists() else None\n", "if not exe_name.exists():\n", " get_pestpp(str(exe_name.parent), subset=[exe_name.name], force=True)" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "tags": [ "hide-output" ] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "2025-09-30 16:30:13.621767 starting: opening PstFrom.log for logging\n", "2025-09-30 16:30:13.622800 starting PstFrom process\n", "2025-09-30 16:30:13.623388 starting: setting up dirs\n", "2025-09-30 16:30:13.624525 starting: removing existing new_d '/home/vonkm/repos/pestas/src/scenarios/linreg/ies_template'\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "2025-09-30 16:30:13.638037 finished: removing existing new_d '/home/vonkm/repos/pestas/src/scenarios/linreg/ies_template' took: 0:00:00.013512\n", "2025-09-30 16:30:13.638901 starting: copying original_d '/home/vonkm/repos/pestas/src/scenarios/linreg/ies_model' to new_d '/home/vonkm/repos/pestas/src/scenarios/linreg/ies_template'\n", "2025-09-30 16:30:13.640831 finished: copying original_d '/home/vonkm/repos/pestas/src/scenarios/linreg/ies_model' to new_d '/home/vonkm/repos/pestas/src/scenarios/linreg/ies_template' took: 0:00:00.001930\n", "2025-09-30 16:30:13.642411 finished: setting up dirs took: 0:00:00.019023\n", "2025-09-30 16:30:13.654394 starting: adding grid type d style parameters for file(s) ['parameters_sel.csv']\n", "2025-09-30 16:30:13.654541 starting: loading list-style /home/vonkm/repos/pestas/src/scenarios/linreg/ies_template/parameters_sel.csv\n", "2025-09-30 16:30:13.654581 starting: reading list-style file: /home/vonkm/repos/pestas/src/scenarios/linreg/ies_template/parameters_sel.csv\n", "2025-09-30 16:30:13.655579 finished: reading list-style file: /home/vonkm/repos/pestas/src/scenarios/linreg/ies_template/parameters_sel.csv took: 0:00:00.000998\n", "2025-09-30 16:30:13.656419 loaded list-style '/home/vonkm/repos/pestas/src/scenarios/linreg/ies_template/parameters_sel.csv' of shape (2, 2)\n", "2025-09-30 16:30:13.657924 finished: loading list-style /home/vonkm/repos/pestas/src/scenarios/linreg/ies_template/parameters_sel.csv took: 0:00:00.003383\n", "2025-09-30 16:30:13.658041 starting: writing list-style template file '/home/vonkm/repos/pestas/src/scenarios/linreg/ies_template/parameters_sel.csv.tpl'\n", "2025-09-30 16:30:13.666865 finished: writing list-style template file '/home/vonkm/repos/pestas/src/scenarios/linreg/ies_template/parameters_sel.csv.tpl' took: 0:00:00.008824\n", "2025-09-30 16:30:13.670765 finished: adding grid type d style parameters for file(s) ['parameters_sel.csv'] took: 0:00:00.016371\n", "2025-09-30 16:30:13.672174 starting: adding observations from output file simulation.csv\n", "2025-09-30 16:30:13.672887 starting: adding observations from tabular output file '['simulation.csv']'\n", "2025-09-30 16:30:13.674205 starting: reading list-style file: /home/vonkm/repos/pestas/src/scenarios/linreg/ies_template/simulation.csv\n", "2025-09-30 16:30:13.677114 finished: reading list-style file: /home/vonkm/repos/pestas/src/scenarios/linreg/ies_template/simulation.csv took: 0:00:00.002909\n", "2025-09-30 16:30:13.678623 starting: building insfile for tabular output file simulation.csv\n", "2025-09-30 16:30:13.683977 finished: building insfile for tabular output file simulation.csv took: 0:00:00.005354\n", "2025-09-30 16:30:13.684990 starting: adding observation from instruction file '/home/vonkm/repos/pestas/src/scenarios/linreg/ies_template/simulation.csv.ins'\n", "2025-09-30 16:30:13.690263 finished: adding observation from instruction file '/home/vonkm/repos/pestas/src/scenarios/linreg/ies_template/simulation.csv.ins' took: 0:00:00.005273\n", "2025-09-30 16:30:13.691664 finished: adding observations from tabular output file '['simulation.csv']' took: 0:00:00.018777\n", "2025-09-30 16:30:13.691759 finished: adding observations from output file simulation.csv took: 0:00:00.019585\n", "2025-09-30 16:30:13.692165 WARNING: add_py_function() command: run() is not being called directly\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "/home/vonkm/repos/pyemu/pyemu/logger.py:100: PyemuWarning: 2025-09-30 16:30:13.692165 WARNING: add_py_function() command: run() is not being called directly\n", "\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "noptmax:0, npar_adj:2, nnz_obs:101\n", "noptmax:25, npar_adj:2, nnz_obs:101\n", "noptmax:25, npar_adj:2, nnz_obs:101\n", "noptmax:25, npar_adj:2, nnz_obs:101\n", "\n", "\n", " pestpp-ies: a GLM iterative ensemble smoother\n", "\n", " by the PEST++ development team\n", "\n", "\n", "version: 5.2.16\n", "binary compiled on Dec 1 2024 at 10:51:08\n", "\n", "started at 09/30/25 16:30:13\n", "...processing command line: ' ./pestpp-ies pest.pst /h :4004'\n", "...using panther run manager in master mode using port 4004\n", "\n", "using control file: \"pest.pst\"\n", "in directory: \"/home/vonkm/repos/pestas/src/scenarios/linreg/ies_template\"\n", "on host: \"asuszbs14\"\n", "\n", "processing control file pest.pst\n", "\n", "\n", ":~-._ _.-~:\n", ": :.~^o._ ________---------________ _.o^~.:.:\n", " : ::.`?88booo~~~.::::::::...::::::::::::..~~oood88P'.::.:\n", " : ::: `?88P .:::.... ........:::::. ?88P' :::. :\n", " : :::. `? .::. . ...........:::. P' .:::. :\n", " : ::: ... .. ... .. .::::......::. :::. :\n", " ` :' .... .. .:::::. . ..:::::::....:::. `: .'\n", " :.. ____:::::::::. . . ....:::::::::____ ... :\n", " :... `:~ ^~-:::::.. .........:::::-~^ ~::.::::\n", " `.::. `\\ (8) \\b:::..::.:.:::::::d/ (8) /'.::::'\n", " ::::. ~-._v |b.::::::::::::::d| v_.-~..:::::\n", " `.:::::... ~~^?888b..:::::::::::d888P^~...::::::::'\n", " `.::::::::::....~~~ .:::::::::~~~:::::::::::::::'\n", " `..::::::::::: . ....:::: ::::::::::::,'\n", " `. .::::::: . .::::. ::::::::'.'\n", " `._ .::: . :::::. :::::_.'\n", " `-. : . ::::: :,-'\n", " :. :___ .:::___ .::\n", " ..--~~~~--:+::. ~~^?b..:::dP^~~.::++:--~~~~--..\n", " ___....--`+:::. `~8~' .:::+'--....___\n", " ~~ __..---`_=:: ___gd8bg___ :==_'---..__ ~~\n", " -~~~ _.--~~`-.~~~~~~~~~~~~~~~,-' ~~--._ ~~~-\n", "\n", "\n", " starting PANTHER master...\n", "\n", "IP addresses:\n", " 0.0.0.0:4004 (IPv4)\n", "\n", "PANTHER master listening on socket: 0.0.0.0:4004 (IPv4)\n", "\n", " --- initializing --- \n", "...using glm algorithm\n", "...using REDSVD for truncated svd solve\n", "...maxsing: 10000000\n", "...eigthresh: 1e-06\n", "...initializing localizer\n", "...not using localization\n", "...using lambda multipliers: 0.1 , 1 , 10 , \n", "...using lambda scaling factors: 0.75 , 1 , 1.1 , \n", "...acceptable phi factor: 1.05\n", "...lambda increase factor: 10\n", "...lambda decrease factor: 0.75\n", "...max run fail: 1\n", "\n", " --- sanity_check warnings --- \n", "...noptmax > 3, this is a lot of iterations for an ensemble method...\n", "...continuing initialization...\n", "...initializing prior parameter covariance matrix\n", "...parcov loaded from parameter bounds, using par_sigma_range 4\n", "...initializing observation noise covariance matrix\n", "...obscov loaded from observation weights\n", "...using reg_factor: 0\n", "...drawing parameter realizations: 251\n", "...not using prior parameter covariance matrix scaling\n", "...initializing no-noise observation ensemble of : 251\n", "...setting weights ensemble from control file weights\n", "...saved weight ensemble to pest.weights.csv\n", "...adding 'base' parameter values to ensemble\n", "...adding 'base' observation values to ensemble\n", "...adding 'base' weight values to weight ensemble\n", "...saved initial parameter ensemble to pest.0.par.csv\n", "...saved obs+noise observation ensemble (obsval + noise realizations) to pest.obs+noise.csv\n", "...using subset in lambda testing, percentage of realizations used in subset testing: 10\n", "...subset how: RANDOM\n", "...centering on ensemble mean vector\n", "...running initial ensemble of size 251\n", " running model 251 times\n", " starting at 09/30/25 16:30:13\n", "\n", " waiting for agents to appear...\n", "\n", "\n", "PANTHER progress\n", " avg = average model run time in minutes\n", " runs(C = completed | F = failed | T = timed out)\n", " agents(R = running | W = waiting | U = unavailable)\n", "--------------------------------------------------------------------------------\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "/home/vonkm/.local/share/uv/python/cpython-3.13.5-linux-x86_64-gnu/lib/python3.13/multiprocessing/popen_fork.py:67: DeprecationWarning: This process (pid=274580) is multi-threaded, use of fork() may lead to deadlocks in the child.\n", "/home/vonkm/.local/share/uv/python/cpython-3.13.5-linux-x86_64-gnu/lib/python3.13/multiprocessing/popen_fork.py:67: DeprecationWarning: This process (pid=274580) is multi-threaded, use of fork() may lead to deadlocks in the child.\n", "/home/vonkm/.local/share/uv/python/cpython-3.13.5-linux-x86_64-gnu/lib/python3.13/multiprocessing/popen_fork.py:67: DeprecationWarning: This process (pid=274580) is multi-threaded, use of fork() may lead to deadlocks in the child.\n", "/home/vonkm/.local/share/uv/python/cpython-3.13.5-linux-x86_64-gnu/lib/python3.13/multiprocessing/popen_fork.py:67: DeprecationWarning: This process (pid=274580) is multi-threaded, use of fork() may lead to deadlocks in the child.\n", "/home/vonkm/.local/share/uv/python/cpython-3.13.5-linux-x86_64-gnu/lib/python3.13/multiprocessing/popen_fork.py:67: DeprecationWarning: This process (pid=274580) is multi-threaded, use of fork() may lead to deadlocks in the child.\n", "/home/vonkm/.local/share/uv/python/cpython-3.13.5-linux-x86_64-gnu/lib/python3.13/multiprocessing/popen_fork.py:67: DeprecationWarning: This process (pid=274580) is multi-threaded, use of fork() may lead to deadlocks in the child.\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "2025-09-30 16:30:14.361246 : trying to connect to localhost:4004...2025-09-30 16:30:14.362305 : trying to connect to localhost:4004...\n", "\n", "2025-09-30 16:30:14.376631 : trying to connect to localhost:4004...2025-09-30 16:30:14.408039 : trying to connect to localhost:4004...\n", "2025-09-30 16:30:14.412290 : trying to connect to localhost:4004..." ] }, { "name": "stderr", "output_type": "stream", "text": [ "/home/vonkm/.local/share/uv/python/cpython-3.13.5-linux-x86_64-gnu/lib/python3.13/multiprocessing/popen_fork.py:67: DeprecationWarning: This process (pid=274580) is multi-threaded, use of fork() may lead to deadlocks in the child.\n", "/home/vonkm/.local/share/uv/python/cpython-3.13.5-linux-x86_64-gnu/lib/python3.13/multiprocessing/popen_fork.py:67: DeprecationWarning: This process (pid=274580) is multi-threaded, use of fork() may lead to deadlocks in the child.\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\n", "\n", "\n", "2025-09-30 16:30:14.432450 : trying to connect to localhost:4004...2025-09-30 16:30:14.493069 : trying to connect to localhost:4004...\n", "2025-09-30 16:30:14.506464 : trying to connect to localhost:4004...\n", "2025-09-30 16:30:14.625633 : connected to localhost:4004\n", "2025-09-30 16:30:14.640401 : connected to localhost:4004\n", "2025-09-30 16:30:14.666002 : connected to localhost:4004\n", "2025-09-30 16:30:14.670803 : connected to localhost:4004\n", "2025-09-30 16:30:14.694545 : connected to localhost:4004\n", "2025-09-30 16:30:14.706940 : connected to localhost:4004\n", "2025-09-30 16:30:14.747537 : connected to localhost:4004\n", "2025-09-30 16:30:14.760074 : connected to localhost:4004\n", "09/30 16:30:25 remaining file transfers: 0 \n", "\n", " 251 runs complete : 0 runs failed\n", " 0.00347 avg run time (min) : 0.193 run mgr time (min)\n", " 8 agents connected\n", "\n", "\n", "...saved initial obs ensemble to pest.0.obs.csv\n", "saved par and rei files for realization BASE for iteration 0\n", "saved par and rei files for realization BASE\n", "\n", " --- pre-drop initial phi summary --- \n", " phi type mean std min max\n", " actual 1.60074e+14 1.92214e+14 7.82406e+11 1.0657e+15\n", " --- observation group phi summary --- \n", " (computed using 'actual' phi)\n", " (sorted by mean phi)\n", "group count nconflict mean std min max percent std\n", "oname:simulation.csv_otype:lst_usecol:observations 101 0 1.6e+14 1.92e+14 7.82e+11 1.07e+15 100 3.09e-14\n", " Note: 'percent' is the percentage of the actual phi for each realization.\n", "\n", "...checking for prior-data conflict\n", "\n", " --- initial phi summary --- \n", " phi type mean std min max\n", " actual 1.60074e+14 1.92214e+14 7.82406e+11 1.0657e+15\n", " --- observation group phi summary --- \n", " (computed using 'actual' phi)\n", " (sorted by mean phi)\n", "group count nconflict mean std min max percent std\n", "oname:simulation.csv_otype:lst_usecol:observations 101 0 1.6e+14 1.92e+14 7.82e+11 1.07e+15 100 3.09e-14\n", " Note: 'percent' is the percentage of the actual phi for each realization.\n", "\n", "...current lambda: 1e+11\n", "\n", " --- initialization complete --- \n", "\n", " --- starting solve for iteration: 1 --- \n", "...current lambda: 1e+11\n", "...starting calcs for glm factor 1e+10\n", "...finished calcs for: 1e+10\n", "...starting calcs for glm factor 1e+11\n", "...finished calcs for: 1e+11\n", "...starting calcs for glm factor 1e+12\n", "...finished calcs for: 1e+12\n", "\n", " --- running upgrade ensembles --- \n", "...subset idx:pe real name: 0:0, 1:1, 3:3, 9:9, 30:30, 32:32, 33:33, 36:36, 64:64, 73:73, 86:86, 94:94, 97:97, 101:101, 109:109, 113:113, 127:127, 148:148, 174:174, 178:178, 196:196, 201:201, 230:230, 247:247, 250:BASE, \n", "...subset idx:oe real name: 0:0, 1:1, 3:3, 9:9, 30:30, 32:32, 33:33, 36:36, 64:64, 73:73, 86:86, 94:94, 97:97, 101:101, 109:109, 113:113, 127:127, 148:148, 174:174, 178:178, 196:196, 201:201, 230:230, 247:247, 250:BASE, \n", " running model 225 times\n", " starting at 09/30/25 16:30:25\n", " 8 agents ready\n", "\n", "\n", "PANTHER progress\n", " avg = average model run time in minutes\n", " runs(C = completed | F = failed | T = timed out)\n", " agents(R = running | W = waiting | U = unavailable)\n", "--------------------------------------------------------------------------------\n", "09/30 16:30:32 remaining file transfers: 0 \n", "\n", " 225 runs complete : 0 runs failed\n", " 0.00348 avg run time (min) : 0.118 run mgr time (min)\n", " 8 agents connected\n", "\n", "\n", "\n", " --- evaluating upgrade ensembles --- \n", "...last mean: 1.60074e+14\n", "...last stdev: 1.92214e+14\n", "\n", " --- phi summary for best lambda, scale fac: 1e+10 , 1 , --- \n", " phi type mean std min max\n", " actual 1.79653e+07 2.52819e+07 936089 1.206e+08\n", "\n", " --- running remaining realizations for best lambda, scale:1e+10 , 1 , --- \n", " running model 226 times\n", " starting at 09/30/25 16:30:32\n", " 8 agents ready\n", "\n", "\n", "PANTHER progress\n", " avg = average model run time in minutes\n", " runs(C = completed | F = failed | T = timed out)\n", " agents(R = running | W = waiting | U = unavailable)\n", "--------------------------------------------------------------------------------\n", "09/30 16:30:39 remaining file transfers: 0 \n", "\n", " 226 runs complete : 0 runs failed\n", " 0.00346 avg run time (min) : 0.119 run mgr time (min)\n", " 8 agents connected\n", "\n", "\n", "...phi summary for entire ensemble using lambda,scale_fac 1e+10 , 1 , \n", " phi type mean std min max\n", " actual 2.1435e+07 2.55302e+07 94867.1 1.49263e+08\n", "...last best mean phi * acceptable phi factor: 1.68078e+14\n", "...current best mean phi: 2.1435e+07\n", "\n", " --- updating parameter ensemble --- \n", "\n", " --- updating lambda to 7.5e+09 --- \n", "\n", " --- EnsembleMethod iteration 1 report --- \n", " number of active realizations: 251\n", " number of model runs: 702\n", " current obs ensemble saved to pest.1.obs.csv\n", " current par ensemble saved to pest.1.par.csv\n", "saved par and rei files for realization BASE for iteration 1\n", "saved par and rei files for realization BASE\n", " phi type mean std min max\n", " actual 2.1435e+07 2.55302e+07 94867.1 1.49263e+08\n", " --- observation group phi summary --- \n", " (computed using 'actual' phi)\n", " (sorted by mean phi)\n", "group count nconflict mean std min max percent std\n", "oname:simulation.csv_otype:lst_usecol:observations 101 0 2.14e+07 2.55e+07 9.49e+04 1.49e+08 100 3.17e-14\n", " Note: 'percent' is the percentage of the actual phi for each realization.\n", "\n", "\n", " --- parameter group change summmary --- \n", "group count mean chg std chg n at ubnd % at ubnd n at lbnd % at lbnd n std decr\n", "optimal 2 7.665 99.89 0 0 0 0 2\n", " Note: parameter change summary sorted according to percent at bounds.\n", " Note: the parameter change statistics implicitly include the effect of \n", " realizations that have failed or have been dropped.\n", " Note: the 'n std decr' is the number of parameters with current\n", " std less 5% of their initial std.\n", "\n", "...saved parameter change summary to pest.1.pcs.csv\n", "\n", " --- phi-based termination criteria check --- \n", "...phiredstp: 0.01\n", "...nphistp: 3\n", "...nphinored (also used for consecutive bad lambda cycles): 3\n", "...best mean phi sequence: 1.60074e+14 , 2.1435e+07 , \n", "...best phi yet: 2.1435e+07\n", "...number of consecutive bad lambda testing cycles: 0\n", "...number of iterations satisfying phiredstp criteria: 1\n", "...number of iterations since best yet mean phi: 0\n", "\n", " --- starting solve for iteration: 2 --- \n", "...current lambda: 7.5e+09\n", "...starting calcs for glm factor 7.5e+08\n", "...finished calcs for: 7.5e+08\n", "...starting calcs for glm factor 7.5e+09\n", "...finished calcs for: 7.5e+09\n", "...starting calcs for glm factor 7.5e+10\n", "...finished calcs for: 7.5e+10\n", "\n", " --- running upgrade ensembles --- \n", "...subset idx:pe real name: 16:127, 24:BASE, 27:5, 31:10, 36:15, 44:23, 50:29, 59:42, 61:44, 70:53, 77:60, 97:82, 107:93, 108:95, 122:112, 124:115, 128:119, 133:124, 142:134, 146:138, 147:139, 170:163, 181:175, 205:202, 226:223, \n", "...subset idx:oe real name: 16:127, 24:BASE, 27:5, 31:10, 36:15, 44:23, 50:29, 59:42, 61:44, 70:53, 77:60, 97:82, 107:93, 108:95, 122:112, 124:115, 128:119, 133:124, 142:134, 146:138, 147:139, 170:163, 181:175, 205:202, 226:223, \n", " running model 225 times\n", " starting at 09/30/25 16:30:39\n", " 8 agents ready\n", "\n", "\n", "PANTHER progress\n", " avg = average model run time in minutes\n", " runs(C = completed | F = failed | T = timed out)\n", " agents(R = running | W = waiting | U = unavailable)\n", "--------------------------------------------------------------------------------\n", "09/30 16:30:46 remaining file transfers: 0 \n", "\n", " 225 runs complete : 0 runs failed\n", " 0.00346 avg run time (min) : 0.118 run mgr time (min)\n", " 8 agents connected\n", "\n", "\n", "\n", " --- evaluating upgrade ensembles --- \n", "...last mean: 2.1435e+07\n", "...last stdev: 2.55302e+07\n", "\n", " --- best subset mean phi (2.67771e+07) greater than acceptable phi : 2.25067e+07 --- \n", "...updating realizations with reduced phi\n", "...current best mean phi (after updating reduced-phi reals): 2.1297e+07\n", "\n", " --- partial update improved phi stats, updating lambda to 5.625e+08 --- \n", "...returning to upgrade calculations...\n", "\n", " --- EnsembleMethod iteration 2 report --- \n", " number of active realizations: 251\n", " number of model runs: 927\n", " current obs ensemble saved to pest.2.obs.csv\n", " current par ensemble saved to pest.2.par.csv\n", "saved par and rei files for realization BASE for iteration 2\n", "saved par and rei files for realization BASE\n", " phi type mean std min max\n", " actual 2.1297e+07 2.53549e+07 94867.1 1.49263e+08\n", " --- observation group phi summary --- \n", " (computed using 'actual' phi)\n", " (sorted by mean phi)\n", "group count nconflict mean std min max percent std\n", "oname:simulation.csv_otype:lst_usecol:observations 101 0 2.13e+07 2.54e+07 9.49e+04 1.49e+08 100 3.18e-14\n", " Note: 'percent' is the percentage of the actual phi for each realization.\n", "\n", "\n", " --- parameter group change summmary --- \n", "group count mean chg std chg n at ubnd % at ubnd n at lbnd % at lbnd n std decr\n", "optimal 2 7.665 99.89 0 0 0 0 2\n", " Note: parameter change summary sorted according to percent at bounds.\n", " Note: the parameter change statistics implicitly include the effect of \n", " realizations that have failed or have been dropped.\n", " Note: the 'n std decr' is the number of parameters with current\n", " std less 5% of their initial std.\n", "\n", "...saved parameter change summary to pest.2.pcs.csv\n", "\n", " --- phi-based termination criteria check --- \n", "...phiredstp: 0.01\n", "...nphistp: 3\n", "...nphinored (also used for consecutive bad lambda cycles): 3\n", "...best mean phi sequence: 1.60074e+14 , 2.1435e+07 , 2.1297e+07 , \n", "...best phi yet: 2.1297e+07\n", "...number of consecutive bad lambda testing cycles: 1\n", "...number of iterations satisfying phiredstp criteria: 1\n", "...number of iterations since best yet mean phi: 0\n", "\n", " --- starting solve for iteration: 3 --- \n", "...current lambda: 5.625e+08\n", "...starting calcs for glm factor 5.625e+07\n", "...finished calcs for: 5.625e+07\n", "...starting calcs for glm factor 5.625e+08\n", "...finished calcs for: 5.625e+08\n", "...starting calcs for glm factor 5.625e+09\n", "...finished calcs for: 5.625e+09\n", "\n", " --- running upgrade ensembles --- \n", "...subset idx:pe real name: 14:109, 16:127, 24:BASE, 28:6, 35:14, 54:37, 67:50, 68:51, 77:60, 78:61, 81:65, 89:74, 130:121, 135:126, 161:154, 174:167, 182:176, 185:180, 188:183, 193:188, 204:200, 211:208, 233:231, 236:234, 241:239, \n", "...subset idx:oe real name: 14:109, 16:127, 24:BASE, 28:6, 35:14, 54:37, 67:50, 68:51, 77:60, 78:61, 81:65, 89:74, 130:121, 135:126, 161:154, 174:167, 182:176, 185:180, 188:183, 193:188, 204:200, 211:208, 233:231, 236:234, 241:239, \n", " running model 225 times\n", " starting at 09/30/25 16:30:46\n", " 8 agents ready\n", "\n", "\n", "PANTHER progress\n", " avg = average model run time in minutes\n", " runs(C = completed | F = failed | T = timed out)\n", " agents(R = running | W = waiting | U = unavailable)\n", "--------------------------------------------------------------------------------\n", "09/30 16:30:55 remaining file transfers: 0 \n", "\n", " 225 runs complete : 0 runs failed\n", " 0.00347 avg run time (min) : 0.143 run mgr time (min)\n", " 8 agents connected\n", "\n", "\n", "\n", " --- evaluating upgrade ensembles --- \n", "...last mean: 2.1297e+07\n", "...last stdev: 2.53549e+07\n", "\n", " --- phi summary for best lambda, scale fac: 5.625e+07 , 1.1 , --- \n", " phi type mean std min max\n", " actual 9.693e+06 1.35387e+07 552588 6.31171e+07\n", "\n", " --- running remaining realizations for best lambda, scale:5.625e+07 , 1.1 , --- \n", " running model 226 times\n", " starting at 09/30/25 16:30:55\n", " 8 agents ready\n", "\n", "\n", "PANTHER progress\n", " avg = average model run time in minutes\n", " runs(C = completed | F = failed | T = timed out)\n", " agents(R = running | W = waiting | U = unavailable)\n", "--------------------------------------------------------------------------------\n", "09/30 16:31:02 remaining file transfers: 0 \n", "\n", " 226 runs complete : 0 runs failed\n", " 0.00347 avg run time (min) : 0.118 run mgr time (min)\n", " 8 agents connected\n", "\n", "\n", "...phi summary for entire ensemble using lambda,scale_fac 5.625e+07 , 1.1 , \n", " phi type mean std min max\n", " actual 1.18273e+07 1.36299e+07 63211.6 8.04027e+07\n", "...last best mean phi * acceptable phi factor: 2.23619e+07\n", "...current best mean phi: 1.18273e+07\n", "\n", " --- updating parameter ensemble --- \n", "\n", " --- updating lambda to 4.21875e+07 --- \n", "\n", " --- EnsembleMethod iteration 3 report --- \n", " number of active realizations: 251\n", " number of model runs: 1378\n", " current obs ensemble saved to pest.3.obs.csv\n", " current par ensemble saved to pest.3.par.csv\n", "saved par and rei files for realization BASE for iteration 3\n", "saved par and rei files for realization BASE\n", " phi type mean std min max\n", " actual 1.18273e+07 1.36299e+07 63211.6 8.04027e+07\n", " --- observation group phi summary --- \n", " (computed using 'actual' phi)\n", " (sorted by mean phi)\n", "group count nconflict mean std min max percent std\n", "oname:simulation.csv_otype:lst_usecol:observations 101 0 1.18e+07 1.36e+07 6.32e+04 8.04e+07 100 3.24e-14\n", " Note: 'percent' is the percentage of the actual phi for each realization.\n", "\n", "\n", " --- parameter group change summmary --- \n", "group count mean chg std chg n at ubnd % at ubnd n at lbnd % at lbnd n std decr\n", "optimal 2 7.673 99.92 0 0 0 0 2\n", " Note: parameter change summary sorted according to percent at bounds.\n", " Note: the parameter change statistics implicitly include the effect of \n", " realizations that have failed or have been dropped.\n", " Note: the 'n std decr' is the number of parameters with current\n", " std less 5% of their initial std.\n", "\n", "...saved parameter change summary to pest.3.pcs.csv\n", "\n", " --- phi-based termination criteria check --- \n", "...phiredstp: 0.01\n", "...nphistp: 3\n", "...nphinored (also used for consecutive bad lambda cycles): 3\n", "...best mean phi sequence: 1.60074e+14 , 2.1435e+07 , 2.1297e+07 , 1.18273e+07 , \n", "...best phi yet: 1.18273e+07\n", "...number of consecutive bad lambda testing cycles: 0\n", "...number of iterations satisfying phiredstp criteria: 1\n", "...number of iterations since best yet mean phi: 0\n", "\n", " --- starting solve for iteration: 4 --- \n", "...current lambda: 4.21875e+07\n", "...starting calcs for glm factor 4.21875e+06\n", "...finished calcs for: 4.21875e+06\n", "...starting calcs for glm factor 4.21875e+07\n", "...finished calcs for: 4.21875e+07\n", "...starting calcs for glm factor 4.21875e+08\n", "...finished calcs for: 4.21875e+08\n", "\n", " --- running upgrade ensembles --- \n", "...subset idx:pe real name: 2:BASE, 17:180, 29:30, 33:64, 50:7, 56:15, 59:18, 60:19, 66:25, 68:27, 77:41, 79:43, 90:56, 92:58, 96:66, 125:100, 149:130, 169:151, 197:186, 200:190, 224:218, 228:222, 241:238, 242:240, 250:249, \n", "...subset idx:oe real name: 2:BASE, 17:180, 29:30, 33:64, 50:7, 56:15, 59:18, 60:19, 66:25, 68:27, 77:41, 79:43, 90:56, 92:58, 96:66, 125:100, 149:130, 169:151, 197:186, 200:190, 224:218, 228:222, 241:238, 242:240, 250:249, \n", " running model 225 times\n", " starting at 09/30/25 16:31:02\n", " 8 agents ready\n", "\n", "\n", "PANTHER progress\n", " avg = average model run time in minutes\n", " runs(C = completed | F = failed | T = timed out)\n", " agents(R = running | W = waiting | U = unavailable)\n", "--------------------------------------------------------------------------------\n", "09/30 16:31:09 remaining file transfers: 0 \n", "\n", " 225 runs complete : 0 runs failed\n", " 0.00348 avg run time (min) : 0.12 run mgr time (min)\n", " 8 agents connected\n", "\n", "\n", "\n", " --- evaluating upgrade ensembles --- \n", "...last mean: 1.18273e+07\n", "...last stdev: 1.36299e+07\n", "\n", " --- phi summary for best lambda, scale fac: 4.21875e+06 , 1.1 , --- \n", " phi type mean std min max\n", " actual 1.26321e+06 1.123e+06 106598 3.77983e+06\n", "\n", " --- running remaining realizations for best lambda, scale:4.21875e+06 , 1.1 , --- \n", " running model 226 times\n", " starting at 09/30/25 16:31:09\n", " 8 agents ready\n", "\n", "\n", "PANTHER progress\n", " avg = average model run time in minutes\n", " runs(C = completed | F = failed | T = timed out)\n", " agents(R = running | W = waiting | U = unavailable)\n", "--------------------------------------------------------------------------------\n", "09/30 16:31:16 remaining file transfers: 0 \n", "\n", " 226 runs complete : 0 runs failed\n", " 0.00348 avg run time (min) : 0.118 run mgr time (min)\n", " 8 agents connected\n", "\n", "\n", "...phi summary for entire ensemble using lambda,scale_fac 4.21875e+06 , 1.1 , \n", " phi type mean std min max\n", " actual 1.18736e+06 1.00614e+06 21167.7 4.56553e+06\n", "...last best mean phi * acceptable phi factor: 1.24187e+07\n", "...current best mean phi: 1.18736e+06\n", "\n", " --- updating parameter ensemble --- \n", "\n", " --- updating lambda to 3.16406e+06 --- \n", "\n", " --- EnsembleMethod iteration 4 report --- \n", " number of active realizations: 251\n", " number of model runs: 1829\n", " current obs ensemble saved to pest.4.obs.csv\n", " current par ensemble saved to pest.4.par.csv\n", "saved par and rei files for realization BASE for iteration 4\n", "saved par and rei files for realization BASE\n", " phi type mean std min max\n", " actual 1.18736e+06 1.00614e+06 21167.7 4.56553e+06\n", " --- observation group phi summary --- \n", " (computed using 'actual' phi)\n", " (sorted by mean phi)\n", "group count nconflict mean std min max percent std\n", "oname:simulation.csv_otype:lst_usecol:observations 101 0 1.19e+06 1.01e+06 2.12e+04 4.57e+06 100 2.95e-14\n", " Note: 'percent' is the percentage of the actual phi for each realization.\n", "\n", "\n", " --- parameter group change summmary --- \n", "group count mean chg std chg n at ubnd % at ubnd n at lbnd % at lbnd n std decr\n", "optimal 2 7.691 99.98 0 0 0 0 2\n", " Note: parameter change summary sorted according to percent at bounds.\n", " Note: the parameter change statistics implicitly include the effect of \n", " realizations that have failed or have been dropped.\n", " Note: the 'n std decr' is the number of parameters with current\n", " std less 5% of their initial std.\n", "\n", "...saved parameter change summary to pest.4.pcs.csv\n", "\n", " --- phi-based termination criteria check --- \n", "...phiredstp: 0.01\n", "...nphistp: 3\n", "...nphinored (also used for consecutive bad lambda cycles): 3\n", "...best mean phi sequence: 1.60074e+14 , 2.1435e+07 , 2.1297e+07 , 1.18273e+07 , 1.18736e+06 , \n", "...best phi yet: 1.18736e+06\n", "...number of consecutive bad lambda testing cycles: 0\n", "...number of iterations satisfying phiredstp criteria: 1\n", "...number of iterations since best yet mean phi: 0\n", "\n", " --- starting solve for iteration: 5 --- \n", "...current lambda: 3.16406e+06\n", "...starting calcs for glm factor 316406\n", "...finished calcs for: 316406\n", "...starting calcs for glm factor 3.16406e+06\n", "...finished calcs for: 3.16406e+06\n", "...starting calcs for glm factor 3.16406e+07\n", "...finished calcs for: 3.16406e+07\n", "\n", " --- running upgrade ensembles --- \n", "...subset idx:pe real name: 0:BASE, 11:43, 14:66, 25:109, 28:14, 36:121, 44:208, 76:16, 100:53, 101:54, 108:68, 129:92, 143:111, 145:114, 150:119, 154:124, 157:129, 158:131, 186:162, 199:179, 204:187, 208:193, 210:195, 221:210, 224:213, \n", "...subset idx:oe real name: 0:BASE, 11:43, 14:66, 25:109, 28:14, 36:121, 44:208, 76:16, 100:53, 101:54, 108:68, 129:92, 143:111, 145:114, 150:119, 154:124, 157:129, 158:131, 186:162, 199:179, 204:187, 208:193, 210:195, 221:210, 224:213, \n", " running model 225 times\n", " starting at 09/30/25 16:31:16\n", " 8 agents ready\n", "\n", "\n", "PANTHER progress\n", " avg = average model run time in minutes\n", " runs(C = completed | F = failed | T = timed out)\n", " agents(R = running | W = waiting | U = unavailable)\n", "--------------------------------------------------------------------------------\n", "09/30 16:31:24 remaining file transfers: 0 \n", "\n", " 225 runs complete : 0 runs failed\n", " 0.00347 avg run time (min) : 0.12 run mgr time (min)\n", " 8 agents connected\n", "\n", "\n", "\n", " --- evaluating upgrade ensembles --- \n", "...last mean: 1.18736e+06\n", "...last stdev: 1.00614e+06\n", "\n", " --- phi summary for best lambda, scale fac: 316406 , 1.1 , --- \n", " phi type mean std min max\n", " actual 105631 101011 14571 427062\n", "\n", " --- running remaining realizations for best lambda, scale:316406 , 1.1 , --- \n", " running model 226 times\n", " starting at 09/30/25 16:31:24\n", " 8 agents ready\n", "\n", "\n", "PANTHER progress\n", " avg = average model run time in minutes\n", " runs(C = completed | F = failed | T = timed out)\n", " agents(R = running | W = waiting | U = unavailable)\n", "--------------------------------------------------------------------------------\n", "09/30 16:31:32 remaining file transfers: 0 \n", "\n", " 226 runs complete : 0 runs failed\n", " 0.00348 avg run time (min) : 0.142 run mgr time (min)\n", " 8 agents connected\n", "\n", "\n", "...phi summary for entire ensemble using lambda,scale_fac 316406 , 1.1 , \n", " phi type mean std min max\n", " actual 118764 100668 2171.66 443794\n", "...last best mean phi * acceptable phi factor: 1.24673e+06\n", "...current best mean phi: 118764\n", "\n", " --- updating parameter ensemble --- \n", "\n", " --- updating lambda to 237305 --- \n", "\n", " --- EnsembleMethod iteration 5 report --- \n", " number of active realizations: 251\n", " number of model runs: 2280\n", " current obs ensemble saved to pest.5.obs.csv\n", " current par ensemble saved to pest.5.par.csv\n", "saved par and rei files for realization BASE for iteration 5\n", "saved par and rei files for realization BASE\n", " phi type mean std min max\n", " actual 118764 100668 2171.66 443794\n", " --- observation group phi summary --- \n", " (computed using 'actual' phi)\n", " (sorted by mean phi)\n", "group count nconflict mean std min max percent std\n", "oname:simulation.csv_otype:lst_usecol:observations 101 0 1.19e+05 1.01e+05 2.17e+03 4.44e+05 100 3.23e-14\n", " Note: 'percent' is the percentage of the actual phi for each realization.\n", "\n", "\n", " --- parameter group change summmary --- \n", "group count mean chg std chg n at ubnd % at ubnd n at lbnd % at lbnd n std decr\n", "optimal 2 7.694 99.99 0 0 0 0 2\n", " Note: parameter change summary sorted according to percent at bounds.\n", " Note: the parameter change statistics implicitly include the effect of \n", " realizations that have failed or have been dropped.\n", " Note: the 'n std decr' is the number of parameters with current\n", " std less 5% of their initial std.\n", "\n", "...saved parameter change summary to pest.5.pcs.csv\n", "\n", " --- phi-based termination criteria check --- \n", "...phiredstp: 0.01\n", "...nphistp: 3\n", "...nphinored (also used for consecutive bad lambda cycles): 3\n", "...best mean phi sequence: 1.60074e+14 , 2.1435e+07 , 2.1297e+07 , 1.18273e+07 , 1.18736e+06 , 118764 , \n", "...best phi yet: 118764\n", "...number of consecutive bad lambda testing cycles: 0\n", "...number of iterations satisfying phiredstp criteria: 1\n", "...number of iterations since best yet mean phi: 0\n", "\n", " --- starting solve for iteration: 6 --- \n", "...current lambda: 237305\n", "...starting calcs for glm factor 23730.5\n", "...finished calcs for: 23730.5\n", "...starting calcs for glm factor 237305\n", "...finished calcs for: 237305\n", "...starting calcs for glm factor 2.37305e+06\n", "...finished calcs for: 2.37305e+06\n", "\n", " --- running upgrade ensembles --- \n", "...subset idx:pe real name: 0:BASE, 23:210, 31:19, 36:58, 43:222, 46:249, 78:113, 80:174, 86:2, 99:24, 119:59, 121:63, 139:88, 157:115, 176:142, 182:149, 194:164, 198:169, 204:177, 209:189, 213:197, 226:215, 228:217, 233:224, 235:226, \n", "...subset idx:oe real name: 0:BASE, 23:210, 31:19, 36:58, 43:222, 46:249, 78:113, 80:174, 86:2, 99:24, 119:59, 121:63, 139:88, 157:115, 176:142, 182:149, 194:164, 198:169, 204:177, 209:189, 213:197, 226:215, 228:217, 233:224, 235:226, \n", " running model 225 times\n", " starting at 09/30/25 16:31:32\n", " 8 agents ready\n", "\n", "\n", "PANTHER progress\n", " avg = average model run time in minutes\n", " runs(C = completed | F = failed | T = timed out)\n", " agents(R = running | W = waiting | U = unavailable)\n", "--------------------------------------------------------------------------------\n", "09/30 16:31:39 remaining file transfers: 0 \n", "\n", " 225 runs complete : 0 runs failed\n", " 0.00348 avg run time (min) : 0.119 run mgr time (min)\n", " 8 agents connected\n", "\n", "\n", "\n", " --- evaluating upgrade ensembles --- \n", "...last mean: 118764\n", "...last stdev: 100668\n", "\n", " --- phi summary for best lambda, scale fac: 23730.5 , 1.1 , --- \n", " phi type mean std min max\n", " actual 6630.3 5877.41 277.283 22635.5\n", "\n", " --- running remaining realizations for best lambda, scale:23730.5 , 1.1 , --- \n", " running model 226 times\n", " starting at 09/30/25 16:31:39\n", " 8 agents ready\n", "\n", "\n", "PANTHER progress\n", " avg = average model run time in minutes\n", " runs(C = completed | F = failed | T = timed out)\n", " agents(R = running | W = waiting | U = unavailable)\n", "--------------------------------------------------------------------------------\n", "09/30 16:31:46 remaining file transfers: 0 \n", "\n", " 226 runs complete : 0 runs failed\n", " 0.00347 avg run time (min) : 0.118 run mgr time (min)\n", " 8 agents connected\n", "\n", "\n", "...phi summary for entire ensemble using lambda,scale_fac 23730.5 , 1.1 , \n", " phi type mean std min max\n", " actual 7115.86 6029.62 127.667 27170.1\n", "...last best mean phi * acceptable phi factor: 124702\n", "...current best mean phi: 7115.86\n", "\n", " --- updating parameter ensemble --- \n", "\n", " --- updating lambda to 17797.9 --- \n", "\n", " --- EnsembleMethod iteration 6 report --- \n", " number of active realizations: 251\n", " number of model runs: 2731\n", " current obs ensemble saved to pest.6.obs.csv\n", " current par ensemble saved to pest.6.par.csv\n", "saved par and rei files for realization BASE for iteration 6\n", "saved par and rei files for realization BASE\n", " phi type mean std min max\n", " actual 7115.86 6029.62 127.667 27170.1\n", " --- observation group phi summary --- \n", " (computed using 'actual' phi)\n", " (sorted by mean phi)\n", "group count nconflict mean std min max percent std\n", "oname:simulation.csv_otype:lst_usecol:observations 101 0 7.12e+03 6.03e+03 128 2.72e+04 100 3.14e-14\n", " Note: 'percent' is the percentage of the actual phi for each realization.\n", "\n", "\n", " --- parameter group change summmary --- \n", "group count mean chg std chg n at ubnd % at ubnd n at lbnd % at lbnd n std decr\n", "optimal 2 7.695 100 0 0 0 0 2\n", " Note: parameter change summary sorted according to percent at bounds.\n", " Note: the parameter change statistics implicitly include the effect of \n", " realizations that have failed or have been dropped.\n", " Note: the 'n std decr' is the number of parameters with current\n", " std less 5% of their initial std.\n", "\n", "...saved parameter change summary to pest.6.pcs.csv\n", "\n", " --- phi-based termination criteria check --- \n", "...phiredstp: 0.01\n", "...nphistp: 3\n", "...nphinored (also used for consecutive bad lambda cycles): 3\n", "...best mean phi sequence: 1.60074e+14 , 2.1435e+07 , 2.1297e+07 , 1.18273e+07 , 1.18736e+06 , 118764 , 7115.86 , \n", " \n", "...best phi yet: 7115.86\n", "...number of consecutive bad lambda testing cycles: 0\n", "...number of iterations satisfying phiredstp criteria: 1\n", "...number of iterations since best yet mean phi: 0\n", "\n", " --- starting solve for iteration: 7 --- \n", "...current lambda: 17797.9\n", "...starting calcs for glm factor 1779.79\n", "...finished calcs for: 1779.79\n", "...starting calcs for glm factor 17797.9\n", "...finished calcs for: 17797.9\n", "...starting calcs for glm factor 177979\n", "...finished calcs for: 177979\n", "\n", " --- running upgrade ensembles --- \n", "...subset idx:pe real name: 0:BASE, 8:2, 29:121, 30:208, 42:162, 53:18, 67:6, 77:167, 78:176, 82:231, 94:94, 107:11, 111:20, 117:29, 132:55, 143:78, 151:87, 159:99, 165:107, 167:110, 199:159, 217:194, 237:228, 247:244, 248:245, \n", "...subset idx:oe real name: 0:BASE, 8:2, 29:121, 30:208, 42:162, 53:18, 67:6, 77:167, 78:176, 82:231, 94:94, 107:11, 111:20, 117:29, 132:55, 143:78, 151:87, 159:99, 165:107, 167:110, 199:159, 217:194, 237:228, 247:244, 248:245, \n", " running model 225 times\n", " starting at 09/30/25 16:31:47\n", " 8 agents ready\n", "\n", "\n", "PANTHER progress\n", " avg = average model run time in minutes\n", " runs(C = completed | F = failed | T = timed out)\n", " agents(R = running | W = waiting | U = unavailable)\n", "--------------------------------------------------------------------------------\n", "09/30 16:31:54 remaining file transfers: 0 \n", "\n", " 225 runs complete : 0 runs failed\n", " 0.00347 avg run time (min) : 0.119 run mgr time (min)\n", " 8 agents connected\n", "\n", "\n", "\n", " --- evaluating upgrade ensembles --- \n", "...last mean: 7115.86\n", "...last stdev: 6029.62\n", "\n", " --- phi summary for best lambda, scale fac: 1779.79 , 1.1 , --- \n", " phi type mean std min max\n", " actual 647.234 590.031 80.227 2404.8\n", "\n", " --- running remaining realizations for best lambda, scale:1779.79 , 1.1 , --- \n", " running model 226 times\n", " starting at 09/30/25 16:31:54\n", " 8 agents ready\n", "\n", "\n", "PANTHER progress\n", " avg = average model run time in minutes\n", " runs(C = completed | F = failed | T = timed out)\n", " agents(R = running | W = waiting | U = unavailable)\n", "--------------------------------------------------------------------------------\n", "09/30 16:32:02 remaining file transfers: 0 \n", "\n", " 226 runs complete : 0 runs failed\n", " 0.00348 avg run time (min) : 0.142 run mgr time (min)\n", " 8 agents connected\n", "\n", "\n", "...phi summary for entire ensemble using lambda,scale_fac 1779.79 , 1.1 , \n", " phi type mean std min max\n", " actual 641.024 543.296 11.6816 2404.8\n", "...last best mean phi * acceptable phi factor: 7471.65\n", "...current best mean phi: 641.024\n", "\n", " --- updating parameter ensemble --- \n", "\n", " --- updating lambda to 1334.84 --- \n", "\n", " --- EnsembleMethod iteration 7 report --- \n", " number of active realizations: 251\n", " number of model runs: 3182\n", " current obs ensemble saved to pest.7.obs.csv\n", " current par ensemble saved to pest.7.par.csv\n", "saved par and rei files for realization BASE for iteration 7\n", "saved par and rei files for realization BASE\n", " phi type mean std min max\n", " actual 641.024 543.296 11.6816 2404.8\n", " --- observation group phi summary --- \n", " (computed using 'actual' phi)\n", " (sorted by mean phi)\n", "group count nconflict mean std min max percent std\n", "oname:simulation.csv_otype:lst_usecol:observations 101 0 641 543 11.7 2.4e+03 100 3.17e-14\n", " Note: 'percent' is the percentage of the actual phi for each realization.\n", "\n", "\n", " --- parameter group change summmary --- \n", "group count mean chg std chg n at ubnd % at ubnd n at lbnd % at lbnd n std decr\n", "optimal 2 7.695 100 0 0 0 0 2\n", " Note: parameter change summary sorted according to percent at bounds.\n", " Note: the parameter change statistics implicitly include the effect of \n", " realizations that have failed or have been dropped.\n", " Note: the 'n std decr' is the number of parameters with current\n", " std less 5% of their initial std.\n", "\n", "...saved parameter change summary to pest.7.pcs.csv\n", "\n", " --- phi-based termination criteria check --- \n", "...phiredstp: 0.01\n", "...nphistp: 3\n", "...nphinored (also used for consecutive bad lambda cycles): 3\n", "...best mean phi sequence: 1.60074e+14 , 2.1435e+07 , 2.1297e+07 , 1.18273e+07 , 1.18736e+06 , 118764 , 7115.86 , \n", " 641.024 , \n", "...best phi yet: 641.024\n", "...number of consecutive bad lambda testing cycles: 0\n", "...number of iterations satisfying phiredstp criteria: 1\n", "...number of iterations since best yet mean phi: 0\n", "\n", " --- starting solve for iteration: 8 --- \n", "...current lambda: 1334.84\n", "...starting calcs for glm factor 133.484\n", "...finished calcs for: 133.484\n", "...starting calcs for glm factor 1334.84\n", "...finished calcs for: 1334.84\n", "...starting calcs for glm factor 13348.4\n", "...finished calcs for: 13348.4\n", "\n", " --- running upgrade ensembles --- \n", "...subset idx:pe real name: 0:BASE, 4:162, 18:107, 29:249, 34:63, 59:119, 62:131, 86:37, 92:74, 98:234, 111:148, 136:44, 145:67, 165:96, 177:120, 180:125, 184:134, 199:153, 216:182, 217:184, 229:209, 232:214, 236:221, 238:225, 243:235, \n", "...subset idx:oe real name: 0:BASE, 4:162, 18:107, 29:249, 34:63, 59:119, 62:131, 86:37, 92:74, 98:234, 111:148, 136:44, 145:67, 165:96, 177:120, 180:125, 184:134, 199:153, 216:182, 217:184, 229:209, 232:214, 236:221, 238:225, 243:235, \n", " running model 225 times\n", " starting at 09/30/25 16:32:02\n", " 8 agents ready\n", "\n", "\n", "PANTHER progress\n", " avg = average model run time in minutes\n", " runs(C = completed | F = failed | T = timed out)\n", " agents(R = running | W = waiting | U = unavailable)\n", "--------------------------------------------------------------------------------\n", "09/30 16:32:09 remaining file transfers: 0 \n", "\n", " 225 runs complete : 0 runs failed\n", " 0.00348 avg run time (min) : 0.119 run mgr time (min)\n", " 8 agents connected\n", "\n", "\n", "\n", " --- evaluating upgrade ensembles --- \n", "...last mean: 641.024\n", "...last stdev: 543.296\n", "\n", " --- phi summary for best lambda, scale fac: 133.484 , 1.1 , --- \n", " phi type mean std min max\n", " actual 40.5491 32.7423 2.27263 134.003\n", "\n", " --- running remaining realizations for best lambda, scale:133.484 , 1.1 , --- \n", " running model 226 times\n", " starting at 09/30/25 16:32:09\n", " 8 agents ready\n", "\n", "\n", "PANTHER progress\n", " avg = average model run time in minutes\n", " runs(C = completed | F = failed | T = timed out)\n", " agents(R = running | W = waiting | U = unavailable)\n", "--------------------------------------------------------------------------------\n", "09/30 16:32:17 remaining file transfers: 0 \n", "\n", " 226 runs complete : 0 runs failed\n", " 0.00348 avg run time (min) : 0.118 run mgr time (min)\n", " 8 agents connected\n", "\n", "\n", "...phi summary for entire ensemble using lambda,scale_fac 133.484 , 1.1 , \n", " phi type mean std min max\n", " actual 42.1442 35.7113 0.758832 160.274\n", "...last best mean phi * acceptable phi factor: 673.076\n", "...current best mean phi: 42.1442\n", "\n", " --- updating parameter ensemble --- \n", "\n", " --- updating lambda to 100.113 --- \n", "\n", " --- EnsembleMethod iteration 8 report --- \n", " number of active realizations: 251\n", " number of model runs: 3633\n", " current obs ensemble saved to pest.8.obs.csv\n", " current par ensemble saved to pest.8.par.csv\n", "saved par and rei files for realization BASE for iteration 8\n", "saved par and rei files for realization BASE\n", " phi type mean std min max\n", " actual 42.1442 35.7113 0.758832 160.274\n", " --- observation group phi summary --- \n", " (computed using 'actual' phi)\n", " (sorted by mean phi)\n", "group count nconflict mean std min max percent std\n", "oname:simulation.csv_otype:lst_usecol:observations 101 0 42.1 35.7 0.759 160 100 3.41e-14\n", " Note: 'percent' is the percentage of the actual phi for each realization.\n", "\n", "\n", " --- parameter group change summmary --- \n", "group count mean chg std chg n at ubnd % at ubnd n at lbnd % at lbnd n std decr\n", "optimal 2 7.695 100 0 0 0 0 2\n", " Note: parameter change summary sorted according to percent at bounds.\n", " Note: the parameter change statistics implicitly include the effect of \n", " realizations that have failed or have been dropped.\n", " Note: the 'n std decr' is the number of parameters with current\n", " std less 5% of their initial std.\n", "\n", "...saved parameter change summary to pest.8.pcs.csv\n", "\n", " --- phi-based termination criteria check --- \n", "...phiredstp: 0.01\n", "...nphistp: 3\n", "...nphinored (also used for consecutive bad lambda cycles): 3\n", "...best mean phi sequence: 1.60074e+14 , 2.1435e+07 , 2.1297e+07 , 1.18273e+07 , 1.18736e+06 , 118764 , 7115.86 , \n", " 641.024 , 42.1442 , \n", "...best phi yet: 42.1442\n", "...number of consecutive bad lambda testing cycles: 0\n", "...number of iterations satisfying phiredstp criteria: 1\n", "...number of iterations since best yet mean phi: 0\n", "\n", " --- starting solve for iteration: 9 --- \n", "...current lambda: 100.113\n", "...starting calcs for glm factor 10.0113\n", "...finished calcs for: 10.0113\n", "...starting calcs for glm factor 100.113\n", "...finished calcs for: 100.113\n", "...starting calcs for glm factor 1001.13\n", "...finished calcs for: 1001.13\n", "\n", " --- running upgrade ensembles --- \n", "...subset idx:pe real name: 0:BASE, 22:221, 96:130, 110:154, 115:0, 117:3, 122:73, 133:8, 138:21, 142:28, 162:75, 168:82, 176:95, 179:103, 187:118, 191:132, 193:135, 197:139, 206:152, 207:155, 208:156, 217:170, 223:185, 231:205, 250:248, \n", "...subset idx:oe real name: 0:BASE, 22:221, 96:130, 110:154, 115:0, 117:3, 122:73, 133:8, 138:21, 142:28, 162:75, 168:82, 176:95, 179:103, 187:118, 191:132, 193:135, 197:139, 206:152, 207:155, 208:156, 217:170, 223:185, 231:205, 250:248, \n", " running model 225 times\n", " starting at 09/30/25 16:32:17\n", " 8 agents ready\n", "\n", "\n", "PANTHER progress\n", " avg = average model run time in minutes\n", " runs(C = completed | F = failed | T = timed out)\n", " agents(R = running | W = waiting | U = unavailable)\n", "--------------------------------------------------------------------------------\n", "09/30 16:32:24 remaining file transfers: 0 \n", "\n", " 225 runs complete : 0 runs failed\n", " 0.00347 avg run time (min) : 0.119 run mgr time (min)\n", " 8 agents connected\n", "\n", "\n", "\n", " --- evaluating upgrade ensembles --- \n", "...last mean: 42.1442\n", "...last stdev: 35.7113\n", "\n", " --- phi summary for best lambda, scale fac: 10.0113 , 1.1 , --- \n", " phi type mean std min max\n", " actual 3.38058 3.53275 0.353704 12.5861\n", "\n", " --- running remaining realizations for best lambda, scale:10.0113 , 1.1 , --- \n", " running model 226 times\n", " starting at 09/30/25 16:32:24\n", " 8 agents ready\n", "\n", "\n", "PANTHER progress\n", " avg = average model run time in minutes\n", " runs(C = completed | F = failed | T = timed out)\n", " agents(R = running | W = waiting | U = unavailable)\n", "--------------------------------------------------------------------------------\n", "09/30 16:32:31 remaining file transfers: 0 \n", "\n", " 226 runs complete : 0 runs failed\n", " 0.0035 avg run time (min) : 0.118 run mgr time (min)\n", " 8 agents connected\n", "\n", "\n", "...phi summary for entire ensemble using lambda,scale_fac 10.0113 , 1.1 , \n", " phi type mean std min max\n", " actual 4.08077 3.45838 0.0741646 15.3564\n", "...last best mean phi * acceptable phi factor: 44.2514\n", "...current best mean phi: 4.08077\n", "\n", " --- updating parameter ensemble --- \n", "\n", " --- updating lambda to 7.50847 --- \n", "\n", " --- EnsembleMethod iteration 9 report --- \n", " number of active realizations: 251\n", " number of model runs: 4084\n", " current obs ensemble saved to pest.9.obs.csv\n", " current par ensemble saved to pest.9.par.csv\n", "saved par and rei files for realization BASE for iteration 9\n", "saved par and rei files for realization BASE\n", " phi type mean std min max\n", " actual 4.08077 3.45838 0.0741646 15.3564\n", " --- observation group phi summary --- \n", " (computed using 'actual' phi)\n", " (sorted by mean phi)\n", "group count nconflict mean std min max percent std\n", "oname:simulation.csv_otype:lst_usecol:observations 101 0 4.08 3.46 0.0742 15.4 100 3.1e-14\n", " Note: 'percent' is the percentage of the actual phi for each realization.\n", "\n", "\n", " --- parameter group change summmary --- \n", "group count mean chg std chg n at ubnd % at ubnd n at lbnd % at lbnd n std decr\n", "optimal 2 7.695 100 0 0 0 0 2\n", " Note: parameter change summary sorted according to percent at bounds.\n", " Note: the parameter change statistics implicitly include the effect of \n", " realizations that have failed or have been dropped.\n", " Note: the 'n std decr' is the number of parameters with current\n", " std less 5% of their initial std.\n", "\n", "...saved parameter change summary to pest.9.pcs.csv\n", "\n", " --- phi-based termination criteria check --- \n", "...phiredstp: 0.01\n", "...nphistp: 3\n", "...nphinored (also used for consecutive bad lambda cycles): 3\n", "...best mean phi sequence: 1.60074e+14 , 2.1435e+07 , 2.1297e+07 , 1.18273e+07 , 1.18736e+06 , 118764 , 7115.86 , \n", " 641.024 , 42.1442 , 4.08077 , \n", "...best phi yet: 4.08077\n", "...number of consecutive bad lambda testing cycles: 0\n", "...number of iterations satisfying phiredstp criteria: 1\n", "...number of iterations since best yet mean phi: 0\n", "\n", " --- starting solve for iteration: 10 --- \n", "...current lambda: 7.50847\n", "...starting calcs for glm factor 0.750847\n", "...finished calcs for: 0.750847\n", "...starting calcs for glm factor 7.50847\n", "...finished calcs for: 7.50847\n", "...starting calcs for glm factor 75.0847\n", "...finished calcs for: 75.0847\n", "\n", " --- running upgrade ensembles --- \n", "...subset idx:pe real name: 0:BASE, 2:130, 32:74, 46:225, 48:2, 59:29, 68:244, 90:226, 96:53, 107:195, 125:127, 138:32, 168:48, 170:52, 178:77, 181:81, 183:84, 203:137, 211:147, 223:173, 228:198, 232:204, 236:212, 241:227, 250:246, \n", "...subset idx:oe real name: 0:BASE, 2:130, 32:74, 46:225, 48:2, 59:29, 68:244, 90:226, 96:53, 107:195, 125:127, 138:32, 168:48, 170:52, 178:77, 181:81, 183:84, 203:137, 211:147, 223:173, 228:198, 232:204, 236:212, 241:227, 250:246, \n", " running model 225 times\n", " starting at 09/30/25 16:32:31\n", " 8 agents ready\n", "\n", "\n", "PANTHER progress\n", " avg = average model run time in minutes\n", " runs(C = completed | F = failed | T = timed out)\n", " agents(R = running | W = waiting | U = unavailable)\n", "--------------------------------------------------------------------------------\n", "09/30 16:32:40 remaining file transfers: 0 \n", "\n", " 225 runs complete : 0 runs failed\n", " 0.00347 avg run time (min) : 0.142 run mgr time (min)\n", " 8 agents connected\n", "\n", "\n", "\n", " --- evaluating upgrade ensembles --- \n", "...last mean: 4.08077\n", "...last stdev: 3.45838\n", "\n", " --- phi summary for best lambda, scale fac: 0.750847 , 1.1 , --- \n", " phi type mean std min max\n", " actual 0.615101 0.520062 0.0145871 2.08436\n", "\n", " --- running remaining realizations for best lambda, scale:0.750847 , 1.1 , --- \n", " running model 226 times\n", " starting at 09/30/25 16:32:40\n", " 8 agents ready\n", "\n", "\n", "PANTHER progress\n", " avg = average model run time in minutes\n", " runs(C = completed | F = failed | T = timed out)\n", " agents(R = running | W = waiting | U = unavailable)\n", "--------------------------------------------------------------------------------\n", "09/30 16:32:47 remaining file transfers: 0 \n", "\n", " 226 runs complete : 0 runs failed\n", " 0.00347 avg run time (min) : 0.118 run mgr time (min)\n", " 8 agents connected\n", "\n", "\n", "...phi summary for entire ensemble using lambda,scale_fac 0.750847 , 1.1 , \n", " phi type mean std min max\n", " actual 0.806288 0.683255 0.0145871 3.04989\n", "...last best mean phi * acceptable phi factor: 4.2848\n", "...current best mean phi: 0.806288\n", "\n", " --- updating parameter ensemble --- \n", "\n", " --- updating lambda to 0.563135 --- \n", "\n", " --- EnsembleMethod iteration 10 report --- \n", " number of active realizations: 251\n", " number of model runs: 4535\n", " current obs ensemble saved to pest.10.obs.csv\n", " current par ensemble saved to pest.10.par.csv\n", "saved par and rei files for realization BASE for iteration 10\n", "saved par and rei files for realization BASE\n", " phi type mean std min max\n", " actual 0.806288 0.683255 0.0145871 3.04989\n", " --- observation group phi summary --- \n", " (computed using 'actual' phi)\n", " (sorted by mean phi)\n", "group count nconflict mean std min max percent std\n", "oname:simulation.csv_otype:lst_usecol:observations 101 0 0.806 0.683 0.0146 3.05 100 3.23e-14\n", " Note: 'percent' is the percentage of the actual phi for each realization.\n", "\n", "\n", " --- parameter group change summmary --- \n", "group count mean chg std chg n at ubnd % at ubnd n at lbnd % at lbnd n std decr\n", "optimal 2 7.695 100 0 0 0 0 2\n", " Note: parameter change summary sorted according to percent at bounds.\n", " Note: the parameter change statistics implicitly include the effect of \n", " realizations that have failed or have been dropped.\n", " Note: the 'n std decr' is the number of parameters with current\n", " std less 5% of their initial std.\n", "\n", "...saved parameter change summary to pest.10.pcs.csv\n", "\n", " --- phi-based termination criteria check --- \n", "...phiredstp: 0.01\n", "...nphistp: 3\n", "...nphinored (also used for consecutive bad lambda cycles): 3\n", "...best mean phi sequence: 1.60074e+14 , 2.1435e+07 , 2.1297e+07 , 1.18273e+07 , 1.18736e+06 , 118764 , 7115.86 , \n", " 641.024 , 42.1442 , 4.08077 , 0.806288 , \n", "...best phi yet: 0.806288\n", "...number of consecutive bad lambda testing cycles: 0\n", "...number of iterations satisfying phiredstp criteria: 1\n", "...number of iterations since best yet mean phi: 0\n", "\n", " --- starting solve for iteration: 11 --- \n", "...current lambda: 0.563135\n", "...starting calcs for glm factor 0.0563135\n", "...finished calcs for: 0.0563135\n", "...starting calcs for glm factor 0.563135\n", "...finished calcs for: 0.563135\n", "...starting calcs for glm factor 5.63135\n", "...finished calcs for: 5.63135\n", "\n", " --- running upgrade ensembles --- \n", "...subset idx:pe real name: 0:BASE, 3:225, 30:8, 36:103, 44:170, 49:107, 71:18, 82:99, 90:58, 99:149, 113:54, 115:92, 116:111, 118:124, 129:25, 133:100, 140:50, 160:230, 194:90, 195:91, 201:106, 222:161, 226:168, 230:181, 233:199, \n", "...subset idx:oe real name: 0:BASE, 3:225, 30:8, 36:103, 44:170, 49:107, 71:18, 82:99, 90:58, 99:149, 113:54, 115:92, 116:111, 118:124, 129:25, 133:100, 140:50, 160:230, 194:90, 195:91, 201:106, 222:161, 226:168, 230:181, 233:199, \n", " running model 225 times\n", " starting at 09/30/25 16:32:47\n", " 8 agents ready\n", "\n", "\n", "PANTHER progress\n", " avg = average model run time in minutes\n", " runs(C = completed | F = failed | T = timed out)\n", " agents(R = running | W = waiting | U = unavailable)\n", "--------------------------------------------------------------------------------\n", "09/30 16:32:54 remaining file transfers: 0 \n", "\n", " 225 runs complete : 0 runs failed\n", " 0.00348 avg run time (min) : 0.119 run mgr time (min)\n", " 8 agents connected\n", "\n", "\n", "\n", " --- evaluating upgrade ensembles --- \n", "...last mean: 0.806288\n", "...last stdev: 0.683255\n", "\n", " --- phi summary for best lambda, scale fac: 0.0563135 , 1.1 , --- \n", " phi type mean std min max\n", " actual 0.385404 0.345072 0.0362753 1.27547\n", "\n", " --- running remaining realizations for best lambda, scale:0.0563135 , 1.1 , --- \n", " running model 226 times\n", " starting at 09/30/25 16:32:54\n", " 8 agents ready\n", "\n", "\n", "PANTHER progress\n", " avg = average model run time in minutes\n", " runs(C = completed | F = failed | T = timed out)\n", " agents(R = running | W = waiting | U = unavailable)\n", "--------------------------------------------------------------------------------\n", "09/30 16:33:01 remaining file transfers: 0 \n", "\n", " 226 runs complete : 0 runs failed\n", " 0.00347 avg run time (min) : 0.118 run mgr time (min)\n", " 8 agents connected\n", "\n", "\n", "...phi summary for entire ensemble using lambda,scale_fac 0.0563135 , 1.1 , \n", " phi type mean std min max\n", " actual 0.423246 0.358665 0.00766105 1.60008\n", "...last best mean phi * acceptable phi factor: 0.846602\n", "...current best mean phi: 0.423246\n", "\n", " --- updating parameter ensemble --- \n", "\n", " --- updating lambda to 0.0422351 --- \n", "\n", " --- EnsembleMethod iteration 11 report --- \n", " number of active realizations: 251\n", " number of model runs: 4986\n", " current obs ensemble saved to pest.11.obs.csv\n", " current par ensemble saved to pest.11.par.csv\n", "saved par and rei files for realization BASE for iteration 11\n", "saved par and rei files for realization BASE\n", " phi type mean std min max\n", " actual 0.423246 0.358665 0.00766105 1.60008\n", " --- observation group phi summary --- \n", " (computed using 'actual' phi)\n", " (sorted by mean phi)\n", "group count nconflict mean std min max percent std\n", "oname:simulation.csv_otype:lst_usecol:observations 101 0 0.423 0.359 0.00766 1.6 100 3.31e-14\n", " Note: 'percent' is the percentage of the actual phi for each realization.\n", "\n", "\n", " --- parameter group change summmary --- \n", "group count mean chg std chg n at ubnd % at ubnd n at lbnd % at lbnd n std decr\n", "optimal 2 7.695 100 0 0 0 0 2\n", " Note: parameter change summary sorted according to percent at bounds.\n", " Note: the parameter change statistics implicitly include the effect of \n", " realizations that have failed or have been dropped.\n", " Note: the 'n std decr' is the number of parameters with current\n", " std less 5% of their initial std.\n", "\n", "...saved parameter change summary to pest.11.pcs.csv\n", "\n", " --- phi-based termination criteria check --- \n", "...phiredstp: 0.01\n", "...nphistp: 3\n", "...nphinored (also used for consecutive bad lambda cycles): 3\n", "...best mean phi sequence: 1.60074e+14 , 2.1435e+07 , 2.1297e+07 , 1.18273e+07 , 1.18736e+06 , 118764 , 7115.86 , \n", " 641.024 , 42.1442 , 4.08077 , 0.806288 , 0.423246 , \n", "...best phi yet: 0.423246\n", "...number of consecutive bad lambda testing cycles: 0\n", "...number of iterations satisfying phiredstp criteria: 1\n", "...number of iterations since best yet mean phi: 0\n", "\n", " --- starting solve for iteration: 12 --- \n", "...current lambda: 0.0422351\n", "...starting calcs for glm factor 0.00422351\n", "...finished calcs for: 0.00422351\n", "...starting calcs for glm factor 0.0422351\n", "...finished calcs for: 0.0422351\n", "...starting calcs for glm factor 0.422351\n", "...finished calcs for: 0.422351\n", "\n", " --- running upgrade ensembles --- \n", "...subset idx:pe real name: 0:BASE, 14:25, 38:81, 62:152, 88:121, 92:176, 110:24, 131:179, 135:180, 139:15, 158:1, 173:13, 174:17, 179:34, 185:45, 196:79, 200:89, 202:98, 211:123, 212:128, 216:140, 232:191, 235:203, 242:223, 245:233, \n", "...subset idx:oe real name: 0:BASE, 14:25, 38:81, 62:152, 88:121, 92:176, 110:24, 131:179, 135:180, 139:15, 158:1, 173:13, 174:17, 179:34, 185:45, 196:79, 200:89, 202:98, 211:123, 212:128, 216:140, 232:191, 235:203, 242:223, 245:233, \n", " running model 225 times\n", " starting at 09/30/25 16:33:01\n", " 8 agents ready\n", "\n", "\n", "PANTHER progress\n", " avg = average model run time in minutes\n", " runs(C = completed | F = failed | T = timed out)\n", " agents(R = running | W = waiting | U = unavailable)\n", "--------------------------------------------------------------------------------\n", "09/30 16:33:10 remaining file transfers: 0 \n", "\n", " 225 runs complete : 0 runs failed\n", " 0.00349 avg run time (min) : 0.144 run mgr time (min)\n", " 8 agents connected\n", "\n", "\n", "\n", " --- evaluating upgrade ensembles --- \n", "...last mean: 0.423246\n", "...last stdev: 0.358665\n", "\n", " --- phi summary for best lambda, scale fac: 0.00422351 , 1.1 , --- \n", " phi type mean std min max\n", " actual 0.302504 0.255076 0.00526158 0.87574\n", "\n", " --- running remaining realizations for best lambda, scale:0.00422351 , 1.1 , --- \n", " running model 226 times\n", " starting at 09/30/25 16:33:10\n", " 8 agents ready\n", "\n", "\n", "PANTHER progress\n", " avg = average model run time in minutes\n", " runs(C = completed | F = failed | T = timed out)\n", " agents(R = running | W = waiting | U = unavailable)\n", "--------------------------------------------------------------------------------\n", "09/30 16:33:17 remaining file transfers: 0 \n", "\n", " 226 runs complete : 0 runs failed\n", " 0.00348 avg run time (min) : 0.118 run mgr time (min)\n", " 8 agents connected\n", "\n", "\n", "...phi summary for entire ensemble using lambda,scale_fac 0.00422351 , 1.1 , \n", " phi type mean std min max\n", " actual 0.290646 0.246298 0.00526158 1.09862\n", "...last best mean phi * acceptable phi factor: 0.444409\n", "...current best mean phi: 0.290646\n", "\n", " --- updating parameter ensemble --- \n", "\n", " --- updating lambda to 0.00316764 --- \n", "\n", " --- EnsembleMethod iteration 12 report --- \n", " number of active realizations: 251\n", " number of model runs: 5437\n", " current obs ensemble saved to pest.12.obs.csv\n", " current par ensemble saved to pest.12.par.csv\n", "saved par and rei files for realization BASE for iteration 12\n", "saved par and rei files for realization BASE\n", " phi type mean std min max\n", " actual 0.290646 0.246298 0.00526158 1.09862\n", " --- observation group phi summary --- \n", " (computed using 'actual' phi)\n", " (sorted by mean phi)\n", "group count nconflict mean std min max percent std\n", "oname:simulation.csv_otype:lst_usecol:observations 101 0 0.291 0.246 0.00526 1.1 100 3.38e-14\n", " Note: 'percent' is the percentage of the actual phi for each realization.\n", "\n", "\n", " --- parameter group change summmary --- \n", "group count mean chg std chg n at ubnd % at ubnd n at lbnd % at lbnd n std decr\n", "optimal 2 7.695 100 0 0 0 0 2\n", " Note: parameter change summary sorted according to percent at bounds.\n", " Note: the parameter change statistics implicitly include the effect of \n", " realizations that have failed or have been dropped.\n", " Note: the 'n std decr' is the number of parameters with current\n", " std less 5% of their initial std.\n", "\n", "...saved parameter change summary to pest.12.pcs.csv\n", "\n", " --- phi-based termination criteria check --- \n", "...phiredstp: 0.01\n", "...nphistp: 3\n", "...nphinored (also used for consecutive bad lambda cycles): 3\n", "...best mean phi sequence: 1.60074e+14 , 2.1435e+07 , 2.1297e+07 , 1.18273e+07 , 1.18736e+06 , 118764 , 7115.86 , \n", " 641.024 , 42.1442 , 4.08077 , 0.806288 , 0.423246 , 0.290646 , \n", " \n", "...best phi yet: 0.290646\n", "...number of consecutive bad lambda testing cycles: 0\n", "...number of iterations satisfying phiredstp criteria: 1\n", "...number of iterations since best yet mean phi: 0\n", "\n", " --- starting solve for iteration: 13 --- \n", "...current lambda: 0.00316764\n", "...starting calcs for glm factor 0.000316764\n", "...finished calcs for: 0.000316764\n", "...starting calcs for glm factor 0.00316764\n", "...finished calcs for: 0.00316764\n", "...starting calcs for glm factor 0.0316764\n", "...finished calcs for: 0.0316764\n", "\n", " --- running upgrade ensembles --- \n", "...subset idx:pe real name: 0:BASE, 2:81, 6:24, 15:79, 30:18, 35:92, 61:84, 105:184, 116:55, 124:210, 125:19, 132:142, 141:43, 162:238, 165:60, 177:97, 179:178, 182:247, 198:49, 209:93, 221:141, 232:166, 240:211, 241:216, 250:243, \n", "...subset idx:oe real name: 0:BASE, 2:81, 6:24, 15:79, 30:18, 35:92, 61:84, 105:184, 116:55, 124:210, 125:19, 132:142, 141:43, 162:238, 165:60, 177:97, 179:178, 182:247, 198:49, 209:93, 221:141, 232:166, 240:211, 241:216, 250:243, \n", " running model 225 times\n", " starting at 09/30/25 16:33:17\n", " 8 agents ready\n", "\n", "\n", "PANTHER progress\n", " avg = average model run time in minutes\n", " runs(C = completed | F = failed | T = timed out)\n", " agents(R = running | W = waiting | U = unavailable)\n", "--------------------------------------------------------------------------------\n", "09/30 16:33:24 remaining file transfers: 0 \n", "\n", " 225 runs complete : 0 runs failed\n", " 0.00348 avg run time (min) : 0.119 run mgr time (min)\n", " 8 agents connected\n", "\n", "\n", "\n", " --- evaluating upgrade ensembles --- \n", "...last mean: 0.290646\n", "...last stdev: 0.246298\n", "\n", " --- phi summary for best lambda, scale fac: 0.000316764 , 1.1 , --- \n", " phi type mean std min max\n", " actual 0.208379 0.170986 0.00403683 0.654783\n", "\n", " --- running remaining realizations for best lambda, scale:0.000316764 , 1.1 , --- \n", " running model 226 times\n", " starting at 09/30/25 16:33:24\n", " 8 agents ready\n", "\n", "\n", "PANTHER progress\n", " avg = average model run time in minutes\n", " runs(C = completed | F = failed | T = timed out)\n", " agents(R = running | W = waiting | U = unavailable)\n", "--------------------------------------------------------------------------------\n", "09/30 16:33:31 remaining file transfers: 0 \n", "\n", " 226 runs complete : 0 runs failed\n", " 0.00348 avg run time (min) : 0.118 run mgr time (min)\n", " 8 agents connected\n", "\n", "\n", "...phi summary for entire ensemble using lambda,scale_fac 0.000316764 , 1.1 , \n", " phi type mean std min max\n", " actual 0.222978 0.188955 0.00403683 0.842784\n", "...last best mean phi * acceptable phi factor: 0.305178\n", "...current best mean phi: 0.222978\n", "\n", " --- updating parameter ensemble --- \n", "\n", " --- updating lambda to 0.000237573 --- \n", "\n", " --- EnsembleMethod iteration 13 report --- \n", " number of active realizations: 251\n", " number of model runs: 5888\n", " current obs ensemble saved to pest.13.obs.csv\n", " current par ensemble saved to pest.13.par.csv\n", "saved par and rei files for realization BASE for iteration 13\n", "saved par and rei files for realization BASE\n", " phi type mean std min max\n", " actual 0.222978 0.188955 0.00403683 0.842784\n", " --- observation group phi summary --- \n", " (computed using 'actual' phi)\n", " (sorted by mean phi)\n", "group count nconflict mean std min max percent std\n", "oname:simulation.csv_otype:lst_usecol:observations 101 0 0.223 0.189 0.00404 0.843 100 3.26e-14\n", " Note: 'percent' is the percentage of the actual phi for each realization.\n", "\n", "\n", " --- parameter group change summmary --- \n", "group count mean chg std chg n at ubnd % at ubnd n at lbnd % at lbnd n std decr\n", "optimal 2 7.695 100 0 0 0 0 2\n", " Note: parameter change summary sorted according to percent at bounds.\n", " Note: the parameter change statistics implicitly include the effect of \n", " realizations that have failed or have been dropped.\n", " Note: the 'n std decr' is the number of parameters with current\n", " std less 5% of their initial std.\n", "\n", "...saved parameter change summary to pest.13.pcs.csv\n", "\n", " --- phi-based termination criteria check --- \n", "...phiredstp: 0.01\n", "...nphistp: 3\n", "...nphinored (also used for consecutive bad lambda cycles): 3\n", "...best mean phi sequence: 1.60074e+14 , 2.1435e+07 , 2.1297e+07 , 1.18273e+07 , 1.18736e+06 , 118764 , 7115.86 , \n", " 641.024 , 42.1442 , 4.08077 , 0.806288 , 0.423246 , 0.290646 , \n", " 0.222978 , \n", "...best phi yet: 0.222978\n", "...number of consecutive bad lambda testing cycles: 0\n", "...number of iterations satisfying phiredstp criteria: 1\n", "...number of iterations since best yet mean phi: 0\n", "\n", " --- starting solve for iteration: 14 --- \n", "...current lambda: 0.000237573\n", "...starting calcs for glm factor 2.37573e-05\n", "...finished calcs for: 2.37573e-05\n", "...starting calcs for glm factor 0.000237573\n", "...finished calcs for: 0.000237573\n", "...starting calcs for glm factor 0.00237573\n", "...finished calcs for: 0.00237573\n", "\n", " --- running upgrade ensembles --- \n", "...subset idx:pe real name: 0:BASE, 1:81, 5:92, 31:15, 36:45, 37:89, 53:149, 55:111, 57:100, 69:2, 76:32, 82:173, 101:139, 102:155, 103:156, 116:67, 133:78, 146:164, 156:14, 172:190, 198:35, 208:70, 210:72, 214:85, 217:105, \n", "...subset idx:oe real name: 0:BASE, 1:81, 5:92, 31:15, 36:45, 37:89, 53:149, 55:111, 57:100, 69:2, 76:32, 82:173, 101:139, 102:155, 103:156, 116:67, 133:78, 146:164, 156:14, 172:190, 198:35, 208:70, 210:72, 214:85, 217:105, \n", " running model 225 times\n", " starting at 09/30/25 16:33:31\n", " 8 agents ready\n", "\n", "\n", "PANTHER progress\n", " avg = average model run time in minutes\n", " runs(C = completed | F = failed | T = timed out)\n", " agents(R = running | W = waiting | U = unavailable)\n", "--------------------------------------------------------------------------------\n", "09/30 16:33:38 remaining file transfers: 0 \n", "\n", " 225 runs complete : 0 runs failed\n", " 0.00348 avg run time (min) : 0.119 run mgr time (min)\n", " 8 agents connected\n", "\n", "\n", "\n", " --- evaluating upgrade ensembles --- \n", "...last mean: 0.222978\n", "...last stdev: 0.188955\n", "\n", " --- phi summary for best lambda, scale fac: 2.37573e-05 , 1.1 , --- \n", " phi type mean std min max\n", " actual 0.168828 0.163637 0.00328587 0.685952\n", "\n", " --- running remaining realizations for best lambda, scale:2.37573e-05 , 1.1 , --- \n", " running model 226 times\n", " starting at 09/30/25 16:33:38\n", " 8 agents ready\n", "\n", "\n", "PANTHER progress\n", " avg = average model run time in minutes\n", " runs(C = completed | F = failed | T = timed out)\n", " agents(R = running | W = waiting | U = unavailable)\n", "--------------------------------------------------------------------------------\n", "09/30 16:33:47 remaining file transfers: 0 \n", "\n", " 226 runs complete : 0 runs failed\n", " 0.00346 avg run time (min) : 0.143 run mgr time (min)\n", " 8 agents connected\n", "\n", "\n", "...phi summary for entire ensemble using lambda,scale_fac 2.37573e-05 , 1.1 , \n", " phi type mean std min max\n", " actual 0.181492 0.153799 0.00328587 0.685952\n", "...last best mean phi * acceptable phi factor: 0.234127\n", "...current best mean phi: 0.181492\n", "\n", " --- updating parameter ensemble --- \n", "\n", " --- updating lambda to 1.78179e-05 --- \n", "\n", " --- EnsembleMethod iteration 14 report --- \n", " number of active realizations: 251\n", " number of model runs: 6339\n", " current obs ensemble saved to pest.14.obs.csv\n", " current par ensemble saved to pest.14.par.csv\n", "saved par and rei files for realization BASE for iteration 14\n", "saved par and rei files for realization BASE\n", " phi type mean std min max\n", " actual 0.181492 0.153799 0.00328587 0.685952\n", " --- observation group phi summary --- \n", " (computed using 'actual' phi)\n", " (sorted by mean phi)\n", "group count nconflict mean std min max percent std\n", "oname:simulation.csv_otype:lst_usecol:observations 101 0 0.181 0.154 0.00329 0.686 100 3.26e-14\n", " Note: 'percent' is the percentage of the actual phi for each realization.\n", "\n", "\n", " --- parameter group change summmary --- \n", "group count mean chg std chg n at ubnd % at ubnd n at lbnd % at lbnd n std decr\n", "optimal 2 7.695 100 0 0 0 0 2\n", " Note: parameter change summary sorted according to percent at bounds.\n", " Note: the parameter change statistics implicitly include the effect of \n", " realizations that have failed or have been dropped.\n", " Note: the 'n std decr' is the number of parameters with current\n", " std less 5% of their initial std.\n", "\n", "...saved parameter change summary to pest.14.pcs.csv\n", "\n", " --- phi-based termination criteria check --- \n", "...phiredstp: 0.01\n", "...nphistp: 3\n", "...nphinored (also used for consecutive bad lambda cycles): 3\n", "...best mean phi sequence: 1.60074e+14 , 2.1435e+07 , 2.1297e+07 , 1.18273e+07 , 1.18736e+06 , 118764 , 7115.86 , \n", " 641.024 , 42.1442 , 4.08077 , 0.806288 , 0.423246 , 0.290646 , \n", " 0.222978 , 0.181492 , \n", "...best phi yet: 0.181492\n", "...number of consecutive bad lambda testing cycles: 0\n", "...number of iterations satisfying phiredstp criteria: 1\n", "...number of iterations since best yet mean phi: 0\n", "\n", " --- starting solve for iteration: 15 --- \n", "...current lambda: 1.78179e-05\n", "...starting calcs for glm factor 1.78179e-06\n", "...finished calcs for: 1.78179e-06\n", "...starting calcs for glm factor 1.78179e-05\n", "...finished calcs for: 1.78179e-05\n", "...starting calcs for glm factor 0.000178179\n", "...finished calcs for: 0.000178179\n", "\n", " --- running upgrade ensembles --- \n", "...subset idx:pe real name: 0:BASE, 6:149, 7:111, 24:105, 39:247, 40:49, 45:216, 60:140, 75:230, 78:106, 87:226, 95:147, 102:154, 110:95, 112:132, 121:131, 128:125, 179:240, 186:200, 194:201, 197:10, 206:42, 217:104, 218:108, 221:117, \n", "...subset idx:oe real name: 0:BASE, 6:149, 7:111, 24:105, 39:247, 40:49, 45:216, 60:140, 75:230, 78:106, 87:226, 95:147, 102:154, 110:95, 112:132, 121:131, 128:125, 179:240, 186:200, 194:201, 197:10, 206:42, 217:104, 218:108, 221:117, \n", " running model 225 times\n", " starting at 09/30/25 16:33:47\n", " 8 agents ready\n", "\n", "\n", "PANTHER progress\n", " avg = average model run time in minutes\n", " runs(C = completed | F = failed | T = timed out)\n", " agents(R = running | W = waiting | U = unavailable)\n", "--------------------------------------------------------------------------------\n", "09/30 16:33:54 remaining file transfers: 0 \n", "\n", " 225 runs complete : 0 runs failed\n", " 0.00348 avg run time (min) : 0.119 run mgr time (min)\n", " 8 agents connected\n", "\n", "\n", "\n", " --- evaluating upgrade ensembles --- \n", "...last mean: 0.181492\n", "...last stdev: 0.153799\n", "\n", " --- phi summary for best lambda, scale fac: 1.78179e-06 , 1.1 , --- \n", " phi type mean std min max\n", " actual 0.119942 0.139144 0.00357061 0.471697\n", "\n", " --- running remaining realizations for best lambda, scale:1.78179e-06 , 1.1 , --- \n", " running model 226 times\n", " starting at 09/30/25 16:33:54\n", " 8 agents ready\n", "\n", "\n", "PANTHER progress\n", " avg = average model run time in minutes\n", " runs(C = completed | F = failed | T = timed out)\n", " agents(R = running | W = waiting | U = unavailable)\n", "--------------------------------------------------------------------------------\n", "09/30 16:34:01 remaining file transfers: 0 \n", "\n", " 226 runs complete : 0 runs failed\n", " 0.00349 avg run time (min) : 0.118 run mgr time (min)\n", " 8 agents connected\n", "\n", "\n", "...phi summary for entire ensemble using lambda,scale_fac 1.78179e-06 , 1.1 , \n", " phi type mean std min max\n", " actual 0.153296 0.129906 0.00277547 0.579371\n", "...last best mean phi * acceptable phi factor: 0.190566\n", "...current best mean phi: 0.153296\n", "\n", " --- updating parameter ensemble --- \n", "\n", " --- updating lambda to 1.33635e-06 --- \n", "\n", " --- EnsembleMethod iteration 15 report --- \n", " number of active realizations: 251\n", " number of model runs: 6790\n", " current obs ensemble saved to pest.15.obs.csv\n", " current par ensemble saved to pest.15.par.csv\n", "saved par and rei files for realization BASE for iteration 15\n", "saved par and rei files for realization BASE\n", " phi type mean std min max\n", " actual 0.153296 0.129906 0.00277547 0.579371\n", " --- observation group phi summary --- \n", " (computed using 'actual' phi)\n", " (sorted by mean phi)\n", "group count nconflict mean std min max percent std\n", "oname:simulation.csv_otype:lst_usecol:observations 101 0 0.153 0.13 0.00278 0.579 100 3.06e-14\n", " Note: 'percent' is the percentage of the actual phi for each realization.\n", "\n", "\n", " --- parameter group change summmary --- \n", "group count mean chg std chg n at ubnd % at ubnd n at lbnd % at lbnd n std decr\n", "optimal 2 7.695 100 0 0 0 0 2\n", " Note: parameter change summary sorted according to percent at bounds.\n", " Note: the parameter change statistics implicitly include the effect of \n", " realizations that have failed or have been dropped.\n", " Note: the 'n std decr' is the number of parameters with current\n", " std less 5% of their initial std.\n", "\n", "...saved parameter change summary to pest.15.pcs.csv\n", "\n", " --- phi-based termination criteria check --- \n", "...phiredstp: 0.01\n", "...nphistp: 3\n", "...nphinored (also used for consecutive bad lambda cycles): 3\n", "...best mean phi sequence: 1.60074e+14 , 2.1435e+07 , 2.1297e+07 , 1.18273e+07 , 1.18736e+06 , 118764 , 7115.86 , \n", " 641.024 , 42.1442 , 4.08077 , 0.806288 , 0.423246 , 0.290646 , \n", " 0.222978 , 0.181492 , 0.153296 , \n", "...best phi yet: 0.153296\n", "...number of consecutive bad lambda testing cycles: 0\n", "...number of iterations satisfying phiredstp criteria: 1\n", "...number of iterations since best yet mean phi: 0\n", "\n", " --- starting solve for iteration: 16 --- \n", "...current lambda: 1.33635e-06\n", "...starting calcs for glm factor 1.33635e-07\n", "...finished calcs for: 1.33635e-07\n", "...starting calcs for glm factor 1.33635e-06\n", "...finished calcs for: 1.33635e-06\n", "...starting calcs for glm factor 1.33635e-05\n", "...finished calcs for: 1.33635e-05\n", "\n", " --- running upgrade ensembles --- \n", "...subset idx:pe real name: 0:BASE, 2:111, 16:125, 32:32, 37:67, 60:93, 63:211, 65:25, 68:176, 112:227, 120:75, 134:44, 159:59, 170:109, 171:16, 177:213, 187:51, 188:61, 194:9, 217:80, 228:145, 229:146, 230:150, 235:165, 237:172, \n", "...subset idx:oe real name: 0:BASE, 2:111, 16:125, 32:32, 37:67, 60:93, 63:211, 65:25, 68:176, 112:227, 120:75, 134:44, 159:59, 170:109, 171:16, 177:213, 187:51, 188:61, 194:9, 217:80, 228:145, 229:146, 230:150, 235:165, 237:172, \n", " running model 225 times\n", " starting at 09/30/25 16:34:01\n", " 8 agents ready\n", "\n", "\n", "PANTHER progress\n", " avg = average model run time in minutes\n", " runs(C = completed | F = failed | T = timed out)\n", " agents(R = running | W = waiting | U = unavailable)\n", "--------------------------------------------------------------------------------\n", "09/30 16:34:08 remaining file transfers: 0 \n", "\n", " 225 runs complete : 0 runs failed\n", " 0.00347 avg run time (min) : 0.119 run mgr time (min)\n", " 8 agents connected\n", "\n", "\n", "\n", " --- evaluating upgrade ensembles --- \n", "...last mean: 0.153296\n", "...last stdev: 0.129906\n", "\n", " --- phi summary for best lambda, scale fac: 1.33635e-07 , 1.1 , --- \n", " phi type mean std min max\n", " actual 0.124343 0.100682 0.00721089 0.400141\n", "\n", " --- running remaining realizations for best lambda, scale:1.33635e-07 , 1.1 , --- \n", " running model 226 times\n", " starting at 09/30/25 16:34:09\n", " 8 agents ready\n", "\n", "\n", "PANTHER progress\n", " avg = average model run time in minutes\n", " runs(C = completed | F = failed | T = timed out)\n", " agents(R = running | W = waiting | U = unavailable)\n", "--------------------------------------------------------------------------------\n", "09/30 16:34:17 remaining file transfers: 0 \n", "\n", " 226 runs complete : 0 runs failed\n", " 0.00349 avg run time (min) : 0.143 run mgr time (min)\n", " 8 agents connected\n", "\n", "\n", "...phi summary for entire ensemble using lambda,scale_fac 1.33635e-07 , 1.1 , \n", " phi type mean std min max\n", " actual 0.132823 0.112557 0.00240484 0.501985\n", "...last best mean phi * acceptable phi factor: 0.160961\n", "...current best mean phi: 0.132823\n", "\n", " --- updating parameter ensemble --- \n", "\n", " --- updating lambda to 1.00226e-07 --- \n", "\n", " --- EnsembleMethod iteration 16 report --- \n", " number of active realizations: 251\n", " number of model runs: 7241\n", " current obs ensemble saved to pest.16.obs.csv\n", " current par ensemble saved to pest.16.par.csv\n", "saved par and rei files for realization BASE for iteration 16\n", "saved par and rei files for realization BASE\n", " phi type mean std min max\n", " actual 0.132823 0.112557 0.00240484 0.501985\n", " --- observation group phi summary --- \n", " (computed using 'actual' phi)\n", " (sorted by mean phi)\n", "group count nconflict mean std min max percent std\n", "oname:simulation.csv_otype:lst_usecol:observations 101 0 0.133 0.113 0.0024 0.502 100 3.2e-14\n", " Note: 'percent' is the percentage of the actual phi for each realization.\n", "\n", "\n", " --- parameter group change summmary --- \n", "group count mean chg std chg n at ubnd % at ubnd n at lbnd % at lbnd n std decr\n", "optimal 2 7.695 100 0 0 0 0 2\n", " Note: parameter change summary sorted according to percent at bounds.\n", " Note: the parameter change statistics implicitly include the effect of \n", " realizations that have failed or have been dropped.\n", " Note: the 'n std decr' is the number of parameters with current\n", " std less 5% of their initial std.\n", "\n", "...saved parameter change summary to pest.16.pcs.csv\n", "\n", " --- phi-based termination criteria check --- \n", "...phiredstp: 0.01\n", "...nphistp: 3\n", "...nphinored (also used for consecutive bad lambda cycles): 3\n", "...best mean phi sequence: 1.60074e+14 , 2.1435e+07 , 2.1297e+07 , 1.18273e+07 , 1.18736e+06 , 118764 , 7115.86 , \n", " 641.024 , 42.1442 , 4.08077 , 0.806288 , 0.423246 , 0.290646 , \n", " 0.222978 , 0.181492 , 0.153296 , 0.132823 , \n", "...best phi yet: 0.132823\n", "...number of consecutive bad lambda testing cycles: 0\n", "...number of iterations satisfying phiredstp criteria: 1\n", "...number of iterations since best yet mean phi: 0\n", "\n", " --- starting solve for iteration: 17 --- \n", "...current lambda: 1.00226e-07\n", "...starting calcs for glm factor 1.00226e-08\n", "...finished calcs for: 1.00226e-08\n", "...starting calcs for glm factor 1.00226e-07\n", "...finished calcs for: 1.00226e-07\n", "...starting calcs for glm factor 1.00226e-06\n", "...finished calcs for: 1.00226e-06\n", "\n", " --- running upgrade ensembles --- \n", "...subset idx:pe real name: 0:BASE, 2:125, 17:61, 25:149, 29:216, 80:141, 99:8, 106:124, 110:161, 112:181, 122:52, 128:246, 131:3, 137:135, 147:148, 149:120, 166:194, 176:189, 189:7, 193:151, 207:5, 212:31, 230:138, 233:157, 249:241, \n", "...subset idx:oe real name: 0:BASE, 2:125, 17:61, 25:149, 29:216, 80:141, 99:8, 106:124, 110:161, 112:181, 122:52, 128:246, 131:3, 137:135, 147:148, 149:120, 166:194, 176:189, 189:7, 193:151, 207:5, 212:31, 230:138, 233:157, 249:241, \n", " running model 225 times\n", " starting at 09/30/25 16:34:17\n", " 8 agents ready\n", "\n", "\n", "PANTHER progress\n", " avg = average model run time in minutes\n", " runs(C = completed | F = failed | T = timed out)\n", " agents(R = running | W = waiting | U = unavailable)\n", "--------------------------------------------------------------------------------\n", "09/30 16:34:24 remaining file transfers: 0 \n", "\n", " 225 runs complete : 0 runs failed\n", " 0.00346 avg run time (min) : 0.119 run mgr time (min)\n", " 8 agents connected\n", "\n", "\n", "\n", " --- evaluating upgrade ensembles --- \n", "...last mean: 0.132823\n", "...last stdev: 0.112557\n", "\n", " --- phi summary for best lambda, scale fac: 1.00226e-08 , 1.1 , --- \n", " phi type mean std min max\n", " actual 0.104965 0.105656 0.00636571 0.364305\n", "\n", " --- running remaining realizations for best lambda, scale:1.00226e-08 , 1.1 , --- \n", " running model 226 times\n", " starting at 09/30/25 16:34:24\n", " 8 agents ready\n", "\n", "\n", "PANTHER progress\n", " avg = average model run time in minutes\n", " runs(C = completed | F = failed | T = timed out)\n", " agents(R = running | W = waiting | U = unavailable)\n", "--------------------------------------------------------------------------------\n", "09/30 16:34:31 remaining file transfers: 0 \n", "\n", " 226 runs complete : 0 runs failed\n", " 0.00348 avg run time (min) : 0.118 run mgr time (min)\n", " 8 agents connected\n", "\n", "\n", "...phi summary for entire ensemble using lambda,scale_fac 1.00226e-08 , 1.1 , \n", " phi type mean std min max\n", " actual 0.117253 0.0993625 0.00212296 0.443134\n", "...last best mean phi * acceptable phi factor: 0.139464\n", "...current best mean phi: 0.117253\n", "\n", " --- updating parameter ensemble --- \n", "\n", " --- updating lambda to 7.51695e-09 --- \n", "\n", " --- EnsembleMethod iteration 17 report --- \n", " number of active realizations: 251\n", " number of model runs: 7692\n", " current obs ensemble saved to pest.17.obs.csv\n", " current par ensemble saved to pest.17.par.csv\n", "saved par and rei files for realization BASE for iteration 17\n", "saved par and rei files for realization BASE\n", " phi type mean std min max\n", " actual 0.117253 0.0993625 0.00212296 0.443134\n", " --- observation group phi summary --- \n", " (computed using 'actual' phi)\n", " (sorted by mean phi)\n", "group count nconflict mean std min max percent std\n", "oname:simulation.csv_otype:lst_usecol:observations 101 0 0.117 0.0994 0.00212 0.443 100 3.21e-14\n", " Note: 'percent' is the percentage of the actual phi for each realization.\n", "\n", "\n", " --- parameter group change summmary --- \n", "group count mean chg std chg n at ubnd % at ubnd n at lbnd % at lbnd n std decr\n", "optimal 2 7.695 100 0 0 0 0 2\n", " Note: parameter change summary sorted according to percent at bounds.\n", " Note: the parameter change statistics implicitly include the effect of \n", " realizations that have failed or have been dropped.\n", " Note: the 'n std decr' is the number of parameters with current\n", " std less 5% of their initial std.\n", "\n", "...saved parameter change summary to pest.17.pcs.csv\n", "\n", " --- phi-based termination criteria check --- \n", "...phiredstp: 0.01\n", "...nphistp: 3\n", "...nphinored (also used for consecutive bad lambda cycles): 3\n", "...best mean phi sequence: 1.60074e+14 , 2.1435e+07 , 2.1297e+07 , 1.18273e+07 , 1.18736e+06 , 118764 , 7115.86 , \n", " 641.024 , 42.1442 , 4.08077 , 0.806288 , 0.423246 , 0.290646 , \n", " 0.222978 , 0.181492 , 0.153296 , 0.132823 , 0.117253 , \n", "...best phi yet: 0.117253\n", "...number of consecutive bad lambda testing cycles: 0\n", "...number of iterations satisfying phiredstp criteria: 1\n", "...number of iterations since best yet mean phi: 0\n", "\n", " --- starting solve for iteration: 18 --- \n", "...current lambda: 7.51695e-09\n", "...starting calcs for glm factor 7.51695e-10\n", "...finished calcs for: 7.51695e-10\n", "...starting calcs for glm factor 7.51695e-09\n", "...finished calcs for: 7.51695e-09\n", "...starting calcs for glm factor 7.51695e-08\n", "...finished calcs for: 7.51695e-08\n", "\n", " --- running upgrade ensembles --- \n", "...subset idx:pe real name: 0:BASE, 3:149, 10:52, 21:31, 29:211, 49:49, 52:106, 66:117, 78:78, 81:190, 87:79, 115:223, 130:74, 141:212, 148:118, 171:20, 178:113, 182:169, 184:197, 204:188, 213:22, 217:39, 222:62, 244:219, 249:237, \n", "...subset idx:oe real name: 0:BASE, 3:149, 10:52, 21:31, 29:211, 49:49, 52:106, 66:117, 78:78, 81:190, 87:79, 115:223, 130:74, 141:212, 148:118, 171:20, 178:113, 182:169, 184:197, 204:188, 213:22, 217:39, 222:62, 244:219, 249:237, \n", " running model 225 times\n", " starting at 09/30/25 16:34:32\n", " 8 agents ready\n", "\n", "\n", "PANTHER progress\n", " avg = average model run time in minutes\n", " runs(C = completed | F = failed | T = timed out)\n", " agents(R = running | W = waiting | U = unavailable)\n", "--------------------------------------------------------------------------------\n", "09/30 16:34:39 remaining file transfers: 0 \n", "\n", " 225 runs complete : 0 runs failed\n", " 0.00348 avg run time (min) : 0.119 run mgr time (min)\n", " 8 agents connected\n", "\n", "\n", "\n", " --- evaluating upgrade ensembles --- \n", "...last mean: 0.117253\n", "...last stdev: 0.0993625\n", "\n", " --- phi summary for best lambda, scale fac: 7.51695e-09 , 1.1 , --- \n", " phi type mean std min max\n", " actual 0.105188 0.11544 0.00409023 0.396815\n", "\n", " --- running remaining realizations for best lambda, scale:7.51695e-09 , 1.1 , --- \n", " running model 226 times\n", " starting at 09/30/25 16:34:39\n", " 8 agents ready\n", "\n", "\n", "PANTHER progress\n", " avg = average model run time in minutes\n", " runs(C = completed | F = failed | T = timed out)\n", " agents(R = running | W = waiting | U = unavailable)\n", "--------------------------------------------------------------------------------\n", "09/30 16:34:46 remaining file transfers: 0 \n", "\n", " 226 runs complete : 0 runs failed\n", " 0.00347 avg run time (min) : 0.118 run mgr time (min)\n", " 8 agents connected\n", "\n", "\n", "...phi summary for entire ensemble using lambda,scale_fac 7.51695e-09 , 1.1 , \n", " phi type mean std min max\n", " actual 0.104998 0.0889776 0.0019011 0.396815\n", "...last best mean phi * acceptable phi factor: 0.123116\n", "...current best mean phi: 0.104998\n", "\n", " --- updating parameter ensemble --- \n", "\n", " --- updating lambda to 5.63771e-09 --- \n", "\n", " --- EnsembleMethod iteration 18 report --- \n", " number of active realizations: 251\n", " number of model runs: 8143\n", " current obs ensemble saved to pest.18.obs.csv\n", " current par ensemble saved to pest.18.par.csv\n", "saved par and rei files for realization BASE for iteration 18\n", "saved par and rei files for realization BASE\n", " phi type mean std min max\n", " actual 0.104998 0.0889776 0.0019011 0.396815\n", " --- observation group phi summary --- \n", " (computed using 'actual' phi)\n", " (sorted by mean phi)\n", "group count nconflict mean std min max percent std\n", "oname:simulation.csv_otype:lst_usecol:observations 101 0 0.105 0.089 0.0019 0.397 100 3.55e-14\n", " Note: 'percent' is the percentage of the actual phi for each realization.\n", "\n", "\n", " --- parameter group change summmary --- \n", "group count mean chg std chg n at ubnd % at ubnd n at lbnd % at lbnd n std decr\n", "optimal 2 7.695 100 0 0 0 0 2\n", " Note: parameter change summary sorted according to percent at bounds.\n", " Note: the parameter change statistics implicitly include the effect of \n", " realizations that have failed or have been dropped.\n", " Note: the 'n std decr' is the number of parameters with current\n", " std less 5% of their initial std.\n", "\n", "...saved parameter change summary to pest.18.pcs.csv\n", "\n", " --- phi-based termination criteria check --- \n", "...phiredstp: 0.01\n", "...nphistp: 3\n", "...nphinored (also used for consecutive bad lambda cycles): 3\n", "...best mean phi sequence: 1.60074e+14 , 2.1435e+07 , 2.1297e+07 , 1.18273e+07 , 1.18736e+06 , 118764 , 7115.86 , \n", " 641.024 , 42.1442 , 4.08077 , 0.806288 , 0.423246 , 0.290646 , \n", " 0.222978 , 0.181492 , 0.153296 , 0.132823 , 0.117253 , 0.104998 , \n", " \n", "...best phi yet: 0.104998\n", "...number of consecutive bad lambda testing cycles: 0\n", "...number of iterations satisfying phiredstp criteria: 1\n", "...number of iterations since best yet mean phi: 0\n", "\n", " --- starting solve for iteration: 19 --- \n", "...current lambda: 5.63771e-09\n", "...starting calcs for glm factor 5.63771e-10\n", "...finished calcs for: 5.63771e-10\n", "...starting calcs for glm factor 5.63771e-09\n", "...finished calcs for: 5.63771e-09\n", "...starting calcs for glm factor 5.63771e-08\n", "...finished calcs for: 5.63771e-08\n", "\n", " --- running upgrade ensembles --- \n", "...subset idx:pe real name: 0:BASE, 6:106, 14:118, 16:113, 48:67, 63:146, 69:140, 74:95, 87:45, 89:100, 117:121, 126:128, 137:50, 155:73, 170:153, 179:94, 183:159, 187:174, 195:68, 201:64, 206:218, 212:36, 230:112, 240:171, 243:202, \n", "...subset idx:oe real name: 0:BASE, 6:106, 14:118, 16:113, 48:67, 63:146, 69:140, 74:95, 87:45, 89:100, 117:121, 126:128, 137:50, 155:73, 170:153, 179:94, 183:159, 187:174, 195:68, 201:64, 206:218, 212:36, 230:112, 240:171, 243:202, \n", " running model 225 times\n", " starting at 09/30/25 16:34:46\n", " 8 agents ready\n", "\n", "\n", "PANTHER progress\n", " avg = average model run time in minutes\n", " runs(C = completed | F = failed | T = timed out)\n", " agents(R = running | W = waiting | U = unavailable)\n", "--------------------------------------------------------------------------------\n", "09/30 16:34:55 remaining file transfers: 0 \n", "\n", " 225 runs complete : 0 runs failed\n", " 0.00345 avg run time (min) : 0.144 run mgr time (min)\n", " 8 agents connected\n", "\n", "\n", "\n", " --- evaluating upgrade ensembles --- \n", "...last mean: 0.104998\n", "...last stdev: 0.0889776\n", "\n", " --- phi summary for best lambda, scale fac: 5.63771e-10 , 1.1 , --- \n", " phi type mean std min max\n", " actual 0.109175 0.0868905 0.0118746 0.343491\n", "\n", " --- running remaining realizations for best lambda, scale:5.63771e-10 , 1.1 , --- \n", " running model 226 times\n", " starting at 09/30/25 16:34:55\n", " 8 agents ready\n", "\n", "\n", "PANTHER progress\n", " avg = average model run time in minutes\n", " runs(C = completed | F = failed | T = timed out)\n", " agents(R = running | W = waiting | U = unavailable)\n", "--------------------------------------------------------------------------------\n", "09/30 16:35:02 remaining file transfers: 0 \n", "\n", " 226 runs complete : 0 runs failed\n", " 0.00346 avg run time (min) : 0.118 run mgr time (min)\n", " 8 agents connected\n", "\n", "\n", "...phi summary for entire ensemble using lambda,scale_fac 5.63771e-10 , 1.1 , \n", " phi type mean std min max\n", " actual 0.0950939 0.0805843 0.00172178 0.35938\n", "...last best mean phi * acceptable phi factor: 0.110248\n", "...current best mean phi: 0.0950939\n", "\n", " --- updating parameter ensemble --- \n", "\n", " --- updating lambda to 4.22828e-10 --- \n", "\n", " --- EnsembleMethod iteration 19 report --- \n", " number of active realizations: 251\n", " number of model runs: 8594\n", " current obs ensemble saved to pest.19.obs.csv\n", " current par ensemble saved to pest.19.par.csv\n", "saved par and rei files for realization BASE for iteration 19\n", "saved par and rei files for realization BASE\n", " phi type mean std min max\n", " actual 0.0950939 0.0805843 0.00172178 0.35938\n", " --- observation group phi summary --- \n", " (computed using 'actual' phi)\n", " (sorted by mean phi)\n", "group count nconflict mean std min max percent std\n", "oname:simulation.csv_otype:lst_usecol:observations 101 0 0.0951 0.0806 0.00172 0.359 100 3.32e-14\n", " Note: 'percent' is the percentage of the actual phi for each realization.\n", "\n", "\n", " --- parameter group change summmary --- \n", "group count mean chg std chg n at ubnd % at ubnd n at lbnd % at lbnd n std decr\n", "optimal 2 7.695 100 0 0 0 0 2\n", " Note: parameter change summary sorted according to percent at bounds.\n", " Note: the parameter change statistics implicitly include the effect of \n", " realizations that have failed or have been dropped.\n", " Note: the 'n std decr' is the number of parameters with current\n", " std less 5% of their initial std.\n", "\n", "...saved parameter change summary to pest.19.pcs.csv\n", "\n", " --- phi-based termination criteria check --- \n", "...phiredstp: 0.01\n", "...nphistp: 3\n", "...nphinored (also used for consecutive bad lambda cycles): 3\n", "...best mean phi sequence: 1.60074e+14 , 2.1435e+07 , 2.1297e+07 , 1.18273e+07 , 1.18736e+06 , 118764 , 7115.86 , \n", " 641.024 , 42.1442 , 4.08077 , 0.806288 , 0.423246 , 0.290646 , \n", " 0.222978 , 0.181492 , 0.153296 , 0.132823 , 0.117253 , 0.104998 , \n", " 0.0950939 , \n", "...best phi yet: 0.0950939\n", "...number of consecutive bad lambda testing cycles: 0\n", "...number of iterations satisfying phiredstp criteria: 1\n", "...number of iterations since best yet mean phi: 0\n", "\n", " --- starting solve for iteration: 20 --- \n", "...current lambda: 4.22828e-10\n", "...starting calcs for glm factor 4.22828e-11\n", "...finished calcs for: 4.22828e-11\n", "...starting calcs for glm factor 4.22828e-10\n", "...finished calcs for: 4.22828e-10\n", "...starting calcs for glm factor 4.22828e-09\n", "...finished calcs for: 4.22828e-09\n", "\n", " --- running upgrade ensembles --- \n", "...subset idx:pe real name: 0:BASE, 6:140, 7:95, 8:45, 22:112, 26:52, 51:124, 63:5, 83:150, 90:147, 96:201, 120:55, 131:152, 140:191, 156:244, 160:48, 161:77, 166:0, 173:162, 188:231, 191:110, 206:30, 209:56, 212:126, 217:101, \n", "...subset idx:oe real name: 0:BASE, 6:140, 7:95, 8:45, 22:112, 26:52, 51:124, 63:5, 83:150, 90:147, 96:201, 120:55, 131:152, 140:191, 156:244, 160:48, 161:77, 166:0, 173:162, 188:231, 191:110, 206:30, 209:56, 212:126, 217:101, \n", " running model 225 times\n", " starting at 09/30/25 16:35:02\n", " 8 agents ready\n", "\n", "\n", "PANTHER progress\n", " avg = average model run time in minutes\n", " runs(C = completed | F = failed | T = timed out)\n", " agents(R = running | W = waiting | U = unavailable)\n", "--------------------------------------------------------------------------------\n", "09/30 16:35:09 remaining file transfers: 0 \n", "\n", " 225 runs complete : 0 runs failed\n", " 0.00347 avg run time (min) : 0.119 run mgr time (min)\n", " 8 agents connected\n", "\n", "\n", "\n", " --- evaluating upgrade ensembles --- \n", "...last mean: 0.0950939\n", "...last stdev: 0.0805843\n", "\n", " --- phi summary for best lambda, scale fac: 4.22828e-11 , 1.1 , --- \n", " phi type mean std min max\n", " actual 0.065997 0.0761243 0.00367983 0.2469\n", "\n", " --- running remaining realizations for best lambda, scale:4.22828e-11 , 1.1 , --- \n", " running model 226 times\n", " starting at 09/30/25 16:35:09\n", " 8 agents ready\n", "\n", "\n", "PANTHER progress\n", " avg = average model run time in minutes\n", " runs(C = completed | F = failed | T = timed out)\n", " agents(R = running | W = waiting | U = unavailable)\n", "--------------------------------------------------------------------------------\n", "09/30 16:35:16 remaining file transfers: 0 \n", "\n", " 226 runs complete : 0 runs failed\n", " 0.00349 avg run time (min) : 0.118 run mgr time (min)\n", " 8 agents connected\n", "\n", "\n", "...phi summary for entire ensemble using lambda,scale_fac 4.22828e-11 , 1.1 , \n", " phi type mean std min max\n", " actual 0.0869176 0.0736556 0.00157375 0.328478\n", "...last best mean phi * acceptable phi factor: 0.0998486\n", "...current best mean phi: 0.0869176\n", "\n", " --- updating parameter ensemble --- \n", "\n", " --- updating lambda to 3.17121e-11 --- \n", "\n", " --- EnsembleMethod iteration 20 report --- \n", " number of active realizations: 251\n", " number of model runs: 9045\n", " current obs ensemble saved to pest.20.obs.csv\n", " current par ensemble saved to pest.20.par.csv\n", "saved par and rei files for realization BASE for iteration 20\n", "saved par and rei files for realization BASE\n", " phi type mean std min max\n", " actual 0.0869176 0.0736556 0.00157375 0.328478\n", " --- observation group phi summary --- \n", " (computed using 'actual' phi)\n", " (sorted by mean phi)\n", "group count nconflict mean std min max percent std\n", "oname:simulation.csv_otype:lst_usecol:observations 101 0 0.0869 0.0737 0.00157 0.328 100 3.18e-14\n", " Note: 'percent' is the percentage of the actual phi for each realization.\n", "\n", "\n", " --- parameter group change summmary --- \n", "group count mean chg std chg n at ubnd % at ubnd n at lbnd % at lbnd n std decr\n", "optimal 2 7.695 100 0 0 0 0 2\n", " Note: parameter change summary sorted according to percent at bounds.\n", " Note: the parameter change statistics implicitly include the effect of \n", " realizations that have failed or have been dropped.\n", " Note: the 'n std decr' is the number of parameters with current\n", " std less 5% of their initial std.\n", "\n", "...saved parameter change summary to pest.20.pcs.csv\n", "\n", " --- phi-based termination criteria check --- \n", "...phiredstp: 0.01\n", "...nphistp: 3\n", "...nphinored (also used for consecutive bad lambda cycles): 3\n", "...best mean phi sequence: 1.60074e+14 , 2.1435e+07 , 2.1297e+07 , 1.18273e+07 , 1.18736e+06 , 118764 , 7115.86 , \n", " 641.024 , 42.1442 , 4.08077 , 0.806288 , 0.423246 , 0.290646 , \n", " 0.222978 , 0.181492 , 0.153296 , 0.132823 , 0.117253 , 0.104998 , \n", " 0.0950939 , 0.0869176 , \n", "...best phi yet: 0.0869176\n", "...number of consecutive bad lambda testing cycles: 0\n", "...number of iterations satisfying phiredstp criteria: 1\n", "...number of iterations since best yet mean phi: 0\n", "\n", " --- starting solve for iteration: 21 --- \n", "...current lambda: 3.17121e-11\n", "...starting calcs for glm factor 3.17121e-12\n", "...finished calcs for: 3.17121e-12\n", "...starting calcs for glm factor 3.17121e-11\n", "...finished calcs for: 3.17121e-11\n", "...starting calcs for glm factor 3.17121e-10\n", "...finished calcs for: 3.17121e-10\n", "\n", " --- running upgrade ensembles --- \n", "...subset idx:pe real name: 0:BASE, 8:150, 21:30, 43:171, 65:125, 81:138, 94:16, 95:213, 100:165, 107:132, 118:89, 128:72, 136:142, 143:243, 157:107, 162:91, 166:29, 195:87, 199:88, 203:217, 204:224, 220:12, 240:160, 241:163, 247:229, \n", "...subset idx:oe real name: 0:BASE, 8:150, 21:30, 43:171, 65:125, 81:138, 94:16, 95:213, 100:165, 107:132, 118:89, 128:72, 136:142, 143:243, 157:107, 162:91, 166:29, 195:87, 199:88, 203:217, 204:224, 220:12, 240:160, 241:163, 247:229, \n", " running model 225 times\n", " starting at 09/30/25 16:35:16\n", " 8 agents ready\n", "\n", "\n", "PANTHER progress\n", " avg = average model run time in minutes\n", " runs(C = completed | F = failed | T = timed out)\n", " agents(R = running | W = waiting | U = unavailable)\n", "--------------------------------------------------------------------------------\n", "09/30 16:35:25 remaining file transfers: 0 \n", "\n", " 225 runs complete : 0 runs failed\n", " 0.00349 avg run time (min) : 0.143 run mgr time (min)\n", " 8 agents connected\n", "\n", "\n", "\n", " --- evaluating upgrade ensembles --- \n", "...last mean: 0.0869176\n", "...last stdev: 0.0736556\n", "\n", " --- phi summary for best lambda, scale fac: 3.17121e-12 , 1.1 , --- \n", " phi type mean std min max\n", " actual 0.082129 0.0641193 0.00434613 0.248712\n", "\n", " --- running remaining realizations for best lambda, scale:3.17121e-12 , 1.1 , --- \n", " running model 226 times\n", " starting at 09/30/25 16:35:25\n", " 8 agents ready\n", "\n", "\n", "PANTHER progress\n", " avg = average model run time in minutes\n", " runs(C = completed | F = failed | T = timed out)\n", " agents(R = running | W = waiting | U = unavailable)\n", "--------------------------------------------------------------------------------\n", "09/30 16:35:32 remaining file transfers: 0 \n", "\n", " 226 runs complete : 0 runs failed\n", " 0.00346 avg run time (min) : 0.118 run mgr time (min)\n", " 8 agents connected\n", "\n", "\n", "...phi summary for entire ensemble using lambda,scale_fac 3.17121e-12 , 1.1 , \n", " phi type mean std min max\n", " actual 0.0800507 0.0678364 0.00144943 0.302525\n", "...last best mean phi * acceptable phi factor: 0.0912635\n", "...current best mean phi: 0.0800507\n", "\n", " --- updating parameter ensemble --- \n", "\n", " --- updating lambda to 2.37841e-12 --- \n", "\n", " --- EnsembleMethod iteration 21 report --- \n", " number of active realizations: 251\n", " number of model runs: 9496\n", " current obs ensemble saved to pest.21.obs.csv\n", " current par ensemble saved to pest.21.par.csv\n", "saved par and rei files for realization BASE for iteration 21\n", "saved par and rei files for realization BASE\n", " phi type mean std min max\n", " actual 0.0800507 0.0678364 0.00144943 0.302525\n", " --- observation group phi summary --- \n", " (computed using 'actual' phi)\n", " (sorted by mean phi)\n", "group count nconflict mean std min max percent std\n", "oname:simulation.csv_otype:lst_usecol:observations 101 0 0.0801 0.0678 0.00145 0.303 100 3.21e-14\n", " Note: 'percent' is the percentage of the actual phi for each realization.\n", "\n", "\n", " --- parameter group change summmary --- \n", "group count mean chg std chg n at ubnd % at ubnd n at lbnd % at lbnd n std decr\n", "optimal 2 7.695 100 0 0 0 0 2\n", " Note: parameter change summary sorted according to percent at bounds.\n", " Note: the parameter change statistics implicitly include the effect of \n", " realizations that have failed or have been dropped.\n", " Note: the 'n std decr' is the number of parameters with current\n", " std less 5% of their initial std.\n", "\n", "...saved parameter change summary to pest.21.pcs.csv\n", "\n", " --- phi-based termination criteria check --- \n", "...phiredstp: 0.01\n", "...nphistp: 3\n", "...nphinored (also used for consecutive bad lambda cycles): 3\n", "...best mean phi sequence: 1.60074e+14 , 2.1435e+07 , 2.1297e+07 , 1.18273e+07 , 1.18736e+06 , 118764 , 7115.86 , \n", " 641.024 , 42.1442 , 4.08077 , 0.806288 , 0.423246 , 0.290646 , \n", " 0.222978 , 0.181492 , 0.153296 , 0.132823 , 0.117253 , 0.104998 , \n", " 0.0950939 , 0.0869176 , 0.0800507 , \n", "...best phi yet: 0.0800507\n", "...number of consecutive bad lambda testing cycles: 0\n", "...number of iterations satisfying phiredstp criteria: 1\n", "...number of iterations since best yet mean phi: 0\n", "\n", " --- starting solve for iteration: 22 --- \n", "...current lambda: 2.37841e-12\n", "...starting calcs for glm factor 2.37841e-13\n", "...finished calcs for: 2.37841e-13\n", "...starting calcs for glm factor 2.37841e-12\n", "...finished calcs for: 2.37841e-12\n", "...starting calcs for glm factor 2.37841e-11\n", "...finished calcs for: 2.37841e-11\n", "\n", " --- running upgrade ensembles --- \n", "...subset idx:pe real name: 0:BASE, 10:89, 32:147, 35:152, 36:191, 41:162, 42:231, 43:110, 44:56, 57:153, 75:74, 76:212, 82:39, 95:148, 100:151, 101:157, 113:51, 114:9, 130:81, 164:233, 174:130, 206:115, 217:65, 219:239, 223:4, \n", "...subset idx:oe real name: 0:BASE, 10:89, 32:147, 35:152, 36:191, 41:162, 42:231, 43:110, 44:56, 57:153, 75:74, 76:212, 82:39, 95:148, 100:151, 101:157, 113:51, 114:9, 130:81, 164:233, 174:130, 206:115, 217:65, 219:239, 223:4, \n", " running model 225 times\n", " starting at 09/30/25 16:35:32\n", " 8 agents ready\n", "\n", "\n", "PANTHER progress\n", " avg = average model run time in minutes\n", " runs(C = completed | F = failed | T = timed out)\n", " agents(R = running | W = waiting | U = unavailable)\n", "--------------------------------------------------------------------------------\n", "09/30 16:35:39 remaining file transfers: 0 \n", "\n", " 225 runs complete : 0 runs failed\n", " 0.00348 avg run time (min) : 0.119 run mgr time (min)\n", " 8 agents connected\n", "\n", "\n", "\n", " --- evaluating upgrade ensembles --- \n", "...last mean: 0.0800507\n", "...last stdev: 0.0678364\n", "\n", " --- phi summary for best lambda, scale fac: 2.37841e-13 , 1.1 , --- \n", " phi type mean std min max\n", " actual 0.0578412 0.0589644 0.00134349 0.220515\n", "\n", " --- running remaining realizations for best lambda, scale:2.37841e-13 , 1.1 , --- \n", " running model 226 times\n", " starting at 09/30/25 16:35:39\n", " 8 agents ready\n", "\n", "\n", "PANTHER progress\n", " avg = average model run time in minutes\n", " runs(C = completed | F = failed | T = timed out)\n", " agents(R = running | W = waiting | U = unavailable)\n", "--------------------------------------------------------------------------------\n", "09/30 16:35:46 remaining file transfers: 0 \n", "\n", " 226 runs complete : 0 runs failed\n", " 0.00349 avg run time (min) : 0.118 run mgr time (min)\n", " 8 agents connected\n", "\n", "\n", "...phi summary for entire ensemble using lambda,scale_fac 2.37841e-13 , 1.1 , \n", " phi type mean std min max\n", " actual 0.0741998 0.0628783 0.00134349 0.280412\n", "...last best mean phi * acceptable phi factor: 0.0840532\n", "...current best mean phi: 0.0741998\n", "\n", " --- updating parameter ensemble --- \n", "\n", " --- updating lambda to 1.78381e-13 --- \n", "\n", " --- EnsembleMethod iteration 22 report --- \n", " number of active realizations: 251\n", " number of model runs: 9947\n", " current obs ensemble saved to pest.22.obs.csv\n", " current par ensemble saved to pest.22.par.csv\n", "saved par and rei files for realization BASE for iteration 22\n", "saved par and rei files for realization BASE\n", " phi type mean std min max\n", " actual 0.0741998 0.0628783 0.00134349 0.280412\n", " --- observation group phi summary --- \n", " (computed using 'actual' phi)\n", " (sorted by mean phi)\n", "group count nconflict mean std min max percent std\n", "oname:simulation.csv_otype:lst_usecol:observations 101 0 0.0742 0.0629 0.00134 0.28 100 3.33e-14\n", " Note: 'percent' is the percentage of the actual phi for each realization.\n", "\n", "\n", " --- parameter group change summmary --- \n", "group count mean chg std chg n at ubnd % at ubnd n at lbnd % at lbnd n std decr\n", "optimal 2 7.695 100 0 0 0 0 2\n", " Note: parameter change summary sorted according to percent at bounds.\n", " Note: the parameter change statistics implicitly include the effect of \n", " realizations that have failed or have been dropped.\n", " Note: the 'n std decr' is the number of parameters with current\n", " std less 5% of their initial std.\n", "\n", "...saved parameter change summary to pest.22.pcs.csv\n", "\n", " --- phi-based termination criteria check --- \n", "...phiredstp: 0.01\n", "...nphistp: 3\n", "...nphinored (also used for consecutive bad lambda cycles): 3\n", "...best mean phi sequence: 1.60074e+14 , 2.1435e+07 , 2.1297e+07 , 1.18273e+07 , 1.18736e+06 , 118764 , 7115.86 , \n", " 641.024 , 42.1442 , 4.08077 , 0.806288 , 0.423246 , 0.290646 , \n", " 0.222978 , 0.181492 , 0.153296 , 0.132823 , 0.117253 , 0.104998 , \n", " 0.0950939 , 0.0869176 , 0.0800507 , 0.0741998 , \n", "...best phi yet: 0.0741998\n", "...number of consecutive bad lambda testing cycles: 0\n", "...number of iterations satisfying phiredstp criteria: 1\n", "...number of iterations since best yet mean phi: 0\n", "\n", " --- starting solve for iteration: 23 --- \n", "...current lambda: 1.78381e-13\n", "...starting calcs for glm factor 1.78381e-14\n", "...finished calcs for: 1.78381e-14\n", "...starting calcs for glm factor 1.78381e-13\n", "...finished calcs for: 1.78381e-13\n", "...starting calcs for glm factor 1.78381e-12\n", "...finished calcs for: 1.78381e-12\n", "\n", " --- running upgrade ensembles --- \n", "...subset idx:pe real name: 0:BASE, 10:74, 14:151, 25:150, 32:165, 71:50, 83:211, 88:79, 103:181, 115:25, 118:75, 120:59, 123:145, 129:154, 147:70, 157:60, 168:123, 175:54, 176:90, 188:82, 212:66, 228:46, 229:47, 233:76, 238:133, \n", "...subset idx:oe real name: 0:BASE, 10:74, 14:151, 25:150, 32:165, 71:50, 83:211, 88:79, 103:181, 115:25, 118:75, 120:59, 123:145, 129:154, 147:70, 157:60, 168:123, 175:54, 176:90, 188:82, 212:66, 228:46, 229:47, 233:76, 238:133, \n", " running model 225 times\n", " starting at 09/30/25 16:35:46\n", " 8 agents ready\n", "\n", "\n", "PANTHER progress\n", " avg = average model run time in minutes\n", " runs(C = completed | F = failed | T = timed out)\n", " agents(R = running | W = waiting | U = unavailable)\n", "--------------------------------------------------------------------------------\n", "09/30 16:35:53 remaining file transfers: 0 \n", "\n", " 225 runs complete : 0 runs failed\n", " 0.00348 avg run time (min) : 0.118 run mgr time (min)\n", " 8 agents connected\n", "\n", "\n", "\n", " --- evaluating upgrade ensembles --- \n", "...last mean: 0.0741998\n", "...last stdev: 0.0628783\n", "\n", " --- phi summary for best lambda, scale fac: 1.78381e-14 , 1.1 , --- \n", " phi type mean std min max\n", " actual 0.0708373 0.0653469 0.00453892 0.212773\n", "\n", " --- running remaining realizations for best lambda, scale:1.78381e-14 , 1.1 , --- \n", " running model 226 times\n", " starting at 09/30/25 16:35:53\n", " 8 agents ready\n", "\n", "\n", "PANTHER progress\n", " avg = average model run time in minutes\n", " runs(C = completed | F = failed | T = timed out)\n", " agents(R = running | W = waiting | U = unavailable)\n", "--------------------------------------------------------------------------------\n", "09/30 16:36:02 remaining file transfers: 0 \n", "\n", " 226 runs complete : 0 runs failed\n", " 0.00348 avg run time (min) : 0.143 run mgr time (min)\n", " 8 agents connected\n", "\n", "\n", "...phi summary for entire ensemble using lambda,scale_fac 1.78381e-14 , 1.1 , \n", " phi type mean std min max\n", " actual 0.0691537 0.0586022 0.00125213 0.261341\n", "...last best mean phi * acceptable phi factor: 0.0779098\n", "...current best mean phi: 0.0691537\n", "\n", " --- updating parameter ensemble --- \n", "\n", " --- updating lambda to 1.33786e-14 --- \n", "\n", " --- EnsembleMethod iteration 23 report --- \n", " number of active realizations: 251\n", " number of model runs: 10398\n", " current obs ensemble saved to pest.23.obs.csv\n", " current par ensemble saved to pest.23.par.csv\n", "saved par and rei files for realization BASE for iteration 23\n", "saved par and rei files for realization BASE\n", " phi type mean std min max\n", " actual 0.0691537 0.0586022 0.00125213 0.261341\n", " --- observation group phi summary --- \n", " (computed using 'actual' phi)\n", " (sorted by mean phi)\n", "group count nconflict mean std min max percent std\n", "oname:simulation.csv_otype:lst_usecol:observations 101 0 0.0692 0.0586 0.00125 0.261 100 3.08e-14\n", " Note: 'percent' is the percentage of the actual phi for each realization.\n", "\n", "\n", " --- parameter group change summmary --- \n", "group count mean chg std chg n at ubnd % at ubnd n at lbnd % at lbnd n std decr\n", "optimal 2 7.695 100 0 0 0 0 2\n", " Note: parameter change summary sorted according to percent at bounds.\n", " Note: the parameter change statistics implicitly include the effect of \n", " realizations that have failed or have been dropped.\n", " Note: the 'n std decr' is the number of parameters with current\n", " std less 5% of their initial std.\n", "\n", "...saved parameter change summary to pest.23.pcs.csv\n", "\n", " --- phi-based termination criteria check --- \n", "...phiredstp: 0.01\n", "...nphistp: 3\n", "...nphinored (also used for consecutive bad lambda cycles): 3\n", "...best mean phi sequence: 1.60074e+14 , 2.1435e+07 , 2.1297e+07 , 1.18273e+07 , 1.18736e+06 , 118764 , 7115.86 , \n", " 641.024 , 42.1442 , 4.08077 , 0.806288 , 0.423246 , 0.290646 , \n", " 0.222978 , 0.181492 , 0.153296 , 0.132823 , 0.117253 , 0.104998 , \n", " 0.0950939 , 0.0869176 , 0.0800507 , 0.0741998 , 0.0691537 , \n", "...best phi yet: 0.0691537\n", "...number of consecutive bad lambda testing cycles: 0\n", "...number of iterations satisfying phiredstp criteria: 1\n", "...number of iterations since best yet mean phi: 0\n", "\n", " --- starting solve for iteration: 24 --- \n", "...current lambda: 1.33786e-14\n", "...starting calcs for glm factor 1.33786e-15\n", "...finished calcs for: 1.33786e-15\n", "...starting calcs for glm factor 1.33786e-14\n", "...finished calcs for: 1.33786e-14\n", "...starting calcs for glm factor 1.33786e-13\n", "...finished calcs for: 1.33786e-13\n", "\n", " --- running upgrade ensembles --- \n", "...subset idx:pe real name: 0:BASE, 21:46, 23:76, 28:191, 41:233, 44:65, 46:4, 49:125, 68:140, 74:5, 81:126, 87:146, 114:237, 118:8, 120:246, 145:42, 150:2, 189:198, 198:63, 203:134, 213:245, 224:183, 227:196, 232:57, 236:102, \n", "...subset idx:oe real name: 0:BASE, 21:46, 23:76, 28:191, 41:233, 44:65, 46:4, 49:125, 68:140, 74:5, 81:126, 87:146, 114:237, 118:8, 120:246, 145:42, 150:2, 189:198, 198:63, 203:134, 213:245, 224:183, 227:196, 232:57, 236:102, \n", " running model 225 times\n", " starting at 09/30/25 16:36:02\n", " 8 agents ready\n", "\n", "\n", "PANTHER progress\n", " avg = average model run time in minutes\n", " runs(C = completed | F = failed | T = timed out)\n", " agents(R = running | W = waiting | U = unavailable)\n", "--------------------------------------------------------------------------------\n", "09/30 16:36:09 remaining file transfers: 0 \n", "\n", " 225 runs complete : 0 runs failed\n", " 0.00347 avg run time (min) : 0.119 run mgr time (min)\n", " 8 agents connected\n", "\n", "\n", "\n", " --- evaluating upgrade ensembles --- \n", "...last mean: 0.0691537\n", "...last stdev: 0.0586022\n", "\n", " --- phi summary for best lambda, scale fac: 1.33786e-15 , 1.1 , --- \n", " phi type mean std min max\n", " actual 0.0584504 0.0481213 0.00274153 0.192451\n", "\n", " --- running remaining realizations for best lambda, scale:1.33786e-15 , 1.1 , --- \n", " running model 226 times\n", " starting at 09/30/25 16:36:09\n", " 8 agents ready\n", "\n", "\n", "PANTHER progress\n", " avg = average model run time in minutes\n", " runs(C = completed | F = failed | T = timed out)\n", " agents(R = running | W = waiting | U = unavailable)\n", "--------------------------------------------------------------------------------\n", "09/30 16:36:16 remaining file transfers: 0 \n", "\n", " 226 runs complete : 0 runs failed\n", " 0.00347 avg run time (min) : 0.118 run mgr time (min)\n", " 8 agents connected\n", "\n", "\n", "...phi summary for entire ensemble using lambda,scale_fac 1.33786e-15 , 1.1 , \n", " phi type mean std min max\n", " actual 0.0647561 0.0548756 0.00117251 0.244721\n", "...last best mean phi * acceptable phi factor: 0.0726114\n", "...current best mean phi: 0.0647561\n", "\n", " --- updating parameter ensemble --- \n", "\n", " --- updating lambda to 1.00339e-15 --- \n", "\n", " --- EnsembleMethod iteration 24 report --- \n", " number of active realizations: 251\n", " number of model runs: 10849\n", " current obs ensemble saved to pest.24.obs.csv\n", " current par ensemble saved to pest.24.par.csv\n", "saved par and rei files for realization BASE for iteration 24\n", "saved par and rei files for realization BASE\n", " phi type mean std min max\n", " actual 0.0647561 0.0548756 0.00117251 0.244721\n", " --- observation group phi summary --- \n", " (computed using 'actual' phi)\n", " (sorted by mean phi)\n", "group count nconflict mean std min max percent std\n", "oname:simulation.csv_otype:lst_usecol:observations 101 0 0.0648 0.0549 0.00117 0.245 100 2.91e-14\n", " Note: 'percent' is the percentage of the actual phi for each realization.\n", "\n", "\n", " --- parameter group change summmary --- \n", "group count mean chg std chg n at ubnd % at ubnd n at lbnd % at lbnd n std decr\n", "optimal 2 7.695 100 0 0 0 0 2\n", " Note: parameter change summary sorted according to percent at bounds.\n", " Note: the parameter change statistics implicitly include the effect of \n", " realizations that have failed or have been dropped.\n", " Note: the 'n std decr' is the number of parameters with current\n", " std less 5% of their initial std.\n", "\n", "...saved parameter change summary to pest.24.pcs.csv\n", "\n", " --- phi-based termination criteria check --- \n", "...phiredstp: 0.01\n", "...nphistp: 3\n", "...nphinored (also used for consecutive bad lambda cycles): 3\n", "...best mean phi sequence: 1.60074e+14 , 2.1435e+07 , 2.1297e+07 , 1.18273e+07 , 1.18736e+06 , 118764 , 7115.86 , \n", " 641.024 , 42.1442 , 4.08077 , 0.806288 , 0.423246 , 0.290646 , \n", " 0.222978 , 0.181492 , 0.153296 , 0.132823 , 0.117253 , 0.104998 , \n", " 0.0950939 , 0.0869176 , 0.0800507 , 0.0741998 , 0.0691537 , 0.0647561 , \n", " \n", "...best phi yet: 0.0647561\n", "...number of consecutive bad lambda testing cycles: 0\n", "...number of iterations satisfying phiredstp criteria: 1\n", "...number of iterations since best yet mean phi: 0\n", "\n", " --- starting solve for iteration: 25 --- \n", "...current lambda: 1.00339e-15\n", "...starting calcs for glm factor 1.00339e-16\n", "...finished calcs for: 1.00339e-16\n", "...starting calcs for glm factor 1.00339e-15\n", "...finished calcs for: 1.00339e-15\n", "...starting calcs for glm factor 1.00339e-14\n", "...finished calcs for: 1.00339e-14\n", "\n", " --- running upgrade ensembles --- \n", "...subset idx:pe real name: 0:BASE, 25:74, 50:162, 63:115, 65:30, 69:213, 72:142, 84:229, 108:68, 120:20, 125:62, 135:189, 139:32, 162:156, 164:14, 165:35, 179:180, 193:53, 197:204, 198:221, 205:119, 238:122, 242:158, 246:207, 248:232, \n", "...subset idx:oe real name: 0:BASE, 25:74, 50:162, 63:115, 65:30, 69:213, 72:142, 84:229, 108:68, 120:20, 125:62, 135:189, 139:32, 162:156, 164:14, 165:35, 179:180, 193:53, 197:204, 198:221, 205:119, 238:122, 242:158, 246:207, 248:232, \n", " running model 225 times\n", " starting at 09/30/25 16:36:16\n", " 8 agents ready\n", "\n", "\n", "PANTHER progress\n", " avg = average model run time in minutes\n", " runs(C = completed | F = failed | T = timed out)\n", " agents(R = running | W = waiting | U = unavailable)\n", "--------------------------------------------------------------------------------\n", "09/30 16:36:23 remaining file transfers: 0 \n", "\n", " 225 runs complete : 0 runs failed\n", " 0.00349 avg run time (min) : 0.12 run mgr time (min)\n", " 8 agents connected\n", "\n", "\n", "\n", " --- evaluating upgrade ensembles --- \n", "...last mean: 0.0647561\n", "...last stdev: 0.0548756\n", "\n", " --- phi summary for best lambda, scale fac: 1.00339e-16 , 1.1 , --- \n", " phi type mean std min max\n", " actual 0.0570667 0.0551018 0.00551188 0.219936\n", "\n", " --- running remaining realizations for best lambda, scale:1.00339e-16 , 1.1 , --- \n", " running model 226 times\n", " starting at 09/30/25 16:36:23\n", " 8 agents ready\n", "\n", "\n", "PANTHER progress\n", " avg = average model run time in minutes\n", " runs(C = completed | F = failed | T = timed out)\n", " agents(R = running | W = waiting | U = unavailable)\n", "--------------------------------------------------------------------------------\n", "09/30 16:36:32 remaining file transfers: 0 \n", "\n", " 226 runs complete : 0 runs failed\n", " 0.00349 avg run time (min) : 0.143 run mgr time (min)\n", " 8 agents connected\n", "\n", "\n", "...phi summary for entire ensemble using lambda,scale_fac 1.00339e-16 , 1.1 , \n", " phi type mean std min max\n", " actual 0.0608889 0.0515984 0.00110249 0.230105\n", "...last best mean phi * acceptable phi factor: 0.0679939\n", "...current best mean phi: 0.0608889\n", "\n", " --- updating parameter ensemble --- \n", "\n", " --- updating lambda to 7.52543e-17 --- \n", "\n", " --- EnsembleMethod iteration 25 report --- \n", " number of active realizations: 251\n", " number of model runs: 11300\n", " current obs ensemble saved to pest.25.obs.csv\n", " current par ensemble saved to pest.25.par.csv\n", "saved par and rei files for realization BASE for iteration 25\n", "saved par and rei files for realization BASE\n", " phi type mean std min max\n", " actual 0.0608889 0.0515984 0.00110249 0.230105\n", " --- observation group phi summary --- \n", " (computed using 'actual' phi)\n", " (sorted by mean phi)\n", "group count nconflict mean std min max percent std\n", "oname:simulation.csv_otype:lst_usecol:observations 101 0 0.0609 0.0516 0.0011 0.23 100 3.07e-14\n", " Note: 'percent' is the percentage of the actual phi for each realization.\n", "\n", "\n", " --- parameter group change summmary --- \n", "group count mean chg std chg n at ubnd % at ubnd n at lbnd % at lbnd n std decr\n", "optimal 2 7.695 100 0 0 0 0 2\n", " Note: parameter change summary sorted according to percent at bounds.\n", " Note: the parameter change statistics implicitly include the effect of \n", " realizations that have failed or have been dropped.\n", " Note: the 'n std decr' is the number of parameters with current\n", " std less 5% of their initial std.\n", "\n", "...saved parameter change summary to pest.25.pcs.csv\n", "\n", " --- phi-based termination criteria check --- \n", "...phiredstp: 0.01\n", "...nphistp: 3\n", "...nphinored (also used for consecutive bad lambda cycles): 3\n", "...best mean phi sequence: 1.60074e+14 , 2.1435e+07 , 2.1297e+07 , 1.18273e+07 , 1.18736e+06 , 118764 , 7115.86 , \n", " 641.024 , 42.1442 , 4.08077 , 0.806288 , 0.423246 , 0.290646 , \n", " 0.222978 , 0.181492 , 0.153296 , 0.132823 , 0.117253 , 0.104998 , \n", " 0.0950939 , 0.0869176 , 0.0800507 , 0.0741998 , 0.0691537 , 0.0647561 , \n", " 0.0608889 , \n", "...best phi yet: 0.0608889\n", "...number of consecutive bad lambda testing cycles: 0\n", "...number of iterations satisfying phiredstp criteria: 1\n", "...number of iterations since best yet mean phi: 0\n", "\n", "\n", "pestpp-ies analysis complete...\n", "started at 09/30/25 16:30:13\n", "finished at 09/30/25 16:36:32\n", "took 6.01667 minutes\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "/home/vonkm/.local/share/uv/python/cpython-3.13.5-linux-x86_64-gnu/lib/python3.13/multiprocessing/popen_fork.py:67: DeprecationWarning: This process (pid=274580) is multi-threaded, use of fork() may lead to deadlocks in the child.\n", "/home/vonkm/.local/share/uv/python/cpython-3.13.5-linux-x86_64-gnu/lib/python3.13/multiprocessing/popen_fork.py:67: DeprecationWarning: This process (pid=274580) is multi-threaded, use of fork() may lead to deadlocks in the child.\n", "/home/vonkm/.local/share/uv/python/cpython-3.13.5-linux-x86_64-gnu/lib/python3.13/multiprocessing/popen_fork.py:67: DeprecationWarning: This process (pid=274580) is multi-threaded, use of fork() may lead to deadlocks in the child.\n", "/home/vonkm/.local/share/uv/python/cpython-3.13.5-linux-x86_64-gnu/lib/python3.13/multiprocessing/popen_fork.py:67: DeprecationWarning: This process (pid=274580) is multi-threaded, use of fork() may lead to deadlocks in the child.\n", "/home/vonkm/.local/share/uv/python/cpython-3.13.5-linux-x86_64-gnu/lib/python3.13/multiprocessing/popen_fork.py:67: DeprecationWarning: This process (pid=274580) is multi-threaded, use of fork() may lead to deadlocks in the child.\n", "/home/vonkm/.local/share/uv/python/cpython-3.13.5-linux-x86_64-gnu/lib/python3.13/multiprocessing/popen_fork.py:67: DeprecationWarning: This process (pid=274580) is multi-threaded, use of fork() may lead to deadlocks in the child.\n" ] }, { "data": { "text/html": [ "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "
<xarray.Dataset> Size: 6MB\n",
       "Dimensions:       (iteration: 26, real_name: 251, pname: 2, oname: 101)\n",
       "Coordinates:\n",
       "  * iteration     (iteration) int64 208B 0 1 2 3 4 5 6 ... 19 20 21 22 23 24 25\n",
       "  * real_name     (real_name) object 2kB '0' '1' '2' '3' ... '248' '249' 'base'\n",
       "  * pname         (pname) <U3 24B 'p_0' 'p_1'\n",
       "  * oname         (oname) datetime64[ns] 808B 1970-01-01 ... 1970-01-01T00:00...\n",
       "Data variables:\n",
       "    par           (iteration, real_name, pname) float64 104kB 5.516 ... 1.0\n",
       "    obs           (iteration, real_name, oname) float64 5MB 5.516 5.525 ... 6.0\n",
       "    phi           (iteration, real_name) float64 52kB 2.239e+13 ... 0.007603\n",
       "    observations  (real_name, oname) float64 203kB 5.0 5.01 5.02 ... 5.99 6.0\n",
       "    weights       (real_name, oname) float64 203kB 1e+06 1e+06 ... 1e+06 1e+06
" ], "text/plain": [ " Size: 6MB\n", "Dimensions: (iteration: 26, real_name: 251, pname: 2, oname: 101)\n", "Coordinates:\n", " * iteration (iteration) int64 208B 0 1 2 3 4 5 6 ... 19 20 21 22 23 24 25\n", " * real_name (real_name) object 2kB '0' '1' '2' '3' ... '248' '249' 'base'\n", " * pname (pname) " ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig, ax = plt.subplots(figsize=(6.75, 3.0))\n", "ax.plot(\n", " y.index,\n", " ds[\"obs\"].isel(iteration=-1).values.T,\n", " color=\"C0\",\n", " alpha=0.1,\n", " label=\"iES\",\n", ")\n", "ax.plot(x, y, label=\"Observations\", color=\"k\", marker=\".\", linestyle=\"none\")\n", "ax.plot(\n", " x, ml_sp.simulate(), color=\"C1\", linestyle=\"--\", label=\"SciPy Linear Regression\"\n", ")\n", "lower_bound, upper_bound = ml_sp.solver.ci_sim()\n", "ax.fill_between(\n", " x,\n", " lower_bound,\n", " upper_bound,\n", " color=\"C1\",\n", " alpha=0.2,\n", " label=f\"{0.95:0.0%} Confidence Interval\",\n", ")\n", "handles, labels = ax.get_legend_handles_labels()\n", "ax.legend(handles[-4:], labels[-4:])\n", "ax.grid()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "SciPy is perfect on the black observations, confidence interval is the same . PEST++ iES is much wider but around the black observations." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Parameter estimates" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAArEAAAJOCAYAAACgHl/hAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjEsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvc2/+5QAAAAlwSFlzAAAPYQAAD2EBqD+naQAAfOdJREFUeJzt3XlYVPX+B/D3DDAzbDOIIJvsoLiCoiLmmlxxycS4pVxzIZdroVcksyi3cqEszTXNFjHUTH8ZlhZGuJUirqS4IqKgLK4wgso28/vDmJwERWE4M/B+Pc95YM585pzPmYF6e/ie7xGp1Wo1iIiIiIgMiFjoBoiIiIiInhZDLBEREREZHIZYIiIiIjI4DLFEREREZHAYYomIiIjI4DDEEhEREZHBYYglIiIiIoPDEEtEREREBsdY6AYaMpVKhZycHFhaWkIkEgndDhEREZGg1Go17ty5A0dHR4jFtTuXyhCrQzk5OXB2dha6DSIiIiK9kp2djebNm9dqGwyxOmRpaQkAcHo9FmKpmcDdPJu1Yzqjs7u10G0QERFRA6BUKuHs7KzJSLXBEKtDlUMIxFIzgw2xH+/Owva2LjA24vBpIiIiqht1McySyYQe62zeHaw/eFnoNoiIiIi0MMTSEy1KPI8bRSVCt0FERESkwRBLT3Tnfjk+TjgndBtEREREGhwTSzXy3ZFshAW4wM/ZSuhWiIhIhyoqKlBWViZ0G2TAJBJJrafPqgmGWKqx2dvS8MMbz0Es5py3REQNjVqtRl5eHgoKCoRuhQycWCyGu7s7JBKJTvfDEEs19ueVQmw5mo1hnV2EboWIiOpYZYBt1qwZzMzMeJMeeiaVN3rKzc2Fi4uLTn+OGGLpqXyUcA792zhAYWYidCtERFRHKioqNAG2adOmQrdDBs7W1hY5OTkoLy+HiYnu8gIv7KKncqu4FJ/+dl7oNoiIqA5VjoE1MzPMOc1Jv1QOI6ioqNDpfhhi6al9k3wJZ3KVQrdBRER1jEMIqC7U188RQyw9NZUamP3jKajVaqFbISIiokaKY2LpmRzKvIUf/8zBED8noVshIiIdGLz8D1y/U/83urG1lOKnyd1rVNu7d2/4+flhyZIlum2K9BLPxNIzW/DzGRSXlAvdBhER6cD1OyXIU96v9+VpgvPWrVsxd+5czePevXtDJBI9skycOFFTs3fvXjz//POwtraGmZkZvL29MXr0aJSWlla7n4yMDAwdOhS2traQy+V45ZVXkJ+fr1Xj5ub2yH4//PBDzfOXLl1Cz549YW5ujp49e+LSpUtar3/hhRfw/fff1+i4L1y4gPDwcDRv3hxSqRTu7u4ICwvDkSNHNDUikQjx8fE12p6hYoilZ5avLMHyXReEboOIiBopa2trWFpaaq0bP348cnNztZaFCxcCAE6fPo3+/fujU6dO2LdvH06ePInly5dDIpFUexFScXEx+vXrB5FIhF27dmH//v0oLS3F4MGDoVKptGo/+OADrf1OnjxZ89ybb74JJycnpKamwsHBAdOmTdM8991330EsFiM0NPSJx3zkyBH4+/vj/Pnz+Pzzz3H69Gn88MMP8PHxwZtvvlnj964h4HACqpWv/riIVzo1h4ethdCtEBFRI1PVcAIzMzPY29tXWf/rr7/C3t5eE2oBwNPTE/379692H/v378elS5dw/PhxyOVyAMC6devQpEkT7Nq1C0FBQZpaS0vLavd95swZLF68GN7e3hgzZowmxBYUFGDGjBnYtWvXE49XrVZjzJgx8Pb2xu+//651Vyw/Pz9MmTLlidtoSHgmlmqlrEKN9386zYu8iIhI79nb2yM3Nxf79u2r8WtKSkogEokglUo162QyGcRiMf744w+t2g8//BBNmzZFhw4d8PHHH6O8/O8hd76+vvjtt9+gUqnw66+/on379gCAt956CxEREXB2dn5iL6mpqTh16hTefPPNKm/ramVlVePjaggYYqnW9p6/jt/OXBO6DSIiInz22WewsLDQWjZs2AAAePnllxEWFoZevXrBwcEBQ4cOxYoVK6BUVj9tZNeuXWFubo63334bd+/eRXFxMaZNm4aKigrk5uZq6v73v/9h06ZN2L17N/773/9iwYIFmD59uub5Tz75BGfPnoWbmxvS09PxySefYN++fUhNTcWoUaPwyiuvwMPDAxMnTqx2fG56ejoAwMfHpy7eKoPHEEt14oPtp3C/TLeTGhMRET3JiBEjkJqaqrW8+OKLAAAjIyOsXbsWV65cwcKFC+Hk5IQFCxagTZs2WoH0Yba2ttiyZQt++uknWFhYQKFQoKCgAB07dtQ6GxoVFYXevXujffv2mDhxIhYtWoTly5ejpOTBhWpOTk7Yvn07srKysH37dtjY2OCNN97A6tWrMW/ePFhaWuLc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QSIjIzFv3jz8+OOPOHnyJEaNGgVHR0eEhIRotpOVlYXU1FRkZWWhoqICqampSE1NRVFREQCgX79+aN26NUaOHIk///wTO3fuxIwZMxAREQGpVFp/bxABAPby7l1ERET0D4LOE3vlyhWEhYXh5s2bsLW1Rffu3XHw4EHY2toCeBA2H55nrFu3bti4cSNmzJiBd999F97e3oiPj9fMEQsA06dPR3FxMSZMmICCggJ0794dCQkJmjliAWDWrFlYt26d5nGHDh0AALt370bv3r1hZGSE7du34/XXX0dgYCDMzc0xevRofPDBB7p+S6gK+85fR0QfL6HbICIiIj0i6DyxDR3nia0bxmIRUmf3g4VU8HtzEBERUS00qHliiZ6kXKVGcsZNodsgIiIiPcIQSwZhH8fFEhER0UMYYskg7EtniCUiIqK/McSSQbh88y4u3ywWug0iIiLSEwyxZDA4pICIiIgqMcSSwdh7/obQLRAREZGeYIglg5GccQOl5Sqh2yAiIiI9wBBLBqO4tALHsm4L3QYRERHpAYZYMigcF0tEREQAQywZmL0MsURERASGWDIwp3KUuH6nROg2iIiISGAMsWRw/rjAs7FERESNHUMsGZx9nGqLiIio0WOIJYPze/p1qFRqodsgIiIiATHEksG5UVSK07lKodsgIiIiATHEkkHal85xsURERI0ZQywZJM4XS0RE1LgxxJJBOnr5NopLyoVug4iIiATCEEsGqaxCjeSMm0K3QURERAJhiCWDxXGxREREjRdDLBksjoslIiJqvBhiyWBdunkXWTfvCt0GERERCYAhlgzaXg4pICIiapQYYsmg7T3HEEtERNQYMcSSQUvOuIHScpXQbRAREVE9Y4glg1ZcWoFjWbeFboOIiIjqGUMsGTzOUkBERNT4MMSSweN8sURERI0PQywZvLSrStwoKhG6DSIiIqpHDLHUIPyRfkPoFoiIiKgeCRpi58yZA5FIpLX4+Pg89jVbtmyBj48PZDIZ2rVrh59//lnrebVajVmzZsHBwQGmpqYICgpCenq6Vs2tW7cwYsQIyOVyWFlZYezYsSgqKtI8f+nSpUf6EolEOHjwYN0dPNUpjoslIiJqXAQ/E9umTRvk5uZqlj/++KPa2gMHDiAsLAxjx47F8ePHERISgpCQEKSlpWlqFi5ciGXLlmH16tVISUmBubk5goOD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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "mosaic = [[\"p_0\"], [\"p_1\"]]\n", "f, axd = plt.subplot_mosaic(\n", " mosaic,\n", " figsize=(7.0, 6.0),\n", " sharex=True,\n", " layout=\"tight\",\n", ")\n", "scipy_ci = ml_sp.solver.ci()\n", "for i, pname in enumerate(axd):\n", " par = ds[\"par\"].sel(pname=pname)\n", " parq = par.quantile(\n", " [0.025, 0.975], dim=\"real_name\", skipna=True\n", " ) # .values.reshape(2, -1)\n", " axd[pname].fill_between(\n", " parq[\"iteration\"],\n", " parq.values[0],\n", " parq.values[1],\n", " color=\"C0\",\n", " label=\"iES 95% CI\",\n", " linewidth=2.0,\n", " )\n", "\n", " scipy_opt = ml_sp.parameters.at[pname, \"optimal\"]\n", " axd[pname].axhline(\n", " scipy_opt,\n", " color=\"C1\",\n", " alpha=1.0,\n", " linewidth=2.0,\n", " label=\"SciPy 95% CI\\n(no iterations)\",\n", " )\n", " axd[pname].fill_between(\n", " x=[0.0, ml_ies_pp.noptmax],\n", " y1=[scipy_opt - scipy_ci[i], scipy_opt - scipy_ci[i]],\n", " y2=[scipy_opt + scipy_ci[i], scipy_opt + scipy_ci[i]],\n", " color=\"C1\",\n", " alpha=0.2,\n", " )\n", " axd[pname].set(\n", " xlabel=\"Iteration\" if \"p_1\" in pname else None,\n", " ylabel=pname,\n", " xlim=(0, ml_ies_pp.noptmax),\n", " ylim=parq.sel(iteration=1),\n", " )\n", " axd[pname].xaxis.set_major_locator(mpl.ticker.MultipleLocator(5.0))\n", " axd[pname].xaxis.set_minor_locator(mpl.ticker.MultipleLocator(1.0))\n", "axd[\"p_0\"].legend()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "iES stops after 21 iterations" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Response surface" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [], "source": [ "def get_response_surface(ml: LinRegModel, N: int) -> NDArray[float]:\n", " \"\"\"Calculate the response surface for parameters p_0 and p_1.\"\"\"\n", " p0 = np.linspace(\n", " ml.parameters.at[\"p_0\", \"pmin\"], ml.parameters.at[\"p_0\", \"pmax\"], N\n", " )\n", " p1 = np.linspace(\n", " ml.parameters.at[\"p_1\", \"pmin\"], ml.parameters.at[\"p_1\", \"pmax\"], N\n", " )\n", " P0, P1 = np.meshgrid(p0, p1)\n", " RSS = np.zeros(P0.shape)\n", " for i in range(N):\n", " for j in range(N):\n", " sim = ml.synthetic(ml.x, P0[i, j], P1[i, j])\n", " RSS[i, j] = ml.rss(sim)\n", " return P0, P1, RSS\n", "\n", "\n", "def plot_response_surface(\n", " P0: NDArray[float],\n", " P1: NDArray[float],\n", " RSS: NDArray[float],\n", " ax: plt.Axes,\n", " vmin: float | None = None,\n", " vmax: float | None = None,\n", ") -> plt.Axes:\n", " \"\"\"Plot the response surface for parameters p_0 and p_1.\"\"\"\n", " if vmin is None:\n", " vmin = np.min(RSS)\n", " if vmax is None:\n", " vmax = np.max(RSS)\n", "\n", " exp_min = int(np.floor(np.log10(vmin))) # round down to nearest integer\n", " exp_max = int(np.ceil(np.log10(vmax))) # round up to nearest integer\n", "\n", " levels = np.logspace(exp_min, exp_max, num=(exp_max - exp_min + 1))\n", " norm = mpl.colors.LogNorm(vmin=vmin, vmax=vmax)\n", " cs = ax.pcolormesh(P0, P1, RSS, cmap=cmc.batlow, norm=norm, shading=\"nearest\")\n", " ct = ax.contour(P0, P1, RSS, levels=levels, colors=\"w\")\n", " ax.clabel(ct, levels, fmt=\"%.1e\")\n", "\n", " ax.get_figure().colorbar(cs, ax=ax, label=\"Sum of Squared Residuals\")\n", " ax.set_xlabel(\"p_0\")\n", " ax.set_ylabel(\"p_1\")\n", " ax.set_title(\"Response Surface\", loc=\"left\")\n", " return ax" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [], "source": [ "P0, P1, RSS = get_response_surface(ml_sp, 500)" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAlUAAAIKCAYAAAAK3rqQAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjEsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvc2/+5QAAAAlwSFlzAAAPYQAAD2EBqD+naQABAABJREFUeJzsnXd8FNX6h5+Z2c2mAqGGEHrvvUkRkKqAgIjiVSmCFwUVUO+Va8PeFX+KYgNEsSIiKgLSpPfee+8lPdkyM78/FgIhyZwkm2RTzuNnP5I5c868M9vePec731cxTdNEIpFIJBKJROITqr8DkEgkEolEIikMyKRKIpFIJBKJJAeQSZVEIpFIJBJJDiCTKolEIpFIJJIcQCZVEolEIpFIJDmATKokEolEIpFIcgCZVEkkEolEIpHkADKpkkgkEolEIskBZFIlkUgkEolEkgPIpEoikUgkEokkB5BJlUQikUgkEkkOIJMqiUQikUgkkhxAJlUSiUQikUgkOYBMqiQSiUQikUhyAJlUSSQSiUQikeQAMqmSSCQSiUQiyQFkUiWRSCSFGEVRLB8TJ070d4gSSaHB5u8AJBKJRJJ7nDlzJuXfP/74Iy+88AL79u1L2RYaGpryb9M00XUdm01+NUgk2UHOVEkkEkkhJiIiIuVRvHhxFEVJ+Xvv3r2EhYXx119/0bx5cxwOBytXrmTo0KH069cv1Thjx46lU6dOKX8bhsEbb7xB1apVCQoKonHjxsyaNStvT04iyWfInyMSiURSxHnmmWd49913qVatGuHh4Znq88Ybb/Dtt98yZcoUatasyfLly7n//vspU6YMt956ay5HLJHkT2RSJZFIJD7y/fff8/333wMwc+ZM/ve//3Hs2DEaNGjAmDFjGDVqFAAjR47E7XYzffp0AKZOncpbb73Fvn37qFGjBs899xxDhw4F4IEHHiA4OJjPPvsMgE8++YTPPvuMbdu2MXjwYAYPHpxj8b/88st069Yt0/s7nU5ef/11Fi1aRNu2bQGoVq0aK1eu5LPPPpNJlaTIopimafo7CIlEIpHkPtOnT2fs2LFER0cDsGzZMjp37szJkyepUKFCyn5Dhw4lOjqaOXPmpGwbO3YsW7duZdmyZezatYsGDRoQEhKSanyXy0XTpk1Zt25dXpyORJLvkDNVEolEUsS5OTlSVZWbf2+73e6Uf8fHxwPw559/pkrGABwORy5FKZHkf2RSJZFIJJJUlClThp07d6batnXrVux2OwD16tXD4XBw/PhxudQnkdyATKokEolEkoouXbrwzjvvMGPGDNq2bcu3337Lzp07adq0KQBhYWE89dRTjBs3DsMwaN++PTExMaxatYpixYoxZMgQP5+BROIfZFIlkUgkklT06NGD559/nv/85z8kJyczfPhwHnzwQXbs2JGyzyuvvEKZMmV44403OHz4MCVKlKBZs2b873//82PkEol/kUJ1iUQikUgkkhxAmn9KJBKJRCKR5AAyqZJIJBKJRCLJAWRSJZFIJBKJRJIDyKRKIpFIJBKJJAeQSZVEIpFIJBJJDiCTKolEIpFIJJIcQCZVEolEIpFIJDmATKokEonEH3icsPQN7/8lEkmhQCZVEolE4g88TvjnTZlUSSSFCJlUSSQSicSS6dOnU6JECX+HIZHke2RSJZFIJIWcCxcu8Mgjj1CpUiUcDgcRERH06NGDVatWZar/Pffcw/79+1P+nj59OoqioCgKqqoSFRXFsGHDOH/+vE9xTp48mbp16xIUFETt2rWZMWNGqvYbj3vtERgYmGqfd999l7Jly1K2bFnee++9VG3r1q2jefPmeDweYSymafL555/TunVrQkNDKVGiBC1atGDSpEkkJiYCMHHiRJo0aeLTOUsKF7KgskQikRRy7rrrLlwuF19//TXVqlXj3LlzLF68mEuXLmWqf1BQEEFBQam2FStWjH379mEYBtu2bWPYsGGcPn2aBQsWZCvGTz/9lAkTJvDFF1/QsmVL1q9fz8iRIwkPD6dPnz5pjnsNRVFS/r19+3ZeeOEF/vjjD0zTpHfv3nTv3p2GDRvi8XgYNWoUn3/+OTab+KvvgQceYPbs2Tz33HN8/PHHlClThm3btjFp0iSqVKlCv379snWekkKOKZFIJJK8JynGNF8s5v1/LnLlyhUTMJctWybc7+GHHzbLli1rOhwOs379+ubvv/9umqZpTps2zSxevHjKvjf/bZqm+dprr5mqqpqJiYlm586dzdGjR6dqP3/+vGm3281Fixale/y2bduaTz31VKpt48ePN9u1a2d53Bv58ccfzdatW6f83apVK/Onn34yTdM0X3/9dfPxxx/PsO/N4wDmnDlz0rQZhmFGR0ebpmmaL774otm4ceNMjSkpGsiZKolEIvEF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3Djuv/9+wsPDU41lmiYPP/wwH3zwASEhIQC0a9eOL774gj179jBjxgzatWuXbhyKojBt2jT2799Phw4dmDdvHocPH2b79u289tpr3HnnnTlxCSWSNBT5maqbufbFe+MbfNeuXbRr144KFSrwzDPPEBISwk8//US/fv345Zdf6N+/PwATJ07kjTfeYMSIEbRq1YrY2Fg2btzI5s2b6datW8p4uq7Ts2dP2rRpw9tvv838+fN58cUX8Xg8vPzyy4D3A6Vv374sXbqUhx56iCZNmrBgwQKefvppTp06xQcffJAq7pUrVzJ79mweffRRwsLC+L//+z/uuusujh8/TqlSpQAYNWoUs2bNYsyYMdSrV49Lly6xcuVK9uzZQ7NmzQDvL8tevXrRvHlzXnzxRVRVZdq0aXTp0oUVK1bQqlWrDK9d5cqV0XWdb775hiFDhvj+ZNzAK6+8QkBAAE899RROp5Pbb7+dKlWqMG7cOAYPHsztt9+esrS4YcMGVq9ezb333ktUVBRHjx7l008/pVOnTuzevZvg4GAA4uPj6dChA3v27GH48OE0a9aMixcvMnfuXE6ePEnp0qUxDIO+ffuycuVKHn74YerWrcuOHTv44IMP2L9/vxTGSwosX3zxBV988UWqbT169GD+/Pm0atWKlStXMmrUKE6fPk1oaCj169dnzpw53HrrrRmOuW/fPiZMmMDly5epUqUKzz77LOPGjUtpdzgc/PDDD0ycOBGn00nVqlUZN24c48ePTzPW559/Trly5ejdu3fKtokTJ3LffffRunVrevbsyejRozOMpVWrVmzcuJHXXnuNkSNHcvHiRcqXL88tt9ySylpCIslRzCLKtGnTTMBctGiReeHCBfPEiRPmrFmzzDJlypgOh8M8ceJEyr633Xab2bBhQzM5OTllm2EY5i233GLWrFkzZVvjxo3NO+64w/K4Q4YMMQHzscceSzXWHXfcYQYEBJgXLlwwTdM058yZYwLmq6++mqr/wIEDTUVRzIMHD6ZsA8yAgIBU27Zt22YC5kcffZSyrXjx4ubo0aMzjM0wDLNmzZpmjx49TMMwUrYnJiaaVatWNbt162Z5bmfPnjXLlCljAmadOnXMUaNGmd99950ZHR2dZt/KlSubQ4YMSbP91ltvNW+99daUv5cuXWoCZrVq1czExMRU+x45csQEzHfeeSfV9pv3M03TXLNmjQmYM2bMSNn2wgsvmIA5e/bsNPtfO/9vvvnGVFXVXLFiRar2KVOmmIC5atWqtBdCIskEsUkus/J//zBjk1z+DkUikeQQRX75r2vXrpQpU4aKFSsycOBAQkJCmDt3bsodZJcvX2bJkiUMGjSIuLg4Ll68yMWLF7l06RI9evTgwIEDnDp1CvBqe3bt2pVyO68VNwqrry3fuVwuFi1aBMC8efPQNI3HH388Vb8nn3wS0zT566+/0pxH9erVU/5u1KgRxYoV4/DhwynbSpQowbp16zh9+nS6MW3dupUDBw5w3333cenSpZRzTUhI4LbbbmP58uVpnJFvpFy5cmzbto1Ro0Zx5coVpkyZwn333UfZsmV55ZVXfLoFfMiQIQQFBWVq3xv3c7vdXLp0iRo1alCiRIlUS52//PILjRs3TplpvBFFUQD4+eefqVu3LnXq1Em5HhcvXqRLly4ALF26NNvnJJFIJJLCRZFPqiZPnszff//NrFmzuP3227l48WKq23oPHjyIaZo8//zzlClTJtXjxRdfBOD8+fOA907C6OhoatWqRcOGDXn66afZvn17mmOqqprmbphrd6tcW348duwYkZGRaUpL1K1bN6X9RipVqpTmOOHh4SkaCYC3336bnTt3UrFiRVq1asXEiRNTJV3XksEhQ4akOdcvv/wSp9NJTEyMxdWE8uXL8+mnn3LmzBn27dvH//3f/1GmTBleeOEFvvrqK8u+VlStWjXT+yYlJfHCCy+kaNFKly5NmTJliI6OThX/oUOHaNCggeVYBw4cYNeuXWmux7Xn69pzL5FklQCbyhO31bS8w08ikRQsirymqlWrVil3//Xr14/27dtz3333sW/fPkJDQ1NmZp566il69OiR7hjXbkvu2LEjhw4d4rfffmPhwoV8+eWXfPDBB0yZMoURI0bk6nlompbu9htnhwYNGkSHDh349ddfWbhwIe+88w5vvfUWs2fPplevXinn+s4779CkSZN0x8usJYKiKNSqVYtatWpxxx13ULNmTWbOnJlyHa7NBN2MruvpnktmZ6kAHnvsMaZNm8bYsWNp27ZtijHovffeaznTlh6GYdCwYUPef//9dNsz4+4skaSHw6Yxrlstf4chkUhykCKfVN2Ipmm88cYbdO7cmY8//phnnnkmZUbJbrenql2VESVLlmTYsGEMGzaM+Ph4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R5LcUyAyqpvhhx9+YMOGDaxduzZH+991112cPn2aTp06oes6fr+fhx9+OH25LBCu2WYIdH8A2rZty9SpU6lbty7Hjx/nlVdeoXPnzmzbto3IyMhgdQXIfX969erFuHHj6NKlCzVr1mTBggXMmDEDVVUB688PBL5PYN05yu1x4+Pjs3zv4+Pj08svv5bdPsEm0H2CtKW/m2++merVq7Nv3z6ee+45+vTpw8qVK7Hb7QWqPyKsvoeCca1b+RkXiOP/5z//oVKlSumDqIJwH0nyiNVTZWY4dOiQXr58eX3z5s3pr4mWYhYtWqRHR0frkyZN0rds2aLPmDFDj4mJ0V999VVd13X96NGjOqCvWLEiQ72nn35ab9OmTVD6cZlg9Ccrzp07p5coUUL//PPPAxl+JvLSn5MnT+oDBgzQbTabbrfb9Tp16uiPPvqo7na7dV239vzoenD6lBX5dY5ye1yn06l/9913GV6bMGGCXr58eV3XdX358uU6oB87dizDPrfddpt+++23BydoAWb7lBX79u3TAf2vv/4KaKw5ITfXRlbLZVbfQ9ditj9m2wwGuTn+2LFj9dKlS2f4TCmI95EkZxTq5b/169dz8uRJWrRogcPhwOFwsGTJEj744AMcDkeGmYDLvPjii9x77708+OCDNG7cmEGDBvHGG28wduxYNE2z1DU7GP3JilKlSlGnTp0MfkwFpT/lypVj1qxZJCUlcfDgQXbt2kVERAQ1atQArHc1D0afsiK/zlFuj1uhQgXD9/7yvwXJdd5sn7KiRo0aREVF5fv5AfPXhtX30LUE41q36v7J7fHfffdd3nzzTebNm5fhgZeCeB9JckahHlT16NGDrVu3smnTpvStVatW3H333WzatCnLafnk5GRstozdvryfrusZXLMvc9k1u3379oWuP1mRmJjIvn37qFixYuA7cRV56c9l3G43lStXxu/38/PPPzNgwAAAS89PsPqUFfl1jnJ73Pbt22d47wHmz5+f/t5Xr16dChUqZNgnISGB1atX58v5yQqzfcqKI0eOcObMmXw/P2D+2rD6HrqWYFzrVt0/uTn+22+/zWuvvcbcuXNp1apVhrKCeB9JcojVU2WB5tqlmHvvvVd/9tln0/8eM2aMHhkZqX///ff6/v379Xnz5uk1a9bMMKX6ww8/6C6XS586daq+Y8cO/aGHHtJLlSqlx8fH52dXdF0PTH+efPJJffHixXpcXJy+fPlyvWfPnnpUVJR+8uTJ/OyKruvi/qxatUr/+eef9X379ulLly7Vr7vuOr169er6uXPn0vcpSOdH1wPTJ6vOkei41/Zl+fLlusPh0N999119586d+pgxY3Sn06lv3bo1fZ8333xTL1WqlP7LL7/oW7Zs0QcMGKBXr15dT0lJCWpfgtWnixcv6k899ZS+cuVKPS4uTv/rr7/0Fi1a6LVr19ZTU1MLXH88Ho++ceNGfePGjXrFihX1p556St+4caO+Z8+e9H2svIeC0R+rP+Ny26c333xTDwkJ0X/66Sf9+PHj6dvFixcz7GPlfSTJG0V+UNW1a1d96NCh6X/7fD795Zdf1mvWrKm73W49JiZGf/TRRzN8wem6rn/44Yd61apV9ZCQEL1Nmzb6qlWr8qcD1xCI/gwePFivWLGiHhISoleuXFkfPHiwvnfv3vzrxFWI+rN48WK9fv36usvl0suWLavfe++9+tGjRzO1U1DOj64Hpk9WnSPRca/ti67r+rRp0/Q6deroISEhesOGDfU//vgjQ7mmafqLL76oR0dH6y6XS+/Ro4e+e/fuoPflMoHuU3Jysn7DDTfo5cqV051Opx4bG6sPHz483wbxue1PXFycDmTaunbtmqFdq+6hYPTH6s+43PYpNjY2yz6NGTMmfR+r7yNJ3lB0PZs1IolEIpFIJBJJjinUmiqJRCKRSCSSgoIcVEkkEolEIpEEADmokkgkEolEIgkAclAlkUgkEolEEgDkoEoikUgkEokkAMhBlUQikUgkEkkAkIMqiUQikUgkkgAgB1USiUQikUgkAUAOqiQSSUDQdZ2XXnqJihUrEhoaSs+ePdmzZ4/VYUkkEkm+IQdVEokkILz99tt88MEHTJw4kdWrVxMeHk6vXr1ITU21OjSJRCLJF6RNjUQiSadbt240atQIgK+//hqn08kjjzzCq6++iqIo2dbTdZ1KlSrx5JNP8tRTTwFw4cIFoqOjmTp1KnfccUe+xC+RSCRWImeqJBJJBr788kscDgdr1qzhf//7H+PGjePzzz83rBMXF0d8fDw9e/ZMf61kyZK0bduWlStXBjtkiUQiKRA4rA5AIpEULGJiYnj//fdRFIW6deuydetW3n//fYYPH55tnfj4eACio6MzvB4dHZ1eJpFIJEUdOVMlkUgy0K5duwxLfe3bt2fPnj2oqmphVBKJRFLwkYMqiURimgoVKgBw4sSJDK+fOHEivUwikUiKOnJQJZFIMrB69eoMf69atYratWtjt9uzrVO9enUqVKjAggUL0l9LSEhg9erVtG/fPmixSiQSSUFCDqokEkkGDh06xKhRo9i9ezfff/89H374IY8//rhhHUVR+Pe//83rr7/Or7/+ytatWxkyZAiVKlVi4MCB+RO4RCKRWIwUqkskkgwMGTKElJQU2rRpg91u5/HHH+ehhx4S1nvmmWdISkrioYce4vz583Tq1Im5c+fidrvzIWqJRCKxHpmnSiKRpNOtWzeaNWvG+PHjrQ5FIpFICh1y+U8ikUgkEokkAMhBlUQiEbJs2TIiIiKy3SQSiUQil/8kEkkOSElJ4ejRo9mW16pVKx+jkUgkkoKJHFRJJBKJRCKRBAC5/CeRSCQSiUQSAOSgSiKRSCQSiSQAyEGVRCKRSCQSSQCQgyqJRCKRSCSSACAHVRKJRCKRSCQBQA6qJBKJRCKRSAKAHFRJJBKJRCKRBAA5qJJIJBKJRCIJAP8PTlvQ9aEkYikAAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "f, ax = plt.subplots(figsize=(6.75, 5.0))\n", "ax.set_xlim(4.8, 5.2)\n", "ax.set_ylim(0.6, 1.4)\n", "plot_response_surface(P0, P1, RSS, vmin=1e-3, vmax=1e1, ax=ax)\n", "ax.axhline(a, color=\"k\", linewidth=0.5, linestyle=\"--\", label=\"True\")\n", "ax.axvline(b, color=\"k\", linewidth=0.5, linestyle=\"--\")\n", "\n", "traj_kwargs = {\n", " \"color\": \"w\",\n", " \"marker\": \".\",\n", " \"linewidth\": 0.5,\n", " \"markersize\": 2.0,\n", " \"alpha\": 0.2,\n", "}\n", "# for real in ds[\"par\"].real_name.values:\n", "# ax.plot(\n", "# ds[\"par\"].sel(pname=\"p_0\", real_name=real),\n", "# ds[\"par\"].sel(pname=\"p_1\", real_name=real),\n", "# **traj_kwargs,\n", "# )\n", "ax.plot(\n", " ds[\"par\"].isel(iteration=-1).sel(pname=\"p_0\"),\n", " ds[\"par\"].isel(iteration=-1).sel(pname=\"p_1\"),\n", " **traj_kwargs,\n", " linestyle=\"none\",\n", ")\n", "\n", "sp_ci = ml_sp.solver.ci()\n", "ax.errorbar(\n", " x=ml_sp.p_0,\n", " y=ml_sp.p_1,\n", " xerr=sp_ci[0],\n", " yerr=sp_ci[1],\n", " linewidth=0.8,\n", " marker=\"o\",\n", " markersize=1.0,\n", " color=\"C1\",\n", " label=\"SciPy 95% CI\",\n", ")\n", "\n", "ies_ci = ds[\"par\"].isel(iteration=-1).quantile([0.025, 0.975], \"real_name\").values\n", "ies_base = ds[\"par\"].isel(iteration=-1).sel(real_name=\"base\").values\n", "ax.errorbar(\n", " x=ies_base[0],\n", " y=ies_base[1],\n", " xerr=np.abs(ies_ci[:, [0]] - ies_base[0]),\n", " yerr=np.abs(ies_ci[:, [1]] - ies_base[1]),\n", " color=\"C0\",\n", " linewidth=0.8,\n", " label=\"iES 95% CI\",\n", ")\n", "ax.legend(loc=\"lower right\", bbox_to_anchor=(1.0, 1.0), frameon=False)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Loss function" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "SciPy Phi: 2.00e-28\n" ] }, { "data": { "text/plain": [ "" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAm0AAAEmCAYAAAAwfKeMAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjEsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvc2/+5QAAAAlwSFlzAAAPYQAAD2EBqD+naQAAbGlJREFUeJzt3Xl8VNX9//HXvbNPJnvIRhJ2FRESNxC1BYEWsK641fpTRIutgkuprfr9VnGppa6lKP1i6VfRulsVt68rgiiiCBhQEQQMexLINklmMuu9vz8mM8mQsIQsM0M+z8djnLnnnrn3JOPAm3PPPUfRdV1HCCGEEELENTXWDRBCCCGEEIcmoU0IIYQQIgFIaBNCCCGESAAS2oQQQgghEoCENiGEEEKIBCChTQghhBAiAUhoE0IIIYRIABLahBBCCCESgDHWDUhUmqaxZ88ekpOTURQl1s0RQgghRBzSdZ2Ghgby8/NR1c71lUloO0J79uyhsLAw1s0QQgghRALYuXMnBQUFnTqGhLYjlJycDIQ+hJSUlBi3RgghhBDxqL6+nsLCwkhu6AwJbUcofEk0JSVFQpsQQgghDqorhlLJjQhCCCGEEAlAQpsQQgghRAKQ0CaEEEIIkQBkTJsQQoguoes6gUCAYDAY66YI0WMMBgNGo7FHpv+S0CaEEKLTfD4f5eXluN3uWDdFiB5nt9vJy8vDbDZ363kktAkhhOgUTdMoKyvDYDCQn5+P2WyWScdFr6DrOj6fj3379lFWVsaQIUM6PYHuwUhoE0II0Sk+nw9N0ygsLMRut8e6OUL0KJvNhslkYvv27fh8PqxWa7edS25E6KSqBm+smyCEEHGhO3sYhIhnPfX/vnzDOqnK5Yl1E4QQQgjRC0ho6ySnK0AgqMW6GUIIIYQ4yklo6yR3IIjLK7e3CyFEIho7diy33HJLrJshxGGR0NZJHl+ABq8/1s0QQghxBF577TXuu+++yPbYsWNRFKXN47e//W2kzieffMK4cePIyMjAbrczZMgQpk6dis/ni8WPIHoRuXu0kwJBqHX7KEiXO6aEECLRZGRktCmbPn069957b1RZ+K7YDRs2MGnSJG688UbmzZuHzWZj8+bNvPrqqzKpsOh2vbqnbefOnYwdO5bjjz+eESNG8Morr3T4GAZVwdkUwBeQcW1CCBGm6zpuXyAmD13XD7ud7V0etdvt5ObmRj1SUlIA+OCDD8jNzeXBBx/khBNOYNCgQUyaNImFCxdis9kOeB5FUXjiiSc455xzsNvtDB06lJUrV7JlyxbGjh1LUlISp59+Olu3bo163xtvvMFJJ52E1Wpl4MCB3HPPPQQCgcj+Rx99lOHDh5OUlERhYSE33HADjY2Nkf2LFi0iLS2N999/n6FDh+JwOJg0aRLl5eWH/TsS8aNX97QZjUbmzp1LSUkJFRUVnHzyyZx99tkkJSUd9jGsJgNN3iAubwCzsXtnQhZCiETR5A9y/F3vx+TcG+6diN3cPX+95ebmUl5ezvLly/npT3/aoffed999PProozz66KPcdttt/OpXv2LgwIHccccdFBUVcc011zBz5kzeffddAD799FOuuuoq5s2bx09+8hO2bt3KddddB8Ds2bOB0FQT8+bNY8CAAfz444/ccMMN/PGPf+Qf//hH5Lxut5uHH36Yf//736iqyv/7f/+PW2+9leeee66Lfiuip/Tqnra8vDxKSkqA0BcxKyuLmpqaDh3D7fMT1HUavYFDVxZCCBH3/vGPf+BwOKIe4YBzySWXcPnllzNmzBjy8vK48MILefzxx6mvrz/kcadNm8all17KMcccw2233ca2bdu44oormDhxIkOHDuXmm29m2bJlkfr33HMPt99+O1OnTmXgwIH87Gc/47777uOJJ56I1Lnllls466yz6N+/P+PGjePPf/4zL7/8ctR5/X4/CxYs4JRTTuGkk05i5syZLFmypGt+WaJHJXRP2/Lly3nooYdYs2YN5eXlvP7661xwwQVRdebPn89DDz1ERUUFxcXFPPbYY4wcObLNsdasWUMwGKSwsLBDbfhmdz0T+2RS4/JRmCHj2oQQAsBmMrDh3okxO3dnXHHFFfz3f/93VFlOTg4QWhz8qaee4s9//jMff/wxX375JX/5y1944IEHWLVqFXl5eQc87ogRI9ocb/jw4VFlHo+H+vp6UlJSWLduHStWrOD++++P1AkGg3g8HtxuN3a7nY8++og5c+awceNG6uvrCQQCUfshdLl30KBBkWPk5eWxd+/eTvyGRKwkdE+by+WiuLiY+fPnt7v/pZdeYtasWcyePZu1a9dSXFzMxIkT2/zPWlNTw1VXXcU///nPDrfhh8oGbGYDziY/Hr8MQhVCCAiN4bKbjTF5dHbd09TUVAYPHhz1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sXfv3sj2xx9/THZ2NsOGDTvoue12OwMHDowqa32czZs3c/nllzNw4EBSUlLo378/ADt27IjUSU9P53//93/5n//5HwYNGsTtt99+0J8foKioiL59+0a2R48ejaZpbNq0ifr6evbs2cMZZ5wR9Z4zzjiD77///pDHbs1utzNo0KDIduvfk9PppLy8nFGjRkX2G41GTjnllMh2cXEx48ePZ/jw4VxyySUsXLiQ2traDrWhO0ho60In9E1FVaDc6aHa5UXTQ/O1CSGESBypqakMHjw46pGcnBxVp2/fvlx55ZU8/vjjfPfdd3g8HhYsWHDQ45pMLXN3KopywLLwJchDHSP8ntb133zzzUjAPNi5D3Wcc889l5qaGhYuXMiXX37Jl19+CdDmDtnly5djMBgoLy/vkfFeqhqKLXqry5T7j+mD9n9PegcubRoMBj788EPeffddjj/+eB577DGOPfZYysrKjrDlXUNCWxeym40MyQ59sdfvcmIxqlS7vDFulRBCiO6Unp5OXl5ezAep67rOW2+91WY8W0dVV1ezadMm/vSnPzF+/HiGDh3abi/T559/zgMPPMBbb72Fw+E45Hg8CPXU7dmzJ7L9xRdfoKoqxx57LCkpKeTn57NixYqo96xYsYLjjz8egD59+gBE9Wp2dN631NRU8vLyIkEUIBAIsGbNmqh6iqJwxhlncM899/D1119jNpujxr3Fgkz50cVGFKSyqbKBdbvqOH1QJg2eAB5/sMdudxdCiHjTU3NWdtV53G43FRUVUWUWi4X09HSeeOIJSktLufDCCxk0aBAej4dnnnmG7777LmogfyysWbMGt9vNmWee2anjpKenk5mZyT//+U/y8vLYsWNHm0ufDQ0NXHnlldx0001MnjyZgoICTj31VM4991wuvvjiAx7barUydepUHn74Yerr67npppu49NJLyc3NBeAPf/gDs2fPZtCgQZSUlPDUU09RWlrKc889B8DgwYMpLCzk7rvv5v777+eHH37gkUce6fDPePPNN/PXv/6VIUOGcNxxx/Hoo49G3ZH65ZdfsmTJEn7+85+TnZ3Nl19+yb59+xg6dGiHz9WVJLR1seLCNF5Zs4v1O0M9bXVNfho8AQltQohex6AqJFmMuLyBDs+fdqSSLEYMqtKpYyxcuJCFCxdGlU2cOJH33nuPkSNH8tlnn/Hb3/6WPXv2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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "f, ax = plt.subplots(figsize=(6.75, 3.0))\n", "ax.plot(ds[\"phi\"].mean(\"real_name\") / weight**2, label=\"iES mean\")\n", "ax.fill_between(\n", " ds[\"phi\"].iteration,\n", " ds[\"phi\"].min(\"real_name\") / weight**2,\n", " ds[\"phi\"].max(\"real_name\") / weight**2,\n", " color=\"C0\",\n", " alpha=0.2,\n", " label=\"iES min/max bounds\",\n", ")\n", "print(f\"SciPy Phi: {ml_sp.rss():.2e}\")\n", "# ax.axhline(ml_sp.rss(), color=\"C1\", linestyle=\"--\", label=\"SciPy RSS\")\n", "ax.plot([], [], color=\"C1\", linestyle=\"--\", label=f\"SciPy: {ml_sp.rss():0.2e}\")\n", "ax.semilogy()\n", "ax.set(\n", " xlim=(0, ml_ies_pp.noptmax),\n", " # ylim=(1e-4, 1e2),\n", " ylabel=\"Phi | RSS\",\n", " xlabel=\"iteration\",\n", ")\n", "ax.xaxis.set_major_locator(mpl.ticker.MultipleLocator(5.0))\n", "ax.xaxis.set_minor_locator(mpl.ticker.MultipleLocator(1.0))\n", "ax.legend()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The fit for both iES is still a lot larger than SciPy but the outcomes are pretty much the same. The CI is basically zero for both." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Case 2: noise on observations" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [], "source": [ "noise_std = 0.05 # noise level\n", "y_n = LinRegModel.synthetic(p_0=b, p_1=a, x=x, noise_std=noise_std)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Solve model\n", "\n", "#### SciPy" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
initialpminpmaxoptimalvary
parnames
p_05.5017943.636827.3864895.015022True
p_11.000000-1.000003.0000000.973545True
\n", "
" ], "text/plain": [ " initial pmin pmax optimal vary\n", "parnames \n", "p_0 5.501794 3.63682 7.386489 5.015022 True\n", "p_1 1.000000 -1.00000 3.000000 0.973545 True" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ml_sp_n = LinRegModel(y_n)\n", "ml_sp_n.add_solver(LinRegSolver())\n", "ml_sp_n.solve()\n", "ml_sp_n.parameters" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### PEST++ iES\n", "\n", "We give iES the same noise standard deviation as the true noise. " ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "tags": [ "hide-output" ] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "2025-09-30 16:36:51.679580 starting: opening PstFrom.log for logging\n", "2025-09-30 16:36:51.679770 starting PstFrom process\n", "2025-09-30 16:36:51.679806 starting: setting up dirs\n", "2025-09-30 16:36:51.683855 starting: removing existing new_d '/home/vonkm/repos/pestas/src/scenarios/linreg_noise/ies_template'\n", "2025-09-30 16:36:51.691695 finished: removing existing new_d '/home/vonkm/repos/pestas/src/scenarios/linreg_noise/ies_template' took: 0:00:00.007840\n", "2025-09-30 16:36:51.691821 starting: copying original_d '/home/vonkm/repos/pestas/src/scenarios/linreg_noise/ies_model' to new_d '/home/vonkm/repos/pestas/src/scenarios/linreg_noise/ies_template'\n", "2025-09-30 16:36:51.694790 finished: copying original_d '/home/vonkm/repos/pestas/src/scenarios/linreg_noise/ies_model' to new_d '/home/vonkm/repos/pestas/src/scenarios/linreg_noise/ies_template' took: 0:00:00.002969\n", "2025-09-30 16:36:51.696415 finished: setting up dirs took: 0:00:00.016609\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "2025-09-30 16:36:51.704459 starting: adding grid type d style parameters for file(s) ['parameters_sel.csv']\n", "2025-09-30 16:36:51.704612 starting: loading list-style /home/vonkm/repos/pestas/src/scenarios/linreg_noise/ies_template/parameters_sel.csv\n", "2025-09-30 16:36:51.704729 starting: reading list-style file: /home/vonkm/repos/pestas/src/scenarios/linreg_noise/ies_template/parameters_sel.csv\n", "2025-09-30 16:36:51.706427 finished: reading list-style file: /home/vonkm/repos/pestas/src/scenarios/linreg_noise/ies_template/parameters_sel.csv took: 0:00:00.001698\n", "2025-09-30 16:36:51.706536 loaded list-style '/home/vonkm/repos/pestas/src/scenarios/linreg_noise/ies_template/parameters_sel.csv' of shape (2, 2)\n", "2025-09-30 16:36:51.707555 finished: loading list-style /home/vonkm/repos/pestas/src/scenarios/linreg_noise/ies_template/parameters_sel.csv took: 0:00:00.002943\n", "2025-09-30 16:36:51.708295 starting: writing list-style template file '/home/vonkm/repos/pestas/src/scenarios/linreg_noise/ies_template/parameters_sel.csv.tpl'\n", "2025-09-30 16:36:51.715411 finished: writing list-style template file '/home/vonkm/repos/pestas/src/scenarios/linreg_noise/ies_template/parameters_sel.csv.tpl' took: 0:00:00.007116\n", "2025-09-30 16:36:51.717969 finished: adding grid type d style parameters for file(s) ['parameters_sel.csv'] took: 0:00:00.013510\n", "2025-09-30 16:36:51.719023 starting: adding observations from output file simulation.csv\n", "2025-09-30 16:36:51.719819 starting: adding observations from tabular output file '['simulation.csv']'\n", "2025-09-30 16:36:51.719927 starting: reading list-style file: /home/vonkm/repos/pestas/src/scenarios/linreg_noise/ies_template/simulation.csv\n", "2025-09-30 16:36:51.720827 finished: reading list-style file: /home/vonkm/repos/pestas/src/scenarios/linreg_noise/ies_template/simulation.csv took: 0:00:00.000900\n", "2025-09-30 16:36:51.721209 starting: building insfile for tabular output file simulation.csv\n", "2025-09-30 16:36:51.724428 finished: building insfile for tabular output file simulation.csv took: 0:00:00.003219\n", "2025-09-30 16:36:51.725109 starting: adding observation from instruction file '/home/vonkm/repos/pestas/src/scenarios/linreg_noise/ies_template/simulation.csv.ins'\n", "2025-09-30 16:36:51.728591 finished: adding observation from instruction file '/home/vonkm/repos/pestas/src/scenarios/linreg_noise/ies_template/simulation.csv.ins' took: 0:00:00.003482\n", "2025-09-30 16:36:51.730333 finished: adding observations from tabular output file '['simulation.csv']' took: 0:00:00.010514\n", "2025-09-30 16:36:51.731712 finished: adding observations from output file simulation.csv took: 0:00:00.012689\n", "2025-09-30 16:36:51.732563 WARNING: add_py_function() command: run() is not being called directly\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "/home/vonkm/repos/pyemu/pyemu/logger.py:100: PyemuWarning: 2025-09-30 16:36:51.732563 WARNING: add_py_function() command: run() is not being called directly\n", "\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "noptmax:0, npar_adj:2, nnz_obs:101\n", "noptmax:25, npar_adj:2, nnz_obs:101\n", "noptmax:25, npar_adj:2, nnz_obs:101\n", "noptmax:25, npar_adj:2, nnz_obs:101\n", "\n", "\n", " pestpp-ies: a GLM iterative ensemble smoother\n", "\n", " by the PEST++ development team\n", "\n", "\n", "version: 5.2.16\n", "binary compiled on Dec 1 2024 at 10:51:08\n", "\n", "started at 09/30/25 16:36:51\n", "...processing command line: ' ./pestpp-ies pest.pst /h :4004'\n", "...using panther run manager in master mode using port 4004\n", "\n", "using control file: \"pest.pst\"\n", "in directory: \"/home/vonkm/repos/pestas/src/scenarios/linreg_noise/ies_template\"\n", "on host: \"asuszbs14\"\n", "\n", "processing control file pest.pst\n", "\n", "\n", ":~-._ _.-~:\n", ": :.~^o._ ________---------________ _.o^~.:.:\n", " : ::.`?88booo~~~.::::::::...::::::::::::..~~oood88P'.::.:\n", " : ::: `?88P .:::.... ........:::::. ?88P' :::. :\n", " : :::. `? .::. . ...........:::. P' .:::. :\n", " : ::: ... .. ... .. .::::......::. :::. :\n", " ` :' .... .. .:::::. . ..:::::::....:::. `: .'\n", " :.. ____:::::::::. . . ....:::::::::____ ... :\n", " :... `:~ ^~-:::::.. .........:::::-~^ ~::.::::\n", " `.::. `\\ (8) \\b:::..::.:.:::::::d/ (8) /'.::::'\n", " ::::. ~-._v |b.::::::::::::::d| v_.-~..:::::\n", " `.:::::... ~~^?888b..:::::::::::d888P^~...::::::::'\n", " `.::::::::::....~~~ .:::::::::~~~:::::::::::::::'\n", " `..::::::::::: . ....:::: ::::::::::::,'\n", " `. .::::::: . .::::. ::::::::'.'\n", " `._ .::: . :::::. :::::_.'\n", " `-. : . ::::: :,-'\n", " :. :___ .:::___ .::\n", " ..--~~~~--:+::. ~~^?b..:::dP^~~.::++:--~~~~--..\n", " ___....--`+:::. `~8~' .:::+'--....___\n", " ~~ __..---`_=:: ___gd8bg___ :==_'---..__ ~~\n", " -~~~ _.--~~`-.~~~~~~~~~~~~~~~,-' ~~--._ ~~~-\n", "\n", "\n", " starting PANTHER master...\n", "\n", "IP addresses:\n", " 0.0.0.0:4004 (IPv4)\n", "\n", "PANTHER master listening on socket: 0.0.0.0:4004 (IPv4)\n", "\n", " --- initializing --- \n", "...using glm algorithm\n", "...using REDSVD for truncated svd solve\n", "...maxsing: 10000000\n", "...eigthresh: 1e-06\n", "...initializing localizer\n", "...not using localization\n", "...using lambda multipliers: 0.1 , 1 , 10 , \n", "...using lambda scaling factors: 0.75 , 1 , 1.1 , \n", "...acceptable phi factor: 1.05\n", "...lambda increase factor: 10\n", "...lambda decrease factor: 0.75\n", "...max run fail: 1\n", "\n", " --- sanity_check warnings --- \n", "...noptmax > 3, this is a lot of iterations for an ensemble method...\n", "...continuing initialization...\n", "...initializing prior parameter covariance matrix\n", "...parcov loaded from parameter bounds, using par_sigma_range 4\n", "...initializing observation noise covariance matrix\n", "...obscov loaded from observation weights\n", "...using reg_factor: 0\n", "...drawing parameter realizations: 251\n", "...not using prior parameter covariance matrix scaling\n", "...loading obs ensemble from csv file pest_starting_obs_ensemble.csv\n", "...setting weights ensemble from control file weights\n", "...saved weight ensemble to pest.weights.csv\n", "...adding 'base' parameter values to ensemble\n", "...'base' realization already in observation ensemble, ignoring 'include_base'\n", "...saved initial parameter ensemble to pest.0.par.csv\n", "...saved obs+noise observation ensemble (obsval + noise realizations) to pest.obs+noise.csv\n", "...using subset in lambda testing, percentage of realizations used in subset testing: 10\n", "...subset how: RANDOM\n", "...centering on ensemble mean vector\n", "...running initial ensemble of size 251\n", " running model 251 times\n", " starting at 09/30/25 16:36:51\n", "\n", " waiting for agents to appear...\n", "\n", "\n", "PANTHER progress\n", " avg = average model run time in minutes\n", " runs(C = completed | F = failed | T = timed out)\n", " agents(R = running | W = waiting | U = unavailable)\n", "--------------------------------------------------------------------------------\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "/home/vonkm/.local/share/uv/python/cpython-3.13.5-linux-x86_64-gnu/lib/python3.13/multiprocessing/popen_fork.py:67: DeprecationWarning: This process (pid=274580) is multi-threaded, use of fork() may lead to deadlocks in the child.\n", "/home/vonkm/.local/share/uv/python/cpython-3.13.5-linux-x86_64-gnu/lib/python3.13/multiprocessing/popen_fork.py:67: DeprecationWarning: This process (pid=274580) is multi-threaded, use of fork() may lead to deadlocks in the child.\n", "/home/vonkm/.local/share/uv/python/cpython-3.13.5-linux-x86_64-gnu/lib/python3.13/multiprocessing/popen_fork.py:67: DeprecationWarning: This process (pid=274580) is multi-threaded, use of fork() may lead to deadlocks in the child.\n", "/home/vonkm/.local/share/uv/python/cpython-3.13.5-linux-x86_64-gnu/lib/python3.13/multiprocessing/popen_fork.py:67: DeprecationWarning: This process (pid=274580) is multi-threaded, use of fork() may lead to deadlocks in the child.\n", "/home/vonkm/.local/share/uv/python/cpython-3.13.5-linux-x86_64-gnu/lib/python3.13/multiprocessing/popen_fork.py:67: DeprecationWarning: This process (pid=274580) is multi-threaded, use of fork() may lead to deadlocks in the child.\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "2025-09-30 16:36:52.406518 : trying to connect to localhost:4004...\n", "2025-09-30 16:36:52.417305 : trying to connect to localhost:4004...\n", "2025-09-30 16:36:52.431882 : trying to connect to localhost:4004...\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "/home/vonkm/.local/share/uv/python/cpython-3.13.5-linux-x86_64-gnu/lib/python3.13/multiprocessing/popen_fork.py:67: DeprecationWarning: This process (pid=274580) is multi-threaded, use of fork() may lead to deadlocks in the child.\n", "/home/vonkm/.local/share/uv/python/cpython-3.13.5-linux-x86_64-gnu/lib/python3.13/multiprocessing/popen_fork.py:67: DeprecationWarning: This process (pid=274580) is multi-threaded, use of fork() may lead to deadlocks in the child.\n", "/home/vonkm/.local/share/uv/python/cpython-3.13.5-linux-x86_64-gnu/lib/python3.13/multiprocessing/popen_fork.py:67: DeprecationWarning: This process (pid=274580) is multi-threaded, use of fork() may lead to deadlocks in the child.\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "2025-09-30 16:36:52.457594 : trying to connect to localhost:4004...\n", "2025-09-30 16:36:52.482627 : trying to connect to localhost:4004...\n", "2025-09-30 16:36:52.485412 : trying to connect to localhost:4004...2025-09-30 16:36:52.488490 : trying to connect to localhost:4004...\n", "\n", "2025-09-30 16:36:52.526999 : trying to connect to localhost:4004...\n", "2025-09-30 16:36:52.688166 : connected to localhost:4004\n", "2025-09-30 16:36:52.704440 : connected to localhost:4004\n", "2025-09-30 16:36:52.714446 : connected to localhost:4004\n", "2025-09-30 16:36:52.723606 : connected to localhost:4004\n", "2025-09-30 16:36:52.745847 : connected to localhost:4004\n", "2025-09-30 16:36:52.752487 : connected to localhost:4004\n", "2025-09-30 16:36:52.759138 : connected to localhost:4004\n", "2025-09-30 16:36:52.789512 : connected to localhost:4004\n", "09/30 16:37:03 remaining file transfers: 0 \n", "\n", " 251 runs complete : 0 runs failed\n", " 0.00638 avg run time (min) : 0.193 run mgr time (min)\n", " 8 agents connected\n", "\n", "\n", "...saved initial obs ensemble to pest.0.obs.csv\n", "saved par and rei files for realization BASE for iteration 0\n", "saved par and rei files for realization BASE\n", "\n", " --- pre-drop initial phi summary --- \n", " phi type mean std min max\n", " measured 1.60569e+14 1.92366e+14 1.3616e+12 1.06544e+15\n", " actual 1.60372e+14 1.92688e+14 1.1796e+12 1.07303e+15\n", " note: 'measured' phi reported above includes \n", " realizations of measurement noise, \n", " 'actual' phi does not.\n", " --- observation group phi summary --- \n", " (computed using 'actual' phi)\n", " (sorted by mean phi)\n", "group count nconflict mean std min max percent std\n", "oname:simulation.csv_otype:lst_usecol:observations 101 0 1.6e+14 1.93e+14 1.18e+12 1.07e+15 100 3.17e-14\n", " Note: 'percent' is the percentage of the actual phi for each realization.\n", "\n", "...checking for prior-data conflict\n", "\n", " --- initial phi summary --- \n", " phi type mean std min max\n", " measured 1.60569e+14 1.92366e+14 1.3616e+12 1.06544e+15\n", " actual 1.60372e+14 1.92688e+14 1.1796e+12 1.07303e+15\n", " note: 'measured' phi reported above includes \n", " realizations of measurement noise, \n", " 'actual' phi does not.\n", " --- observation group phi summary --- \n", " (computed using 'actual' phi)\n", " (sorted by mean phi)\n", "group count nconflict mean std min max percent std\n", "oname:simulation.csv_otype:lst_usecol:observations 101 0 1.6e+14 1.93e+14 1.18e+12 1.07e+15 100 3.17e-14\n", " Note: 'percent' is the percentage of the actual phi for each realization.\n", "\n", "...current lambda: 1e+11\n", "\n", " --- initialization complete --- \n", "\n", " --- starting solve for iteration: 1 --- \n", "...current lambda: 1e+11\n", "...starting calcs for glm factor 1e+10\n", "...finished calcs for: 1e+10\n", "...starting calcs for glm factor 1e+11\n", "...finished calcs for: 1e+11\n", "...starting calcs for glm factor 1e+12\n", "...finished calcs for: 1e+12\n", "\n", " --- running upgrade ensembles --- \n", "...subset idx:pe real name: 0:0, 1:1, 3:3, 9:9, 30:30, 32:32, 33:33, 36:36, 64:64, 73:73, 86:86, 94:94, 97:97, 101:101, 109:109, 113:113, 127:127, 148:148, 174:174, 178:178, 196:196, 201:201, 230:230, 247:247, 250:BASE, \n", "...subset idx:oe real name: 0:0, 1:1, 3:3, 9:9, 30:30, 32:32, 33:33, 36:36, 64:64, 73:73, 86:86, 94:94, 97:97, 101:101, 109:109, 113:113, 127:127, 148:148, 174:174, 178:178, 196:196, 201:201, 230:230, 247:247, 250:BASE, \n", " running model 225 times\n", " starting at 09/30/25 16:37:03\n", " 8 agents ready\n", "\n", "\n", "PANTHER progress\n", " avg = average model run time in minutes\n", " runs(C = completed | F = failed | T = timed out)\n", " agents(R = running | W = waiting | U = unavailable)\n", "--------------------------------------------------------------------------------\n", "09/30 16:37:10 remaining file transfers: 0 \n", "\n", " 225 runs complete : 0 runs failed\n", " 0.00347 avg run time (min) : 0.118 run mgr time (min)\n", " 8 agents connected\n", "\n", "\n", "\n", " --- evaluating upgrade ensembles --- \n", "...last mean: 1.60569e+14\n", "...last stdev: 1.92366e+14\n", "\n", " --- phi summary for best lambda, scale fac: 1e+10 , 1 , --- \n", " phi type mean std min max\n", " measured 5.29826e+11 8.99818e+10 2.60354e+11 6.70309e+11\n", " actual 2.65962e+11 6.29986e+09 2.60354e+11 2.91591e+11\n", " note: 'measured' phi reported above includes \n", " realizations of measurement noise, \n", " 'actual' phi does not.\n", "\n", " --- running remaining realizations for best lambda, scale:1e+10 , 1 , --- \n", " running model 226 times\n", " starting at 09/30/25 16:37:10\n", " 8 agents ready\n", "\n", "\n", "PANTHER progress\n", " avg = average model run time in minutes\n", " runs(C = completed | F = failed | T = timed out)\n", " agents(R = running | W = waiting | U = unavailable)\n", "--------------------------------------------------------------------------------\n", "09/30 16:37:17 remaining file transfers: 0 \n", "\n", " 226 runs complete : 0 runs failed\n", " 0.00347 avg run time (min) : 0.12 run mgr time (min)\n", " 8 agents connected\n", "\n", "\n", "...phi summary for entire ensemble using lambda,scale_fac 1e+10 , 1 , \n", " phi type mean std min max\n", " measured 5.07992e+11 6.59165e+10 2.60354e+11 6.79944e+11\n", " actual 2.6548e+11 5.75759e+09 2.60354e+11 2.9908e+11\n", " note: 'measured' phi reported above includes \n", " realizations of measurement noise, \n", " 'actual' phi does not.\n", "...last best mean phi * acceptable phi factor: 1.68597e+14\n", "...current best mean phi: 5.07992e+11\n", "\n", " --- updating parameter ensemble --- \n", "\n", " --- updating lambda to 7.5e+09 --- \n", "\n", " --- EnsembleMethod iteration 1 report --- \n", " number of active realizations: 251\n", " number of model runs: 702\n", " current obs ensemble saved to pest.1.obs.csv\n", " current par ensemble saved to pest.1.par.csv\n", "saved par and rei files for realization BASE for iteration 1\n", "saved par and rei files for realization BASE\n", " phi type mean std min max\n", " measured 5.07992e+11 6.59165e+10 2.60354e+11 6.79944e+11\n", " actual 2.6548e+11 5.75759e+09 2.60354e+11 2.9908e+11\n", " note: 'measured' phi reported above includes \n", " realizations of measurement noise, \n", " 'actual' phi does not.\n", " --- observation group phi summary --- \n", " (computed using 'actual' phi)\n", " (sorted by mean phi)\n", "group count nconflict mean std min max percent std\n", "oname:simulation.csv_otype:lst_usecol:observations 101 0 2.65e+11 5.76e+09 2.6e+11 2.99e+11 100 3.2e-14\n", " Note: 'percent' is the percentage of the actual phi for each realization.\n", "\n", "\n", " --- parameter group change summmary --- \n", "group count mean chg std chg n at ubnd % at ubnd n at lbnd % at lbnd n std decr\n", "optimal 2 6.246 98.68 0 0 0 0 2\n", " Note: parameter change summary sorted according to percent at bounds.\n", " Note: the parameter change statistics implicitly include the effect of \n", " realizations that have failed or have been dropped.\n", " Note: the 'n std decr' is the number of parameters with current\n", " std less 5% of their initial std.\n", "\n", "...saved parameter change summary to pest.1.pcs.csv\n", "\n", " --- phi-based termination criteria check --- \n", "...phiredstp: 0.01\n", "...nphistp: 3\n", "...nphinored (also used for consecutive bad lambda cycles): 3\n", "...best mean phi sequence: 1.60569e+14 , 5.07992e+11 , \n", "...best phi yet: 5.07992e+11\n", "...number of consecutive bad lambda testing cycles: 0\n", "...number of iterations satisfying phiredstp criteria: 1\n", "...number of iterations since best yet mean phi: 0\n", "\n", " --- starting solve for iteration: 2 --- \n", "...current lambda: 7.5e+09\n", "...starting calcs for glm factor 7.5e+08\n", "...finished calcs for: 7.5e+08\n", "...starting calcs for glm factor 7.5e+09\n", "...finished calcs for: 7.5e+09\n", "...starting calcs for glm factor 7.5e+10\n", "...finished calcs for: 7.5e+10\n", "\n", " --- running upgrade ensembles --- \n", "...subset idx:pe real name: 16:127, 24:BASE, 27:5, 31:10, 36:15, 44:23, 50:29, 59:42, 61:44, 70:53, 77:60, 97:82, 107:93, 108:95, 122:112, 124:115, 128:119, 133:124, 142:134, 146:138, 147:139, 170:163, 181:175, 205:202, 226:223, \n", "...subset idx:oe real name: 16:127, 24:BASE, 27:5, 31:10, 36:15, 44:23, 50:29, 59:42, 61:44, 70:53, 77:60, 97:82, 107:93, 108:95, 122:112, 124:115, 128:119, 133:124, 142:134, 146:138, 147:139, 170:163, 181:175, 205:202, 226:223, \n", " running model 225 times\n", " starting at 09/30/25 16:37:17\n", " 8 agents ready\n", "\n", "\n", "PANTHER progress\n", " avg = average model run time in minutes\n", " runs(C = completed | F = failed | T = timed out)\n", " agents(R = running | W = waiting | U = unavailable)\n", "--------------------------------------------------------------------------------\n", "09/30 16:37:24 remaining file transfers: 0 \n", "\n", " 225 runs complete : 0 runs failed\n", " 0.00347 avg run time (min) : 0.117 run mgr time (min)\n", " 8 agents connected\n", "\n", "\n", "\n", " --- evaluating upgrade ensembles --- \n", "...last mean: 5.07992e+11\n", "...last stdev: 6.59165e+10\n", "\n", " --- phi summary for best lambda, scale fac: 7.5e+08 , 1.1 , --- \n", " phi type mean std min max\n", " measured 5.0083e+11 7.70809e+10 2.60352e+11 6.16885e+11\n", " actual 2.67331e+11 8.19739e+09 2.60352e+11 2.95093e+11\n", " note: 'measured' phi reported above includes \n", " realizations of measurement noise, \n", " 'actual' phi does not.\n", "\n", " --- running remaining realizations for best lambda, scale:7.5e+08 , 1.1 , --- \n", " running model 226 times\n", " starting at 09/30/25 16:37:24\n", " 8 agents ready\n", "\n", "\n", "PANTHER progress\n", " avg = average model run time in minutes\n", " runs(C = completed | F = failed | T = timed out)\n", " agents(R = running | W = waiting | U = unavailable)\n", "--------------------------------------------------------------------------------\n", "09/30 16:37:32 remaining file transfers: 0 \n", "\n", " 226 runs complete : 0 runs failed\n", " 0.00348 avg run time (min) : 0.12 run mgr time (min)\n", " 8 agents connected\n", "\n", "\n", "...phi summary for entire ensemble using lambda,scale_fac 7.5e+08 , 1.1 , \n", " phi type mean std min max\n", " measured 5.07972e+11 6.59154e+10 2.60352e+11 6.79899e+11\n", " actual 2.65491e+11 5.81673e+09 2.60352e+11 2.99244e+11\n", " note: 'measured' phi reported above includes \n", " realizations of measurement noise, \n", " 'actual' phi does not.\n", "...last best mean phi * acceptable phi factor: 5.33392e+11\n", "...current best mean phi: 5.07972e+11\n", "\n", " --- updating parameter ensemble --- \n", "\n", " --- updating lambda to 5.625e+08 --- \n", "\n", " --- EnsembleMethod iteration 2 report --- \n", " number of active realizations: 251\n", " number of model runs: 1153\n", " current obs ensemble saved to pest.2.obs.csv\n", " current par ensemble saved to pest.2.par.csv\n", "saved par and rei files for realization BASE for iteration 2\n", "saved par and rei files for realization BASE\n", " phi type mean std min max\n", " measured 5.07972e+11 6.59154e+10 2.60352e+11 6.79899e+11\n", " actual 2.65491e+11 5.81673e+09 2.60352e+11 2.99244e+11\n", " note: 'measured' phi reported above includes \n", " realizations of measurement noise, \n", " 'actual' phi does not.\n", " --- observation group phi summary --- \n", " (computed using 'actual' phi)\n", " (sorted by mean phi)\n", "group count nconflict mean std min max percent std\n", "oname:simulation.csv_otype:lst_usecol:observations 101 0 2.65e+11 5.82e+09 2.6e+11 2.99e+11 100 2.94e-14\n", " Note: 'percent' is the percentage of the actual phi for each realization.\n", "\n", "\n", " --- parameter group change summmary --- \n", "group count mean chg std chg n at ubnd % at ubnd n at lbnd % at lbnd n std decr\n", "optimal 2 6.268 98.68 0 0 0 0 2\n", " Note: parameter change summary sorted according to percent at bounds.\n", " Note: the parameter change statistics implicitly include the effect of \n", " realizations that have failed or have been dropped.\n", " Note: the 'n std decr' is the number of parameters with current\n", " std less 5% of their initial std.\n", "\n", "...saved parameter change summary to pest.2.pcs.csv\n", "\n", " --- phi-based termination criteria check --- \n", "...phiredstp: 0.01\n", "...nphistp: 3\n", "...nphinored (also used for consecutive bad lambda cycles): 3\n", "...best mean phi sequence: 1.60569e+14 , 5.07992e+11 , 5.07972e+11 , \n", "...best phi yet: 5.07972e+11\n", "...number of consecutive bad lambda testing cycles: 0\n", "...number of iterations satisfying phiredstp criteria: 1\n", "...number of iterations since best yet mean phi: 0\n", "\n", " --- starting solve for iteration: 3 --- \n", "...current lambda: 5.625e+08\n", "...starting calcs for glm factor 5.625e+07\n", "...finished calcs for: 5.625e+07\n", "...starting calcs for glm factor 5.625e+08\n", "...finished calcs for: 5.625e+08\n", "...starting calcs for glm factor 5.625e+09\n", "...finished calcs for: 5.625e+09\n", "\n", " --- running upgrade ensembles --- \n", "...subset idx:pe real name: 1:BASE, 14:112, 16:119, 28:9, 35:86, 54:12, 67:27, 68:28, 77:43, 78:45, 81:48, 89:57, 130:108, 135:117, 161:150, 174:164, 182:172, 185:177, 188:181, 193:186, 204:198, 211:207, 233:231, 236:234, 241:239, \n", "...subset idx:oe real name: 1:BASE, 14:112, 16:119, 28:9, 35:86, 54:12, 67:27, 68:28, 77:43, 78:45, 81:48, 89:57, 130:108, 135:117, 161:150, 174:164, 182:172, 185:177, 188:181, 193:186, 204:198, 211:207, 233:231, 236:234, 241:239, \n", " running model 225 times\n", " starting at 09/30/25 16:37:32\n", " 8 agents ready\n", "\n", "\n", "PANTHER progress\n", " avg = average model run time in minutes\n", " runs(C = completed | F = failed | T = timed out)\n", " agents(R = running | W = waiting | U = unavailable)\n", "--------------------------------------------------------------------------------\n", "09/30 16:37:40 remaining file transfers: 0 \n", "\n", " 225 runs complete : 0 runs failed\n", " 0.00346 avg run time (min) : 0.144 run mgr time (min)\n", " 8 agents connected\n", "\n", "\n", "\n", " --- evaluating upgrade ensembles --- \n", "...last mean: 5.07972e+11\n", "...last stdev: 6.59154e+10\n", "\n", " --- phi summary for best lambda, scale fac: 5.625e+07 , 1 , --- \n", " phi type mean std min max\n", " measured 4.96892e+11 7.42097e+10 2.60352e+11 6.16885e+11\n", " actual 2.66005e+11 4.43036e+09 2.60352e+11 2.78081e+11\n", " note: 'measured' phi reported above includes \n", " realizations of measurement noise, \n", " 'actual' phi does not.\n", "\n", " --- running remaining realizations for best lambda, scale:5.625e+07 , 1 , --- \n", " running model 226 times\n", " starting at 09/30/25 16:37:40\n", " 8 agents ready\n", "\n", "\n", "PANTHER progress\n", " avg = average model run time in minutes\n", " runs(C = completed | F = failed | T = timed out)\n", " agents(R = running | W = waiting | U = unavailable)\n", "--------------------------------------------------------------------------------\n", "09/30 16:37:47 remaining file transfers: 0 \n", "\n", " 226 runs complete : 0 runs failed\n", " 0.00349 avg run time (min) : 0.12 run mgr time (min)\n", " 8 agents connected\n", "\n", "\n", "...phi summary for entire ensemble using lambda,scale_fac 5.625e+07 , 1 , \n", " phi type mean std min max\n", " measured 5.07971e+11 6.59154e+10 2.60352e+11 6.79898e+11\n", " actual 2.65495e+11 5.8295e+09 2.60352e+11 2.99263e+11\n", " note: 'measured' phi reported above includes \n", " realizations of measurement noise, \n", " 'actual' phi does not.\n", "...last best mean phi * acceptable phi factor: 5.3337e+11\n", "...current best mean phi: 5.07971e+11\n", "\n", " --- updating parameter ensemble --- \n", "\n", " --- updating lambda to 4.21875e+07 --- \n", "\n", " --- EnsembleMethod iteration 3 report --- \n", " number of active realizations: 251\n", " number of model runs: 1604\n", " current obs ensemble saved to pest.3.obs.csv\n", " current par ensemble saved to pest.3.par.csv\n", "saved par and rei files for realization BASE for iteration 3\n", "saved par and rei files for realization BASE\n", " phi type mean std min max\n", " measured 5.07971e+11 6.59154e+10 2.60352e+11 6.79898e+11\n", " actual 2.65495e+11 5.8295e+09 2.60352e+11 2.99263e+11\n", " note: 'measured' phi reported above includes \n", " realizations of measurement noise, \n", " 'actual' phi does not.\n", " --- observation group phi summary --- \n", " (computed using 'actual' phi)\n", " (sorted by mean phi)\n", "group count nconflict mean std min max percent std\n", "oname:simulation.csv_otype:lst_usecol:observations 101 0 2.65e+11 5.83e+09 2.6e+11 2.99e+11 100 2.86e-14\n", " Note: 'percent' is the percentage of the actual phi for each realization.\n", "\n", "\n", " --- parameter group change summmary --- \n", "group count mean chg std chg n at ubnd % at ubnd n at lbnd % at lbnd n std decr\n", "optimal 2 6.273 98.68 0 0 0 0 2\n", " Note: parameter change summary sorted according to percent at bounds.\n", " Note: the parameter change statistics implicitly include the effect of \n", " realizations that have failed or have been dropped.\n", " Note: the 'n std decr' is the number of parameters with current\n", " std less 5% of their initial std.\n", "\n", "...saved parameter change summary to pest.3.pcs.csv\n", "\n", " --- phi-based termination criteria check --- \n", "...phiredstp: 0.01\n", "...nphistp: 3\n", "...nphinored (also used for consecutive bad lambda cycles): 3\n", "...best mean phi sequence: 1.60569e+14 , 5.07992e+11 , 5.07972e+11 , 5.07971e+11 , \n", "...best phi yet: 5.07971e+11\n", "...number of consecutive bad lambda testing cycles: 0\n", "...number of iterations satisfying phiredstp criteria: 1\n", "...number of iterations since best yet mean phi: 0\n", "\n", " --- starting solve for iteration: 4 --- \n", "...current lambda: 4.21875e+07\n", "...starting calcs for glm factor 4.21875e+06\n", "...finished calcs for: 4.21875e+06\n", "...starting calcs for glm factor 4.21875e+07\n", "...finished calcs for: 4.21875e+07\n", "...starting calcs for glm factor 4.21875e+08\n", "...finished calcs for: 4.21875e+08\n", "\n", " --- running upgrade ensembles --- \n", "...subset idx:pe real name: 0:BASE, 17:177, 29:23, 33:53, 50:30, 56:94, 59:109, 60:113, 66:230, 68:2, 77:17, 79:19, 90:38, 92:40, 96:49, 125:84, 149:121, 169:146, 197:184, 200:188, 224:217, 228:221, 241:238, 242:240, 250:249, \n", "...subset idx:oe real name: 0:BASE, 17:177, 29:23, 33:53, 50:30, 56:94, 59:109, 60:113, 66:230, 68:2, 77:17, 79:19, 90:38, 92:40, 96:49, 125:84, 149:121, 169:146, 197:184, 200:188, 224:217, 228:221, 241:238, 242:240, 250:249, \n", " running model 225 times\n", " starting at 09/30/25 16:37:48\n", " 8 agents ready\n", "\n", "\n", "PANTHER progress\n", " avg = average model run time in minutes\n", " runs(C = completed | F = failed | T = timed out)\n", " agents(R = running | W = waiting | U = unavailable)\n", "--------------------------------------------------------------------------------\n", "09/30 16:37:55 remaining file transfers: 0 \n", "\n", " 225 runs complete : 0 runs failed\n", " 0.00346 avg run time (min) : 0.12 run mgr time (min)\n", " 8 agents connected\n", "\n", "\n", "\n", " --- evaluating upgrade ensembles --- \n", "...last mean: 5.07971e+11\n", "...last stdev: 6.59154e+10\n", "\n", " --- phi summary for best lambda, scale fac: 4.21875e+06 , 1 , --- \n", " phi type mean std min max\n", " measured 4.93338e+11 8.37547e+10 2.60352e+11 6.70308e+11\n", " actual 2.66313e+11 5.6638e+09 2.60352e+11 2.79517e+11\n", " note: 'measured' phi reported above includes \n", " realizations of measurement noise, \n", " 'actual' phi does not.\n", "\n", " --- running remaining realizations for best lambda, scale:4.21875e+06 , 1 , --- \n", " running model 226 times\n", " starting at 09/30/25 16:37:55\n", " 8 agents ready\n", "\n", "\n", "PANTHER progress\n", " avg = average model run time in minutes\n", " runs(C = completed | F = failed | T = timed out)\n", " agents(R = running | W = waiting | U = unavailable)\n", "--------------------------------------------------------------------------------\n", "09/30 16:38:02 remaining file transfers: 0 \n", "\n", " 226 runs complete : 0 runs failed\n", " 0.00347 avg run time (min) : 0.118 run mgr time (min)\n", " 8 agents connected\n", "\n", "\n", "...phi summary for entire ensemble using lambda,scale_fac 4.21875e+06 , 1 , \n", " phi type mean std min max\n", " measured 5.07971e+11 6.59154e+10 2.60352e+11 6.79898e+11\n", " actual 2.65495e+11 5.82981e+09 2.60352e+11 2.99263e+11\n", " note: 'measured' phi reported above includes \n", " realizations of measurement noise, \n", " 'actual' phi does not.\n", "...last best mean phi * acceptable phi factor: 5.3337e+11\n", "...current best mean phi: 5.07971e+11\n", "\n", " --- updating parameter ensemble --- \n", "\n", " --- updating lambda to 3.16406e+06 --- \n", "\n", " --- EnsembleMethod iteration 4 report --- \n", " number of active realizations: 251\n", " number of model runs: 2055\n", " current obs ensemble saved to pest.4.obs.csv\n", " current par ensemble saved to pest.4.par.csv\n", "saved par and rei files for realization BASE for iteration 4\n", "saved par and rei files for realization BASE\n", " phi type mean std min max\n", " measured 5.07971e+11 6.59154e+10 2.60352e+11 6.79898e+11\n", " actual 2.65495e+11 5.82981e+09 2.60352e+11 2.99263e+11\n", " note: 'measured' phi reported above includes \n", " realizations of measurement noise, \n", " 'actual' phi does not.\n", " --- observation group phi summary --- \n", " (computed using 'actual' phi)\n", " (sorted by mean phi)\n", "group count nconflict mean std min max percent std\n", "oname:simulation.csv_otype:lst_usecol:observations 101 0 2.65e+11 5.83e+09 2.6e+11 2.99e+11 100 3.07e-14\n", " Note: 'percent' is the percentage of the actual phi for each realization.\n", "\n", "\n", " --- parameter group change summmary --- \n", "group count mean chg std chg n at ubnd % at ubnd n at lbnd % at lbnd n std decr\n", "optimal 2 6.274 98.68 0 0 0 0 2\n", " Note: parameter change summary sorted according to percent at bounds.\n", " Note: the parameter change statistics implicitly include the effect of \n", " realizations that have failed or have been dropped.\n", " Note: the 'n std decr' is the number of parameters with current\n", " std less 5% of their initial std.\n", "\n", "...saved parameter change summary to pest.4.pcs.csv\n", "\n", " --- phi-based termination criteria check --- \n", "...phiredstp: 0.01\n", "...nphistp: 3\n", "...nphinored (also used for consecutive bad lambda cycles): 3\n", "...best mean phi sequence: 1.60569e+14 , 5.07992e+11 , 5.07972e+11 , 5.07971e+11 , 5.07971e+11 , \n", "...best phi yet: 5.07971e+11\n", "...number of consecutive bad lambda testing cycles: 0\n", "...number of iterations satisfying phiredstp criteria: 1\n", "...number of iterations since best yet mean phi: 0\n", "\n", " --- starting solve for iteration: 5 --- \n", "...current lambda: 3.16406e+06\n", "...starting calcs for glm factor 316406\n", "...finished calcs for: 316406\n", "...starting calcs for glm factor 3.16406e+06\n", "...finished calcs for: 3.16406e+06\n", "...starting calcs for glm factor 3.16406e+07\n", "...finished calcs for: 3.16406e+07\n", "\n", " --- running upgrade ensembles --- \n", "...subset idx:pe real name: 0:BASE, 11:19, 14:49, 25:112, 28:86, 36:108, 44:207, 76:97, 100:34, 101:35, 108:51, 129:77, 143:98, 145:100, 150:106, 154:114, 157:120, 158:122, 186:158, 199:176, 204:185, 208:191, 210:193, 221:209, 224:212, \n", "...subset idx:oe real name: 0:BASE, 11:19, 14:49, 25:112, 28:86, 36:108, 44:207, 76:97, 100:34, 101:35, 108:51, 129:77, 143:98, 145:100, 150:106, 154:114, 157:120, 158:122, 186:158, 199:176, 204:185, 208:191, 210:193, 221:209, 224:212, \n", " running model 225 times\n", " starting at 09/30/25 16:38:02\n", " 8 agents ready\n", "\n", "\n", "PANTHER progress\n", " avg = average model run time in minutes\n", " runs(C = completed | F = failed | T = timed out)\n", " agents(R = running | W = waiting | U = unavailable)\n", "--------------------------------------------------------------------------------\n", "09/30 16:38:11 remaining file transfers: 0 \n", "\n", " 225 runs complete : 0 runs failed\n", " 0.00502 avg run time (min) : 0.144 run mgr time (min)\n", " 8 agents connected\n", "\n", "\n", "\n", " --- evaluating upgrade ensembles --- \n", "...last mean: 5.07971e+11\n", "...last stdev: 6.59154e+10\n", "\n", " --- phi summary for best lambda, scale fac: 316406 , 1 , --- \n", " phi type mean std min max\n", " measured 5.22194e+11 7.44482e+10 2.60352e+11 6.16885e+11\n", " actual 2.64356e+11 3.15721e+09 2.60352e+11 2.71235e+11\n", " note: 'measured' phi reported above includes \n", " realizations of measurement noise, \n", " 'actual' phi does not.\n", "\n", " --- running remaining realizations for best lambda, scale:316406 , 1 , --- \n", " running model 226 times\n", " starting at 09/30/25 16:38:11\n", " 8 agents ready\n", "\n", "\n", "PANTHER progress\n", " avg = average model run time in minutes\n", " runs(C = completed | F = failed | T = timed out)\n", " agents(R = running | W = waiting | U = unavailable)\n", "--------------------------------------------------------------------------------\n", "09/30 16:38:18 remaining file transfers: 0 \n", "\n", " 226 runs complete : 0 runs failed\n", " 0.00347 avg run time (min) : 0.118 run mgr time (min)\n", " 8 agents connected\n", "\n", "\n", "...phi summary for entire ensemble using lambda,scale_fac 316406 , 1 , \n", " phi type mean std min max\n", " measured 5.07971e+11 6.59154e+10 2.60352e+11 6.79898e+11\n", " actual 2.65495e+11 5.82981e+09 2.60352e+11 2.99263e+11\n", " note: 'measured' phi reported above includes \n", " realizations of measurement noise, \n", " 'actual' phi does not.\n", "...last best mean phi * acceptable phi factor: 5.3337e+11\n", "...current best mean phi: 5.07971e+11\n", "\n", " --- updating parameter ensemble --- \n", "\n", " --- updating lambda to 237305 --- \n", "\n", " --- EnsembleMethod iteration 5 report --- \n", " number of active realizations: 251\n", " number of model runs: 2506\n", " current obs ensemble saved to pest.5.obs.csv\n", " current par ensemble saved to pest.5.par.csv\n", "saved par and rei files for realization BASE for iteration 5\n", "saved par and rei files for realization BASE\n", " phi type mean std min max\n", " measured 5.07971e+11 6.59154e+10 2.60352e+11 6.79898e+11\n", " actual 2.65495e+11 5.82981e+09 2.60352e+11 2.99263e+11\n", " note: 'measured' phi reported above includes \n", " realizations of measurement noise, \n", " 'actual' phi does not.\n", " --- observation group phi summary --- \n", " (computed using 'actual' phi)\n", " (sorted by mean phi)\n", "group count nconflict mean std min max percent std\n", "oname:simulation.csv_otype:lst_usecol:observations 101 0 2.65e+11 5.83e+09 2.6e+11 2.99e+11 100 3.2e-14\n", " Note: 'percent' is the percentage of the actual phi for each realization.\n", "\n", "\n", " --- parameter group change summmary --- \n", "group count mean chg std chg n at ubnd % at ubnd n at lbnd % at lbnd n std decr\n", "optimal 2 6.274 98.68 0 0 0 0 2\n", " Note: parameter change summary sorted according to percent at bounds.\n", " Note: the parameter change statistics implicitly include the effect of \n", " realizations that have failed or have been dropped.\n", " Note: the 'n std decr' is the number of parameters with current\n", " std less 5% of their initial std.\n", "\n", "...saved parameter change summary to pest.5.pcs.csv\n", "\n", " --- phi-based termination criteria check --- \n", "...phiredstp: 0.01\n", "...nphistp: 3\n", "...nphinored (also used for consecutive bad lambda cycles): 3\n", "...best mean phi sequence: 1.60569e+14 , 5.07992e+11 , 5.07972e+11 , 5.07971e+11 , 5.07971e+11 , 5.07971e+11 , \n", "...best phi yet: 5.07971e+11\n", "...number of consecutive bad lambda testing cycles: 0\n", "...number of iterations satisfying phiredstp criteria: 1\n", "...number of iterations since best yet mean phi: 0\n", "\n", " --- starting solve for iteration: 6 --- \n", "...current lambda: 237305\n", "...starting calcs for glm factor 23730.5\n", "...finished calcs for: 23730.5\n", "...starting calcs for glm factor 237305\n", "...finished calcs for: 237305\n", "...starting calcs for glm factor 2.37305e+06\n", "...finished calcs for: 2.37305e+06\n", "\n", " --- running upgrade ensembles --- \n", "...subset idx:pe real name: 0:BASE, 23:209, 31:113, 36:40, 43:221, 46:249, 78:124, 80:138, 86:0, 99:201, 119:41, 121:47, 139:72, 157:102, 176:136, 182:144, 194:160, 198:166, 204:173, 209:187, 213:194, 226:214, 228:216, 233:224, 235:226, \n", "...subset idx:oe real name: 0:BASE, 23:209, 31:113, 36:40, 43:221, 46:249, 78:124, 80:138, 86:0, 99:201, 119:41, 121:47, 139:72, 157:102, 176:136, 182:144, 194:160, 198:166, 204:173, 209:187, 213:194, 226:214, 228:216, 233:224, 235:226, \n", " running model 225 times\n", " starting at 09/30/25 16:38:18\n", " 8 agents ready\n", "\n", "\n", "PANTHER progress\n", " avg = average model run time in minutes\n", " runs(C = completed | F = failed | T = timed out)\n", " agents(R = running | W = waiting | U = unavailable)\n", "--------------------------------------------------------------------------------\n", "09/30 16:38:25 remaining file transfers: 0 \n", "\n", " 225 runs complete : 0 runs failed\n", " 0.00344 avg run time (min) : 0.12 run mgr time (min)\n", " 8 agents connected\n", "\n", "\n", "\n", " --- evaluating upgrade ensembles --- \n", "...last mean: 5.07971e+11\n", "...last stdev: 6.59154e+10\n", "\n", " --- phi summary for best lambda, scale fac: 23730.5 , 1 , --- \n", " phi type mean std min max\n", " measured 4.94882e+11 7.36474e+10 2.60352e+11 6.59643e+11\n", " actual 2.66337e+11 5.93163e+09 2.60352e+11 2.80566e+11\n", " note: 'measured' phi reported above includes \n", " realizations of measurement noise, \n", " 'actual' phi does not.\n", "\n", " --- running remaining realizations for best lambda, scale:23730.5 , 1 , --- \n", " running model 226 times\n", " starting at 09/30/25 16:38:25\n", " 8 agents ready\n", "\n", "\n", "PANTHER progress\n", " avg = average model run time in minutes\n", " runs(C = completed | F = failed | T = timed out)\n", " agents(R = running | W = waiting | U = unavailable)\n", "--------------------------------------------------------------------------------\n", "09/30 16:38:32 remaining file transfers: 0 \n", "\n", " 226 runs complete : 0 runs failed\n", " 0.00346 avg run time (min) : 0.118 run mgr time (min)\n", " 8 agents connected\n", "\n", "\n", "...phi summary for entire ensemble using lambda,scale_fac 23730.5 , 1 , \n", " phi type mean std min max\n", " measured 5.07971e+11 6.59154e+10 2.60352e+11 6.79898e+11\n", " actual 2.65495e+11 5.82981e+09 2.60352e+11 2.99263e+11\n", " note: 'measured' phi reported above includes \n", " realizations of measurement noise, \n", " 'actual' phi does not.\n", "...last best mean phi * acceptable phi factor: 5.3337e+11\n", "...current best mean phi: 5.07971e+11\n", "\n", " --- updating parameter ensemble --- \n", "\n", " --- updating lambda to 17797.9 --- \n", "\n", " --- EnsembleMethod iteration 6 report --- \n", " number of active realizations: 251\n", " number of model runs: 2957\n", " current obs ensemble saved to pest.6.obs.csv\n", " current par ensemble saved to pest.6.par.csv\n", "saved par and rei files for realization BASE for iteration 6\n", "saved par and rei files for realization BASE\n", " phi type mean std min max\n", " measured 5.07971e+11 6.59154e+10 2.60352e+11 6.79898e+11\n", " actual 2.65495e+11 5.82981e+09 2.60352e+11 2.99263e+11\n", " note: 'measured' phi reported above includes \n", " realizations of measurement noise, \n", " 'actual' phi does not.\n", " --- observation group phi summary --- \n", " (computed using 'actual' phi)\n", " (sorted by mean phi)\n", "group count nconflict mean std min max percent std\n", "oname:simulation.csv_otype:lst_usecol:observations 101 0 2.65e+11 5.83e+09 2.6e+11 2.99e+11 100 3.06e-14\n", " Note: 'percent' is the percentage of the actual phi for each realization.\n", "\n", "\n", " --- parameter group change summmary --- \n", "group count mean chg std chg n at ubnd % at ubnd n at lbnd % at lbnd n std decr\n", "optimal 2 6.274 98.68 0 0 0 0 2\n", " Note: parameter change summary sorted according to percent at bounds.\n", " Note: the parameter change statistics implicitly include the effect of \n", " realizations that have failed or have been dropped.\n", " Note: the 'n std decr' is the number of parameters with current\n", " std less 5% of their initial std.\n", "\n", "...saved parameter change summary to pest.6.pcs.csv\n", "\n", " --- phi-based termination criteria check --- \n", "...phiredstp: 0.01\n", "...nphistp: 3\n", "...nphinored (also used for consecutive bad lambda cycles): 3\n", "...best mean phi sequence: 1.60569e+14 , 5.07992e+11 , 5.07972e+11 , 5.07971e+11 , 5.07971e+11 , 5.07971e+11 , 5.07971e+11 , \n", " \n", "...best phi yet: 5.07971e+11\n", "...number of consecutive bad lambda testing cycles: 0\n", "...number of iterations satisfying phiredstp criteria: 1\n", "...number of iterations since best yet mean phi: 0\n", "\n", " --- starting solve for iteration: 7 --- \n", "...current lambda: 17797.9\n", "...starting calcs for glm factor 1779.79\n", "...finished calcs for: 1779.79\n", "...starting calcs for glm factor 17797.9\n", "...finished calcs for: 17797.9\n", "...starting calcs for glm factor 177979\n", "...finished calcs for: 177979\n", "\n", " --- running upgrade ensembles --- \n", "...subset idx:pe real name: 0:BASE, 8:0, 29:108, 30:207, 42:158, 53:109, 67:9, 77:164, 78:172, 82:231, 94:93, 107:36, 111:148, 117:6, 132:37, 143:62, 151:71, 159:83, 165:91, 167:96, 199:155, 217:192, 237:228, 247:244, 248:245, \n", "...subset idx:oe real name: 0:BASE, 8:0, 29:108, 30:207, 42:158, 53:109, 67:9, 77:164, 78:172, 82:231, 94:93, 107:36, 111:148, 117:6, 132:37, 143:62, 151:71, 159:83, 165:91, 167:96, 199:155, 217:192, 237:228, 247:244, 248:245, \n", " running model 225 times\n", " starting at 09/30/25 16:38:32\n", " 8 agents ready\n", "\n", "\n", "PANTHER progress\n", " avg = average model run time in minutes\n", " runs(C = completed | F = failed | T = timed out)\n", " agents(R = running | W = waiting | U = unavailable)\n", "--------------------------------------------------------------------------------\n", "09/30 16:38:39 remaining file transfers: 0 \n", "\n", " 225 runs complete : 0 runs failed\n", " 0.00346 avg run time (min) : 0.12 run mgr time (min)\n", " 8 agents connected\n", "\n", "\n", "\n", " --- evaluating upgrade ensembles --- \n", "...last mean: 5.07971e+11\n", "...last stdev: 6.59154e+10\n", "\n", " --- phi summary for best lambda, scale fac: 1779.79 , 0.75 , --- \n", " phi type mean std min max\n", " measured 5.06809e+11 8.62576e+10 2.60352e+11 6.59643e+11\n", " actual 2.66874e+11 6.93407e+09 2.60352e+11 2.91496e+11\n", " note: 'measured' phi reported above includes \n", " realizations of measurement noise, \n", " 'actual' phi does not.\n", "\n", " --- running remaining realizations for best lambda, scale:1779.79 , 0.75 , --- \n", " running model 226 times\n", " starting at 09/30/25 16:38:39\n", " 8 agents ready\n", "\n", "\n", "PANTHER progress\n", " avg = average model run time in minutes\n", " runs(C = completed | F = failed | T = timed out)\n", " agents(R = running | W = waiting | U = unavailable)\n", "--------------------------------------------------------------------------------\n", "09/30 16:38:48 remaining file transfers: 0 \n", "\n", " 226 runs complete : 0 runs failed\n", " 0.00348 avg run time (min) : 0.145 run mgr time (min)\n", " 8 agents connected\n", "\n", "\n", "...phi summary for entire ensemble using lambda,scale_fac 1779.79 , 0.75 , \n", " phi type mean std min max\n", " measured 5.07971e+11 6.59154e+10 2.60352e+11 6.79898e+11\n", " actual 2.65495e+11 5.82981e+09 2.60352e+11 2.99263e+11\n", " note: 'measured' phi reported above includes \n", " realizations of measurement noise, \n", " 'actual' phi does not.\n", "...last best mean phi * acceptable phi factor: 5.3337e+11\n", "...current best mean phi: 5.07971e+11\n", "\n", " --- updating parameter ensemble --- \n", "\n", " --- updating lambda to 1334.84 --- \n", "\n", " --- EnsembleMethod iteration 7 report --- \n", " number of active realizations: 251\n", " number of model runs: 3408\n", " current obs ensemble saved to pest.7.obs.csv\n", " current par ensemble saved to pest.7.par.csv\n", "saved par and rei files for realization BASE for iteration 7\n", "saved par and rei files for realization BASE\n", " phi type mean std min max\n", " measured 5.07971e+11 6.59154e+10 2.60352e+11 6.79898e+11\n", " actual 2.65495e+11 5.82981e+09 2.60352e+11 2.99263e+11\n", " note: 'measured' phi reported above includes \n", " realizations of measurement noise, \n", " 'actual' phi does not.\n", " --- observation group phi summary --- \n", " (computed using 'actual' phi)\n", " (sorted by mean phi)\n", "group count nconflict mean std min max percent std\n", "oname:simulation.csv_otype:lst_usecol:observations 101 0 2.65e+11 5.83e+09 2.6e+11 2.99e+11 100 3.03e-14\n", " Note: 'percent' is the percentage of the actual phi for each realization.\n", "\n", "\n", " --- parameter group change summmary --- \n", "group count mean chg std chg n at ubnd % at ubnd n at lbnd % at lbnd n std decr\n", "optimal 2 6.274 98.68 0 0 0 0 2\n", " Note: parameter change summary sorted according to percent at bounds.\n", " Note: the parameter change statistics implicitly include the effect of \n", " realizations that have failed or have been dropped.\n", " Note: the 'n std decr' is the number of parameters with current\n", " std less 5% of their initial std.\n", "\n", "...saved parameter change summary to pest.7.pcs.csv\n", "\n", " --- phi-based termination criteria check --- \n", "...phiredstp: 0.01\n", "...nphistp: 3\n", "...nphinored (also used for consecutive bad lambda cycles): 3\n", "...best mean phi sequence: 1.60569e+14 , 5.07992e+11 , 5.07972e+11 , 5.07971e+11 , 5.07971e+11 , 5.07971e+11 , 5.07971e+11 , \n", " 5.07971e+11 , \n", "...best phi yet: 5.07971e+11\n", "...number of consecutive bad lambda testing cycles: 0\n", "...number of iterations satisfying phiredstp criteria: 1\n", "...number of iterations since best yet mean phi: 1\n", "\n", " --- starting solve for iteration: 8 --- \n", "...current lambda: 1334.84\n", "...starting calcs for glm factor 133.484\n", "...finished calcs for: 133.484\n", "...starting calcs for glm factor 1334.84\n", "...finished calcs for: 1334.84\n", "...starting calcs for glm factor 13348.4\n", "...finished calcs for: 13348.4\n", "\n", " --- running upgrade ensembles --- \n", "...subset idx:pe real name: 0:BASE, 4:158, 18:91, 29:249, 34:47, 59:106, 62:122, 86:12, 92:57, 98:234, 111:134, 136:20, 145:50, 165:80, 177:107, 180:116, 184:126, 199:149, 216:180, 217:182, 229:208, 232:213, 236:220, 238:225, 243:235, \n", "...subset idx:oe real name: 0:BASE, 4:158, 18:91, 29:249, 34:47, 59:106, 62:122, 86:12, 92:57, 98:234, 111:134, 136:20, 145:50, 165:80, 177:107, 180:116, 184:126, 199:149, 216:180, 217:182, 229:208, 232:213, 236:220, 238:225, 243:235, \n", " running model 225 times\n", " starting at 09/30/25 16:38:48\n", " 8 agents ready\n", "\n", "\n", "PANTHER progress\n", " avg = average model run time in minutes\n", " runs(C = completed | F = failed | T = timed out)\n", " agents(R = running | W = waiting | U = unavailable)\n", "--------------------------------------------------------------------------------\n", "09/30 16:38:55 remaining file transfers: 0 \n", "\n", " 225 runs complete : 0 runs failed\n", " 0.00347 avg run time (min) : 0.119 run mgr time (min)\n", " 8 agents connected\n", "\n", "\n", "\n", " --- evaluating upgrade ensembles --- \n", "...last mean: 5.07971e+11\n", "...last stdev: 6.59154e+10\n", "\n", " --- phi summary for best lambda, scale fac: 133.484 , 0.75 , --- \n", " phi type mean std min max\n", " measured 4.9467e+11 7.89294e+10 2.60352e+11 6.09946e+11\n", " actual 2.65328e+11 6.08452e+09 2.60352e+11 2.84909e+11\n", " note: 'measured' phi reported above includes \n", " realizations of measurement noise, \n", " 'actual' phi does not.\n", "\n", " --- running remaining realizations for best lambda, scale:133.484 , 0.75 , --- \n", " running model 226 times\n", " starting at 09/30/25 16:38:55\n", " 8 agents ready\n", "\n", "\n", "PANTHER progress\n", " avg = average model run time in minutes\n", " runs(C = completed | F = failed | T = timed out)\n", " agents(R = running | W = waiting | U = unavailable)\n", "--------------------------------------------------------------------------------\n", "09/30 16:39:02 remaining file transfers: 0 \n", "\n", " 226 runs complete : 0 runs failed\n", " 0.00348 avg run time (min) : 0.118 run mgr time (min)\n", " 8 agents connected\n", "\n", "\n", "...phi summary for entire ensemble using lambda,scale_fac 133.484 , 0.75 , \n", " phi type mean std min max\n", " measured 5.07971e+11 6.59154e+10 2.60352e+11 6.79898e+11\n", " actual 2.65495e+11 5.82981e+09 2.60352e+11 2.99263e+11\n", " note: 'measured' phi reported above includes \n", " realizations of measurement noise, \n", " 'actual' phi does not.\n", "...last best mean phi * acceptable phi factor: 5.3337e+11\n", "...current best mean phi: 5.07971e+11\n", "\n", " --- updating parameter ensemble --- \n", "\n", " --- updating lambda to 100.113 --- \n", "\n", " --- EnsembleMethod iteration 8 report --- \n", " number of active realizations: 251\n", " number of model runs: 3859\n", " current obs ensemble saved to pest.8.obs.csv\n", " current par ensemble saved to pest.8.par.csv\n", "saved par and rei files for realization BASE for iteration 8\n", "saved par and rei files for realization BASE\n", " phi type mean std min max\n", " measured 5.07971e+11 6.59154e+10 2.60352e+11 6.79898e+11\n", " actual 2.65495e+11 5.82981e+09 2.60352e+11 2.99263e+11\n", " note: 'measured' phi reported above includes \n", " realizations of measurement noise, \n", " 'actual' phi does not.\n", " --- observation group phi summary --- \n", " (computed using 'actual' phi)\n", " (sorted by mean phi)\n", "group count nconflict mean std min max percent std\n", "oname:simulation.csv_otype:lst_usecol:observations 101 0 2.65e+11 5.83e+09 2.6e+11 2.99e+11 100 3.05e-14\n", " Note: 'percent' is the percentage of the actual phi for each realization.\n", "\n", "\n", " --- parameter group change summmary --- \n", "group count mean chg std chg n at ubnd % at ubnd n at lbnd % at lbnd n std decr\n", "optimal 2 6.274 98.68 0 0 0 0 2\n", " Note: parameter change summary sorted according to percent at bounds.\n", " Note: the parameter change statistics implicitly include the effect of \n", " realizations that have failed or have been dropped.\n", " Note: the 'n std decr' is the number of parameters with current\n", " std less 5% of their initial std.\n", "\n", "...saved parameter change summary to pest.8.pcs.csv\n", "\n", " --- phi-based termination criteria check --- \n", "...phiredstp: 0.01\n", "...nphistp: 3\n", "...nphinored (also used for consecutive bad lambda cycles): 3\n", "...best mean phi sequence: 1.60569e+14 , 5.07992e+11 , 5.07972e+11 , 5.07971e+11 , 5.07971e+11 , 5.07971e+11 , 5.07971e+11 , \n", " 5.07971e+11 , 5.07971e+11 , \n", "...best phi yet: 5.07971e+11\n", "...number of consecutive bad lambda testing cycles: 0\n", "...number of iterations satisfying phiredstp criteria: 1\n", "...number of iterations since best yet mean phi: 2\n", "\n", " --- starting solve for iteration: 9 --- \n", "...current lambda: 100.113\n", "...starting calcs for glm factor 10.0113\n", "...finished calcs for: 10.0113\n", "...starting calcs for glm factor 100.113\n", "...finished calcs for: 100.113\n", "...starting calcs for glm factor 1001.13\n", "...finished calcs for: 1001.13\n", "\n", " --- running upgrade ensembles --- \n", "...subset idx:pe real name: 0:BASE, 22:220, 96:121, 110:150, 115:127, 117:10, 122:60, 133:32, 138:174, 142:4, 162:58, 168:67, 176:79, 179:87, 187:105, 191:123, 193:128, 197:132, 206:147, 207:151, 208:152, 217:167, 223:183, 231:204, 250:248, \n", "...subset idx:oe real name: 0:BASE, 22:220, 96:121, 110:150, 115:127, 117:10, 122:60, 133:32, 138:174, 142:4, 162:58, 168:67, 176:79, 179:87, 187:105, 191:123, 193:128, 197:132, 206:147, 207:151, 208:152, 217:167, 223:183, 231:204, 250:248, \n", " running model 225 times\n", " starting at 09/30/25 16:39:02\n", " 8 agents ready\n", "\n", "\n", "PANTHER progress\n", " avg = average model run time in minutes\n", " runs(C = completed | F = failed | T = timed out)\n", " agents(R = running | W = waiting | U = unavailable)\n", "--------------------------------------------------------------------------------\n", "09/30 16:39:10 remaining file transfers: 0 \n", "\n", " 225 runs complete : 0 runs failed\n", " 0.00348 avg run time (min) : 0.119 run mgr time (min)\n", " 8 agents connected\n", "\n", "\n", "\n", " --- evaluating upgrade ensembles --- \n", "...last mean: 5.07971e+11\n", "...last stdev: 6.59154e+10\n", "\n", " --- phi summary for best lambda, scale fac: 10.0113 , 0.75 , --- \n", " phi type mean std min max\n", " measured 4.95046e+11 7.45628e+10 2.60352e+11 6.49959e+11\n", " actual 2.64379e+11 4.02173e+09 2.60352e+11 2.74663e+11\n", " note: 'measured' phi reported above includes \n", " realizations of measurement noise, \n", " 'actual' phi does not.\n", "\n", " --- running remaining realizations for best lambda, scale:10.0113 , 0.75 , --- \n", " running model 226 times\n", " starting at 09/30/25 16:39:10\n", " 8 agents ready\n", "\n", "\n", "PANTHER progress\n", " avg = average model run time in minutes\n", " runs(C = completed | F = failed | T = timed out)\n", " agents(R = running | W = waiting | U = unavailable)\n", "--------------------------------------------------------------------------------\n", "09/30 16:39:18 remaining file transfers: 0 \n", "\n", " 226 runs complete : 0 runs failed\n", " 0.017 avg run time (min) : 0.145 run mgr time (min)\n", " 8 agents connected\n", "\n", "\n", "...phi summary for entire ensemble using lambda,scale_fac 10.0113 , 0.75 , \n", " phi type mean std min max\n", " measured 5.07971e+11 6.59154e+10 2.60352e+11 6.79898e+11\n", " actual 2.65495e+11 5.82981e+09 2.60352e+11 2.99263e+11\n", " note: 'measured' phi reported above includes \n", " realizations of measurement noise, \n", " 'actual' phi does not.\n", "...last best mean phi * acceptable phi factor: 5.3337e+11\n", "...current best mean phi: 5.07971e+11\n", "\n", " --- updating parameter ensemble --- \n", "\n", " --- updating lambda to 7.50847 --- \n", "\n", " --- EnsembleMethod iteration 9 report --- \n", " number of active realizations: 251\n", " number of model runs: 4310\n", " current obs ensemble saved to pest.9.obs.csv\n", " current par ensemble saved to pest.9.par.csv\n", "saved par and rei files for realization BASE for iteration 9\n", "saved par and rei files for realization BASE\n", " phi type mean std min max\n", " measured 5.07971e+11 6.59154e+10 2.60352e+11 6.79898e+11\n", " actual 2.65495e+11 5.82981e+09 2.60352e+11 2.99263e+11\n", " note: 'measured' phi reported above includes \n", " realizations of measurement noise, \n", " 'actual' phi does not.\n", " --- observation group phi summary --- \n", " (computed using 'actual' phi)\n", " (sorted by mean phi)\n", "group count nconflict mean std min max percent std\n", "oname:simulation.csv_otype:lst_usecol:observations 101 0 2.65e+11 5.83e+09 2.6e+11 2.99e+11 100 3.07e-14\n", " Note: 'percent' is the percentage of the actual phi for each realization.\n", "\n", "\n", " --- parameter group change summmary --- \n", "group count mean chg std chg n at ubnd % at ubnd n at lbnd % at lbnd n std decr\n", "optimal 2 6.274 98.68 0 0 0 0 2\n", " Note: parameter change summary sorted according to percent at bounds.\n", " Note: the parameter change statistics implicitly include the effect of \n", " realizations that have failed or have been dropped.\n", " Note: the 'n std decr' is the number of parameters with current\n", " std less 5% of their initial std.\n", "\n", "...saved parameter change summary to pest.9.pcs.csv\n", "\n", " --- phi-based termination criteria check --- \n", "...phiredstp: 0.01\n", "...nphistp: 3\n", "...nphinored (also used for consecutive bad lambda cycles): 3\n", "...best mean phi sequence: 1.60569e+14 , 5.07992e+11 , 5.07972e+11 , 5.07971e+11 , 5.07971e+11 , 5.07971e+11 , 5.07971e+11 , \n", " 5.07971e+11 , 5.07971e+11 , 5.07971e+11 , \n", "...best phi yet: 5.07971e+11\n", "...number of consecutive bad lambda testing cycles: 0\n", "...number of iterations satisfying phiredstp criteria: 1\n", "...number of iterations since best yet mean phi: 3\n", "...number of iterations since best yet mean phi > nphinored\n", "...phi-based termination criteria satisfied, all done\n", "\n", "\n", "pestpp-ies analysis complete...\n", "started at 09/30/25 16:36:51\n", "finished at 09/30/25 16:39:18\n", "took 2.31667 minutes\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "/home/vonkm/.local/share/uv/python/cpython-3.13.5-linux-x86_64-gnu/lib/python3.13/multiprocessing/popen_fork.py:67: DeprecationWarning: This process (pid=274580) is multi-threaded, use of fork() may lead to deadlocks in the child.\n", "/home/vonkm/.local/share/uv/python/cpython-3.13.5-linux-x86_64-gnu/lib/python3.13/multiprocessing/popen_fork.py:67: DeprecationWarning: This process (pid=274580) is multi-threaded, use of fork() may lead to deadlocks in the child.\n", "/home/vonkm/.local/share/uv/python/cpython-3.13.5-linux-x86_64-gnu/lib/python3.13/multiprocessing/popen_fork.py:67: DeprecationWarning: This process (pid=274580) is multi-threaded, use of fork() may lead to deadlocks in the child.\n", "/home/vonkm/.local/share/uv/python/cpython-3.13.5-linux-x86_64-gnu/lib/python3.13/multiprocessing/popen_fork.py:67: DeprecationWarning: This process (pid=274580) is multi-threaded, use of fork() may lead to deadlocks in the child.\n", "/home/vonkm/.local/share/uv/python/cpython-3.13.5-linux-x86_64-gnu/lib/python3.13/multiprocessing/popen_fork.py:67: DeprecationWarning: This process (pid=274580) is multi-threaded, use of fork() may lead to deadlocks in the child.\n" ] }, { "data": { "text/html": [ "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "
<xarray.Dataset> Size: 2MB\n",
       "Dimensions:       (iteration: 10, real_name: 251, pname: 2, oname: 101)\n",
       "Coordinates:\n",
       "  * iteration     (iteration) int64 80B 0 1 2 3 4 5 6 7 8 9\n",
       "  * real_name     (real_name) object 2kB '0' '1' '2' '3' ... '248' '249' 'base'\n",
       "  * pname         (pname) <U3 24B 'p_0' 'p_1'\n",
       "  * oname         (oname) datetime64[ns] 808B 1970-01-01 ... 1970-01-01T00:00...\n",
       "Data variables:\n",
       "    par           (iteration, real_name, pname) float64 40kB 5.518 ... 0.9735\n",
       "    obs           (iteration, real_name, oname) float64 2MB 5.518 ... 5.989\n",
       "    phi           (iteration, real_name) float64 20kB 2.262e+13 ... 2.604e+11\n",
       "    observations  (real_name, oname) float64 203kB 5.025 5.021 ... 5.905 5.97\n",
       "    weights       (real_name, oname) float64 203kB 1e+06 1e+06 ... 1e+06 1e+06
" ], "text/plain": [ " Size: 2MB\n", "Dimensions: (iteration: 10, real_name: 251, pname: 2, oname: 101)\n", "Coordinates:\n", " * iteration (iteration) int64 80B 0 1 2 3 4 5 6 7 8 9\n", " * real_name (real_name) object 2kB '0' '1' '2' '3' ... '248' '249' 'base'\n", " * pname (pname) " ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig, ax = plt.subplots(figsize=(6.75, 4.0))\n", "ax.plot(\n", " y_n.index,\n", " ds_n[\"obs\"].isel(iteration=-1).values.T,\n", " color=\"C0\",\n", " alpha=0.1,\n", " label=\"iES\",\n", ")\n", "ax.plot(x, y_n, label=\"Observations\", color=\"k\", marker=\".\", linestyle=\"none\")\n", "ax.plot(\n", " x, ml_sp_n.simulate(), color=\"C1\", linestyle=\"--\", label=\"SciPy Linear Regression\"\n", ")\n", "lower_bound, upper_bound = ml_sp_n.solver.ci_sim()\n", "ax.fill_between(\n", " x,\n", " lower_bound,\n", " upper_bound,\n", " color=\"C1\",\n", " alpha=0.3,\n", " label=f\"{0.95:0.0%} Confidence Interval\",\n", " zorder=10,\n", ")\n", "handles, labels = ax.get_legend_handles_labels()\n", "ax.legend(handles[-4:], labels[-4:])\n", "ax.grid(True)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Parameter estimates" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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AJzHzdkDKM6JEyeUn58vf39/h3Z/f3/t2rWr0GOioqI0Y8YM3Xvvvapfv75SUlK0YsUK5efn22vGjRsni8Wi0NBQubq6Kj8/Xy+88IL69etX5FgSEhI0ZcqUspkYAAAArluFviNbGrNmzVKDBg0UGhoqd3d3DRs2TAMHDpSLy+WpLlu2TB999JEWL16srVu36v3339drr72m999/v8h+4+LilJWVZd8OHTp0I6YDAACAIlToO7I1atSQq6urMjMzHdozMzMVEBBQ6DF+fn5KTEzUhQsXdPLkSQUGBmrcuHEKCQmx1zz77LMaN26c+vbtK0lq1qyZDh48qISEBA0YMKDQfj08POTh4VFGMwMAAMD1qtB3ZN3d3dW6dWulpKTY26xWq1JSUhQREVHssWazWbVr11ZeXp4++eQTPfjgg/Z9586dc7hDK0murq6yWq1lOwEAAACUmwp9R1aSYmNjNWDAALVp00Z33XWXZs6cqezsbA0cOFCSFBMTo9q1ayshIUGStGHDBh05ckQtWrTQkSNHFB8fL6vVqjFjxtj77NGjh1544QXdfvvtatKkibZt26YZM2boiSeecMocAQAAcO0qfJDt06ePjh8/rkmTJikjI0MtWrRQUlKS/QGwtLQ0h7urFy5c0IQJE7Rv3z55eXmpW7duWrRokXx9fe01b7zxhiZOnKi//e1vOnbsmAIDA/XXv/5VkyZNutHTAwAAQClV+PfIVlS8RxYAAKDs3TTvkQUAAACKQpAFAACAIRFkAQAAYEgEWQAAABgSQRYAAACGRJAFAACAId3wIJuZmampU6fe6NMCAADgJnPDg2xGRoamTJlyo08LAACAm0yZf9nrxx9/LHb/L7/8UtanBAAAwC2ozINsixYtZDKZVNgHw35vN5lMZX1aAAAA3GLKPMhWq1ZNr7zyijp16lTo/p9++kk9evQo69MCAADgFlPmQbZ169Y6evSo6tatW+j+06dPF3q3FgAAALgWZR5khwwZouzs7CL333777frHP/5R1qcFAADALabMg2yvXr2K3X/bbbdpwIABZX1aAAAA3GKc/kEEb29v7du3z9nDAAAAgME4PciyXhYAAACl4fQgCwAAAJQGQRYAAACGVOYPe91qHnFdraqurs4eBgAAwE3hjGu+Rpaw1ulB1uhf+fIyXVRVg88BAACgorCZSv781A0Jsr8/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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "mosaic = [[\"p_0\"], [\"p_1\"]]\n", "f, axd = plt.subplot_mosaic(\n", " mosaic,\n", " figsize=(7.0, 6.0),\n", " sharex=True,\n", " layout=\"tight\",\n", ")\n", "scipy_ci = ml_sp_n.solver.ci()\n", "for i, pname in enumerate(axd):\n", " par = ds_n[\"par\"].sel(pname=pname)\n", " parq = par.quantile(\n", " [0.025, 0.975], dim=\"real_name\", skipna=True\n", " ) # .values.reshape(2, -1)\n", " axd[pname].fill_between(\n", " parq[\"iteration\"],\n", " parq.values[0],\n", " parq.values[1],\n", " color=\"C0\",\n", " label=\"iES 95% CI\",\n", " linewidth=2.0,\n", " )\n", "\n", " scipy_opt = ml_sp_n.parameters.at[pname, \"optimal\"]\n", " axd[pname].axhline(\n", " scipy_opt,\n", " color=\"C1\",\n", " alpha=1.0,\n", " linewidth=2.0,\n", " label=\"SciPy 95% CI\\n(no iterations)\",\n", " )\n", " axd[pname].fill_between(\n", " x=[0.0, ml_ies_pp_n.noptmax],\n", " y1=[scipy_opt - scipy_ci[i], scipy_opt - scipy_ci[i]],\n", " y2=[scipy_opt + scipy_ci[i], scipy_opt + scipy_ci[i]],\n", " color=\"C1\",\n", " alpha=0.5,\n", " )\n", " axd[pname].xaxis.set_major_locator(mpl.ticker.MultipleLocator(10.0))\n", " axd[pname].xaxis.set_minor_locator(mpl.ticker.MultipleLocator(1.0))\n", " axd[pname].set_ylim(parq.sel(iteration=1))\n", " axd[pname].set_ylabel(pname)\n", " axd[pname].set_xlabel(\"Iteration\") if \"p_1\" in pname else None\n", " axd[pname].set_xlim(0, ml_ies_pp_n.noptmax)\n", "axd[\"p_0\"].legend()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Response surface" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [], "source": [ "P0_n, P1_n, RSS_n = get_response_surface(ml_sp_n, 500)" ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 21, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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jENRFJYuXcrx48e59957+eWXXzh9+jT79+/n7bff5qGHHsqLUygphhT7mabbufnFeusH+NChQ7Rq1Yrg4GBef/11vLy8WLFiBT169ODbb7/l4YcfBmDixIlMnTqVAQMG0KxZM+Li4ti5cye7d++mQ4cO6eM5HA46d+5MixYtmD59Or/99hsTJkzAbrczefJkIO2C8eCDD7J+/XqeffZZGjZsyO+//84rr7zCxYsXmTNnToa4N23axKpVq3jxxRfx8fHhvffe49FHHyUiIoKSJUsCMGjQIFauXMmQIUOoXbs20dHRbNq0iSNHjtCoUSMg7Zdhly5daNy4MRMmTMBgMLB06VLatWvHxo0badasWbbnrmLFijgcDj799FP69Onj/ItxC2+++SZubm6MGjUKq9XKAw88QKVKlRg+fDi9evXigQceSF/627FjB//88w9PPvkkISEhnD17lgULFhAeHs7hw4fx9PQEICEhgXvvvZcjR47Qv39/GjVqxLVr1/jhhx+4cOECpUqVQlVVHnzwQTZt2sRzzz1HrVq1OHDgAHPmzOH48eNSeC4ptCxevJjFixdneK5Tp0789ttvNGvWjE2bNjFo0CAuXbqEt7c3derUYfXq1bRp0ybbMY8dO8bo0aO5fv06lSpVYsyYMQwfPjy93WKx8NVXXzFx4kSsViuVK1dm+PDhjBgxItNYixYtokyZMnTr1i39uYkTJ/LUU0/RvHlzOnfuzODBg7ONpVmzZuzcuZO3336bgQMHcu3aNYKCgrjnnnsyWC9IJHeEVkxZunSpBmhr167Vrl69qp0/f15buXKlFhgYqFksFu38+fPp27Zv316rV6+elpKSkv6cqqraPffco4WGhqY/16BBA61r1666++3Tp48GaEOHDs0wVteuXTU3Nzft6tWrmqZp2urVqzVAe+uttzL0f+yxxzRFUbSTJ0+mPwdobm5uGZ7bt2+fBmjvv/9++nN+fn7a4MGDs41NVVUtNDRU69Spk6aqavrzSUlJWuXKlbUOHTroHltUVJQWGBioAVrNmjW1QYMGaV988YUWExOTaduKFStqffr0yfR8mzZttDZt2qT/vX79eg3QqlSpoiUlJWXY9syZMxqgzZgxI8Pzt2+naZq2ZcsWDdCWL1+e/tz48eM1QFu1alWm7W8e/6effqoZDAZt48aNGdoXLlyoAdrmzZsz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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "f, ax = plt.subplots(figsize=(6.75, 5.0))\n", "ax.set(\n", " xlim=(4.8, 5.2),\n", " ylim=(0.6, 1.4),\n", ")\n", "plot_response_surface(P0_n, P1_n, RSS_n, vmin=np.min(RSS_n), vmax=1e1, ax=ax)\n", "ax.axhline(a, color=\"k\", linewidth=0.5, linestyle=\"--\", label=\"True\")\n", "ax.axvline(b, color=\"k\", linewidth=0.5, linestyle=\"--\")\n", "\n", "traj_kwargs = {\n", " \"color\": \"w\",\n", " \"marker\": \".\",\n", " \"linewidth\": 0.5,\n", " \"markersize\": 2.0,\n", " \"alpha\": 0.2,\n", "}\n", "# for real in ds_n[\"par\"].real_name.values:\n", "# ax.plot(\n", "# ds_n[\"par\"].sel(pname=\"p_0\", real_name=real),\n", "# ds_n[\"par\"].sel(pname=\"p_1\", real_name=real),\n", "# **traj_kwargs,\n", "# )\n", "ax.plot(\n", " ds_n[\"par\"].isel(iteration=-1).sel(pname=\"p_0\"),\n", " ds_n[\"par\"].isel(iteration=-1).sel(pname=\"p_1\"),\n", " **traj_kwargs,\n", " linestyle=\"none\",\n", ")\n", "\n", "sp_ci = ml_sp_n.solver.ci()\n", "ax.errorbar(\n", " x=ml_sp_n.p_0,\n", " y=ml_sp_n.p_1,\n", " xerr=sp_ci[0],\n", " yerr=sp_ci[1],\n", " linewidth=0.8,\n", " color=\"C1\",\n", " label=\"SciPy 95% CI\",\n", ")\n", "\n", "ies_ci = ds_n[\"par\"].isel(iteration=-1).quantile([0.025, 0.975], \"real_name\").values\n", "ies_base = ds_n[\"par\"].isel(iteration=-1).sel(real_name=\"base\").values\n", "ax.errorbar(\n", " x=ies_base[0],\n", " y=ies_base[1],\n", " xerr=np.abs(ies_ci[:, [0]] - ies_base[0]),\n", " yerr=np.abs(ies_ci[:, [1]] - ies_base[1]),\n", " color=\"C0\",\n", " linewidth=0.8,\n", " label=\"iES 95% CI\",\n", ")\n", "ax.legend(loc=\"lower right\", bbox_to_anchor=(1.0, 1.0), frameon=False)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Outcomes are pretty similar for iES and SciPy again. The confidence intervals look pretty much the same." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Loss function\n", "\n", "Loss function in PEST++ iES" ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 22, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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8dprr+G7777DiRMncOedd2LZsmV455138Mknn2D9+vV49dVXXfFGoxF5eXnYvn07ioqKIIoiJk6cCKez/q7gPffcg5tuuglTpkyB3W7HJ598gr///e9Ys2aN6+5ecw4fPox///vf+Pjjj7Fu3Tp8//33eOihh1zH//KXv+CVV17BkiVLsHv3bowZMwY333yzWwLnDZPJhCVLluDtt99GcXExjh8/jscff9x1/JVXXkFBQQFWrVqFb7/9FlVVVfjvf//rOl5WVoa77roL9957Lw4cOICvvvoKkyZNatsyHznM6fV6GYBcVFIq7z5R7fbacKBC3nHsXKCHSETULurq6uT9+/fLdXV1bvtNFru84YcKeetP55r8nvT3a+tP5+QNP1TIJovdp7EPHz5cfuSRR9y2lUqlHBER4fb65z//KcuyLNvtdnnatGkyADkxMVG+9dZb5VdffVXW6/UtXgeA/PTTT7u2N23aJAOQ//GPf7j2/etf/5I1Go1re/78+XJWVpZrOzc3V+7evbtst1/8jHfccYc8efJk17bZbJYjIyPlvXv3yrIsyxs2bJAByF988YUrZtGiRTIA+ciRI659999/vzxmzBiP4z9z5owMQN6zZ49rX1VVlZyamio/+OCDckJCgvzCCy+0+DWYP3++LEmSfPLkSde+Tz/9VBZFUS4rK5NlWZaTk5ObnGfw4MHyQw895PZ5zp8/7zr+/fffywDk0tJSWZZl+c0335QByIcPH3bF5OfnywkJCa7tpKQkefHixa5tm80mp6amyrfccossy7K8Y8cOGYB89OjRFj+TLHv+/pfli7lCa98fsizLvGPVAq1KQq3ZATP7WRERhZwpU6agpKTE7XXzzTcDACRJwptvvomTJ09i8eLFSElJwYsvvoh+/fq5TTU1Z8CAAa5/JyQkAAD69+/vts9sNsNgMHg8R79+/SBJF+vVkpKSUFlZ6dr+8ssv0bVrV/Tr16/Fa+t0OmRkZLjta3yeQ4cO4a677kJGRgaio6ORnp4OADh+/LgrJi4uDv/4xz/w17/+FT179sTcuXNb/PwA0K1bN6SkpLi2hw0bBqfTiR9//BEGgwGnT5/Gdddd5/ae6667DgcOHGj13I3pdDr07NnTtd3466TX61FWVoacnBzXcYVCgUGDBrm2s7KycOONN6J///644447sHLlSpw/f96nMfgqbBMrT2sFNqZRSjDbHO32iDEREflPTEwMevXq5faKiopyi0lJScHUqVPx2muvYd++fTCbzVixYkWL51Uqla5/C4LgcV/DdFtr52h4T+P4jz76yJUEtnTt1s4zYcIEVFVVYeXKldiyZQu2bNkCAE2efCwuLoYkSSgrK2vT+qMGoliffsiNpuQurTEDmv86yT5M40mShM8//xyffvopMjMz8eqrr6JPnz4oLS29zJG3LmwTq9baLQCAKAhwyjIXZCYiCgNxcXFISkpql8SiJbIs4+OPP25SX+Wrc+fO4ccff8TTTz+NG2+8EX379m32bs13332Hl19+GR9//DEiIyNbrQ8D6u94nT592rW9efNmiKKIPn36IDo6GsnJydi4caPbezZu3IjMzEwAQJcuXQDA7e6gr32xYmJikJSU5EoWAcBut2PHjh1ucYIg4LrrrsOCBQvw/fffQ6VSudVh+Rv7CLRCo5BQZbQiLd5zER8RUTiwXUYbhEBew2Qyoby83G2fWq1GXFwc3njjDZSUlGDixIno2bMnzGYzVq9ejX379rkVfwfCjh07YDKZcP3111/ReeLi4tCpUyf87W9/Q1JSEo4fP95kmq+mpgZTp07F7NmzMW7cOKSmpmLw4MGYMGECbr/9do/n1mg0yM3NxZIlS2AwGDB79mzceeedSExMBAD84Q9/wPz589GzZ09kZ2fjzTffRElJCdasWQMA6NWrF9LS0vDss8/ihRdewMGDB/HKK6/4/BkfeeQRvPTSS+jduzeuvvpqLF261O1Jwy1btqCoqAi/+tWv0LVrV2zZsgVnzpxB3759fb6Wt5hYtUKjlFBjtsFid0CtaPv+LUREwUYSBUSoFTBa7JfVY8pXEWoFJFG44vOsXLkSK1eudNs3ZswYrFu3DkOGDMG3336LBx54AKdPn0ZkZCT69euHwsJCDB8+/IqvfSU+/PBD3HTTTVAoruxPtCiKePfddzF79mxcc8016NOnD5YvX44RI0a4Yh555BFERETgxRdfBFBfK/biiy/i/vvvx7Bhw9zqqBrr1asXJk2ahJtuuglVVVUYP348Xn/9ddfx2bNnQ6/X47HHHkNlZSUyMzPx0UcfoXfv3gDqp/j+9a9/4cEHH8SAAQMwePBgPP/887jjjjt8+oyPPfYYysrKkJubC1EUce+992LixImu1g/R0dEoLi7GsmXLYDAY0L17d7zyyisYN26cT9fxhSD7MlnZARkMBsTExKCopBRdOsU1Oe5wyjhTY8Gg9DjERagCMEIiovZhNptRWlqKHj16QKPRuB3jWoHtZ8CAAXj66adx5513BnooYaWl7/+GXEGv17t6oXnCO1atkEQBDtmJWoudiRURha1wTnTak9VqxW233damd1SobfEnxQsqSUJ1nX/XjiIiIrqUSqXC/Pnzmzy9SKGDiZUXtEoJ+jp7uxRuEhERUegK28TKmz5WDTRKEWYr+1kRERFRy8I2sfKmj1UDhSTCIcswsp8VERERtSBsEytfKQQBehPrrIiIiMgzJlZe0iglVJtssLPOioiIiDxgYuUlrUpCnd3B6UAiIiLyiImVl5SSCLtDhsnKAnYioo6moKAAsbGxgR4GdQBMrHwgCgIMdU1X3yYiosA6c+YMHnzwQXTr1g1qtRqJiYkYM2ZMk4WAPZk8eTIOHjzo2i4oKIAgCBAEAaIoIjU1FdOnT0dlZeVlj/HScyYlJWHy5Mk4fvy4W1xpaSnuvvtuJCcnQ6PRIDU1Fbfccgt++OEHV8zXX3+NUaNGIT4+HjqdDr1790Zubi6sVtYCBxo7r/tAq5Rw3mSDwyn7ZR0rIiLyj9tuuw1WqxVvvfUWMjIyUFFRgaKiIpw7d86r92u1Wmi1Wrd90dHR+PHHH+F0OrFr1y5Mnz4dp0+fxmeffXbZ42w4pyzLKC0txUMPPYQ77rgDW7ZsAQDYbDb88pe/RJ8+ffDBBx8gKSkJJ0+exKeffupaXHj//v0YO3YsHn74YSxfvhxarRaHDh3Cf/7zHzgcLFcJNCZWPtAqJRjMVpisdkRplIEeDhERAaiursY333yDr776yrWAcvfu3TFkyJAmcU8++SQKCwuh1+vRq1cvvPTSSxg/fjwKCgowZ84cV/ICAIIgIDExEQCQnJyM2bNn45lnnkFdXR1+/etfIzMzE6+99por/syZM0hJScGnn36KG2+8sdmxNj5nUlISfve732H27NkwGAyIjo7Gvn37cOTIERQVFaF79+6uz3Lddde5zrF+/XokJiZi8eLFrn09e/bE2LFjr+CrSP7CqUAfqBQirA4nTCxgJ6JwYzV6ftnMPsTWtR7ro8jISERGRqKwsBAWi6XZGKfTiXHjxmHjxo345z//if379+Oll16CJEleX0er1cLpdMJut+P3v/893nnnHbfr/fOf/0RKSgpGjRrl1fkqKyvx3//+F5IkucbRpUsXiKKI999/3+Pdp8TERJSVlaG4uNjrsVP74R0rHzXUWSVEa1oPJiLqKF5M9nys96+AKe9d3P6/XoDN1Hxs9+uB6Z9c3F7WHzBdMl33rN6noSkUChQUFGDGjBlYsWIFBg4ciOHDh+M3v/kNBgwYAAD44osvsHXrVhw4cABXXXUVACAjI8Praxw6dAgrVqzAoEGDEBUVhUmTJmHWrFn48MMPceeddwKor6GaNm0aBMFzqYher0dkZCRkWYbJVP81mj17NiIiIgAAKSkpWL58OZ544gksWLAAgwYNwsiRIzFlyhTXeO+44w589tlnGD58OBITEzF06FDceOONuOeeexAdHe3T1478j3esfKRRSKgyWuF0yoEeChERXXDbbbfh9OnT+OijjzB27Fh89dVXGDhwIAoKCgAAJSUlSE1NdSVV3mhIgnQ6Hfr06YOEhASsWbMGAKDRaDB16lSsWrUKALBz507s3bsX06ZNa/GcUVFRKCkpwfbt2/HKK69g4MCBeOGFF9xiZs6cifLycqxZswbDhg3De++9h379+uHzzz8HAEiShDfffBMnT57E4sWLkZKSghdffBH9+vVDWVmZ15+P2oYgy3JYZgj5+fnIz8+Hw+HAwYMHUVRSii6d4lp9n9lWv2bg4B7xiFDzhh8RdRxmsxmlpaXo0aMHNJpL7sq3NEUnSIBS42WsCCi1LceqIrwbcCt+//vf4/PPP8exY8fw6quvYsmSJTh27FizsZfWWBUUFGD27NnYuXOn6wm+S4vb9+zZg+zsbBw7dgwvv/wyfvjhB1fy4801gPokymAw4O233/b4PlmWMWbMGFgsFnz99dfNxpw/fx5XXXUVHnroISxYsMDjucizlr7/DQYDYmJioNfrW70rGLZ3rHxZK7AxtUKExeGEkf2siCicqCI8v5QaH2K1rcf6SWZmJozG+sRtwIABOHnypFtLhdaIoohevXohIyOjSVIFAP3798egQYOwcuVKvPPOO7j33nt9HuPcuXOxdu1a7Ny502OMIAi4+uqrXZ+lOXFxcUhKSmoxhtpH2CZWl0sQBAgAauqYWBERBYNz585h1KhR+Oc//4ndu3ejtLQU7733HhYvXoxbbrkFADB8+HD84he/wG233YbPP/8cpaWl+PTTT7Fu3boruvbvf/97vPTSS5BlGRMnTvT5/WlpaZg4cSLmzZsHoH7K8pZbbsH777+P/fv34/Dhw/jHP/6BVatWuT7LG2+8gQcffBDr16/HkSNHsG/fPjz55JPYt28fJkyYcEWfh64c57Iug0YhocpkRYYst1ikSEREbS8yMhI5OTn485//jCNHjsBmsyEtLQ0zZszAH//4R1fcf/7zHzz++OO46667YDQaXe0WrsRdd92FOXPm4K677mo6feqlRx99FMOGDcPWrVuRkZGB9PR0LFiwAEePHoUgCK7tRx99FAAwZMgQfPvtt3jggQdw+vRpREZGol+/figsLHS1m6DACdsaqwYN86be1lgBQJ3VgTqbHUN6dIJW5f2jukREwazFGitq1tGjR9GzZ09s27YNAwcODPRw6AqwxsrPfMkvNUoRFrsTtRZOBxIRhSObzYby8nI8/fTTGDp0KJMqcmFidcHxKg89V5ohCAJkGTBauG4gEVE42rhxI5KSkrBt2zasWLEi0MOhIMIaqwt2nqjGoKtSvY5XK0RUmaxIb7shERFRkBoxYoRPMx0UPnjH6oLvj5/3KV6rklBrdsBs4/I2REREVI+J1QXHq+pQWWNuPfACjVKCxV7fLJSIqCPhnRgKR/76vmdi1cjW0iqvY0VBgNMJLshMRB2GUqkEANcadkThpOH7vuHn4HKxxqqRLaVVGD+ghYVGL6FSiKgyWpEWr2vDURERtQ9JkhAbG4vKykoAgE6nY68+6vAaFsSurKxEbGwsJOnK2igxsWpkzyk9ai12RHq5BqBWKaHGbIPF7oBawX5WRBT6EhMTAcCVXBGFi9jYWNf3/5VgYnVBUowGFWYZO46dx/Crunj1Ho1SwpkaO0wWJlZE1DEIgoCkpCR07doVNhtbylB4UCqVV3ynqgETqwt+1i0W6w4asKX0nNeJlSQKcMj1CzLHRajaeIRERO1HkiS//aEhCichX7x+4sQJjBgxApmZmRgwYADee++9yzrPwG6xAIAdx87D5nB6/T6VJOG8yXpZ1yQiIqKOJeQTK4VCgWXLlmH//v1Yv3495syZA6PR6PN5MjpHIk6nhMnqwJ5Teq/fp1VK0NfZfUrGiIiIqGMK+cQqKSkJ2dnZAOqLLjt37oyqKu/bJjQQBQFD0uMB1D8d6C2NUoTZ6oDJwrYLRERE4S7giVVxcTEmTJiA5ORkCIKAwsLCJjH5+flIT0+HRqNBTk4Otm7d2uy5duzYAYfDgbS0tMsaS05GJwDA1tJzXjcKU0giHE4ZtVY2CiUiIgp3AU+sjEYjsrKykJ+f3+zxtWvXIi8vD/Pnz8fOnTuRlZWFMWPGNHkUuKqqCvfccw/+9re/tXg9i8UCg8Hg9mqQlRoLtULE2VorjpzxfjpRIQrQ17HOioiIKNwFPLEaN24cnn/+eUycOLHZ40uXLsWMGTMwffp0ZGZmYsWKFdDpdFi1apUrxmKx4NZbb8XcuXPx85//vMXrLVq0CDExMa5X47tbKoWIgd3iAACbS895/Rk0SgnVRhvsrLMiIiIKawFPrFpitVqxY8cOjB492rVPFEWMHj0amzZtAlDfMXXatGkYNWoUpk6d2uo5n3rqKej1etfrxIkTbsdzelyos/rJ+8RKq5JQZ3fAyOVtiIiIwlpQJ1Znz56Fw+FAQkKC2/6EhASUl5cDADZu3Ii1a9eisLAQ2dnZyM7Oxp49ezyeU61WIzo62u3V2KD0eIgCcPScCeUG7xZlVkoiHA4ZJtZZERERhbWQbxB6/fXXw+n0fQouPz8f+fn5cDjc7zLFaJXomxSNfacN2Fp6DjdnpXh1PkEQYKizISlG6/NYiIiIqGMI6jtWnTt3hiRJqKiocNtfUVFxxev5zJw5E/v378e2bduaHBvao/7pwC0/ed92QauUcN5kg9Pp3dOERERE1PEEdWKlUqlw7bXXoqioyLXP6XSiqKgIw4YNa7Pr5mTU11ntPa1Hrdm76T2tUkKd1Q4jpwOJiIjCVsCnAmtra3H48GHXdmlpKUpKShAfH49u3bohLy8Pubm5GDRoEIYMGYJly5bBaDRi+vTpbTampBgtusXrcLzKhO3HqjCiT9dW36NSiLA6nDBZHYjSKNtsbERERBS8Ap5Ybd++HSNHjnRt5+XlAQByc3NRUFCAyZMn48yZM5g3bx7Ky8uRnZ2NdevWNSlo95WnGqsGOT3icbzKhM2l3iVWQH339hqzDQnRmisaGxEREYUmQfa2xXgHZTAYEBMTg6KSUnTpFOfaf7CiBo+9twtapYQ1v8+BUmp91rTaZIVKIWJIj3gIgtCWwyYiIqJ20pAr6PX6Jt0ELhXUNVaB1KtrJOJ1KtTZHNh90rtFmTVKCXVWB0zsZ0VERBSWmFh5IAoChjQ0C/WyC7taIcLicLKAnYiIKEyFbWKVn5+PzMxMDB482GNMw9OBW0qr4PRixrRh+s/bJwmJiIioYwnbxKqlPlYNslJjoVVKqDJacbiy1qvzahX18WFeukZERBSWwjax8oZSEjGwWyyA+rtW3tAoJRgtdphtXJCZiIgo3DCxakVORkMXdu/qrDRKERa7E7UWTgcSERGFm7BNrLypsQKAQd3jIArAsSoTyvWtL8osCAJkGTBabP4aKhEREYWIsE2svKmxAoAojRLXJMcAADb78HRglcl6xWMkIiKi0BK2iZUvXE8HejkdqFVJqDU7YLaxnxUREVE4YWLlhZwe9XVW+8sMMNS1PsWnUUqw2B0wss6KiIgorDCx8kJCtAbpnXRwysD2Y60/HSgKApxOsAM7ERFRmGFi5aWGu1abf/Ku7YJKIaLKyDorIiKicBK2iZW3TwU2yLmwvM33J87Dam+9R5VWKaHGbIPFzrtWRERE4SJsEytvnwps0KtrJDpFqGC2ObHrZHWr8RqlBLPNCZOFiRUREVG4CNvEyldC40WZvXg6UBIF2J1ckJmIiCicMLHywdALdVZbj3q3KLNSEnGe/ayIiIjChk+J1dmzZ3Hs2DG3ffv27cP06dNx55134p133vHr4IJN/9QYaJUSzptsOFTR+qLMOqUChjo7bA6uG0hERBQOfEqsHn74YSxfvty1XVlZiRtuuAHbtm2DxWLBtGnT8Pbbb/t9kMFCKYm4tnscAGCLF13YNUoRdVYH66yIiIjChE+J1ebNm3HzzTe7tlevXo34+HiUlJTgww8/xIsvvoj8/Hy/D7It+PpUYIOGpwM3l7bedkEhiXA4ZdSyzoqIiCgs+JRYlZeXIz093bX95ZdfYtKkSVAoFACAm2++GYcOHfLrANuKr08FNhiUHg9JFHCiyoTT1XWtxitEAfo61lkRERGFA58Sq+joaFRXV7u2t27dipycHNe2IAiwWCx+G1wwilQrcE1yNABvpwMlVBttsLPOioiIqMPzKbEaOnQoli9fDqfTiffffx81NTUYNWqU6/jBgweRlpbm90EGm4Yu7Fu8mA7UqiTU2R0wcUFmIiKiDs+nxGrhwoX46KOPoNVqMXnyZDzxxBOIi4tzHX/33XcxfPhwvw8y2DTUWR0oM0DfyqLMSkmE3e7kgsxERERhQOFL8IABA3DgwAFs3LgRiYmJbtOAAPCb3/wGmZmZfh1gMOoarUFG5wj8dNaIbUerMLpvQovxoijCUGdDUoy2nUZIREREgeBTYgUAnTt3xi233NLssV//+tdXPKBQkdMjHj+dNWJL6blWE6uG3ldOpwxRFNpphERERNTefJoK3LRpE/73v/+57Vu9ejV69OiBrl274r777uvwxesNcjLq66y+P17d6kLLWqWEOqudy9sQERF1cD4lVs899xz27dvn2t6zZw9+97vfYfTo0Zg7dy4+/vhjLFq0yO+DDEYZnSPQJUoNi92JXSeqW4xVKURYHTJMVhawExERdWQ+JVYlJSW48cYbXdvvvvsucnJysHLlSuTl5WH58uX497//7fdBtoXLbRDaQBAE5KR73yxUFIAac8uF7kRERBTafEqszp8/j4SEi/VEX3/9NcaNG+faHjx4ME6cOOG/0bWhy20Q2ljDdOC20io4nC0vyqxWSKgyWiF7sXgzERERhSafEquEhASUlpYCAKxWK3bu3ImhQ4e6jtfU1ECpVPp3hEHsmuRoRKgkVNfZcLCipsVYrVKCyergdCAREVEH5lNiddNNN2Hu3Ln45ptv8NRTT0Gn0+GGG25wHd+9ezd69uzp90EGK4UPizKrFSIsdicL2ImIiDownxuEKhQKDB8+HCtXrsTKlSuhUqlcx1etWoVf/epXfh9kMGvowr75p5brrAShvs2C0czEioiIqKPyqY9V586dUVxcDL1ej8jISEiS5Hb8vffeQ2RkpF8HGOyu7R4HhSjgVHUdTp43ITVO5zFWq5BwzmhFemfZlWgRERFRx+HTHasGMTExTZIqAIiPj8dHH310xYMKJRFqBa5JiQHQ+tqBGqUEo8UOs40LMhMREXVEPidWdrsde/fuxcGDB932f/jhh8jKysKUKVP8NrhQMfTC2oFbfmq5zkqjFGFmnRUREVGH5VNitXfvXvTq1QtZWVno27cvJk2ahIqKCgwfPhz33nsvxo0bhyNHjrTVWIPWkAt1Vj+U16DaZPUYVz/9J6OW/ayIiIg6JJ8SqyeffBK9evXChx9+iN/85jcoLCzEiBEjMGHCBJw8eRIvvfQSUlNT22qsQatLlBo9u0RABrDtaMvTgWqpft1AIiIi6nh8Sqy2bduGJUuWYPz48Xj99dcBAH/84x/x+OOPQ6vVtskAQ0XD04Gt1VlpVRJqzHaYbexnRURE1NH4lFidPXsWycnJAOoL2CMiItwahIazoRn1dVbfn6huMWnSKCVY7A4YLayzIiIi6mh8SqwEQUBNTQ0MBgP0ej0EQUBdXR0MBoPbKxRc6VqBl0rvFIGuUWpY7U6UtLAosygIcDrBDuxEREQdkCD7sHidKIpu/ZdkWW522+EInaTBYDAgJiYGRSWl6NIp7orO9bfiI/h4dxlG9+2KR268ymPc2VoL4iNUyEqLvaLrERERUdtryBX0ej2io6NbjPWpQeiGDRuuaGAdXU5GJ3y8uwzbjp6HwylDEptvAqpRSqgx22C1O6FSXFYrMSIiIgpCPiVWw4cPb6txdAj9kqIRoZagr7Phh3ID+iXHNBunVUo4W2uH0WKHSqFqNoaIiIhCD2+X+JFCEjG4+4VmoS08HSiJAuxONgolIiLqaJhY+VlOxoW2Cz+dQ0vla0pJbLGZKBEREYUeJlZ+NrBbLBSigNN6M06er/MYp1MqoK+zw+bguoFEREQdBRMrP9OpFBiQGgsA2Fzqee1AjVJEndUBkyV0nqAkIiKiljGxagMNzUK3/OS5zkohiXA4ZdZZERERdSBePxVYXFx8WRdIT09Ht27dLuu9oWpIejxexxEcrKjBeaMVcRHNP/kniQKq66xIjg3v5YCIiIg6Cq8Tq9zcXJ9PLggC5syZg9mzZ/v83lDWKVKN3l0jcaiyFluPVmFMv8Rm47RKCXqjvcWeV0RERBQ6vE6sSktL23IcHU5Oj3gcqqzF5p/OeU6sVBLO11lhtNoRrVG28wiJiIjI31hj1UZyetS3Xdh1shp1HtYFVEoi7HYnF2QmIiLqIJhYtZHunXRIiFbD5pDx/YnzHuNEUURNHRMrIiKijoCJVRsRBMF116qlpwO1SglVJiucTq/XwiYiIqIg1SESq4kTJyIuLg633357oIfiZmiP+rYL245WweEhcarvZ2WHycZ+VkRERKGuQyRWjzzyCFavXh3oYTSRmRyDKLUCNRY7DpQZmo1RKyRYHTLrrIiIiDqADpFYjRgxAlFRUYEeRhOSKGBQehwAYEsLXdhFAagx29prWERERNRGvE6sJk2aBIPB4Pp3Sy9fFBcXY8KECUhOToYgCCgsLGwSk5+fj/T0dGg0GuTk5GDr1q0+XSOQXHVWpVUeF2VWKyRUGa0tLtpMREREwc/rxComJgaCILj+3dLLF0ajEVlZWcjPz2/2+Nq1a5GXl4f58+dj586dyMrKwpgxY1BZWenTdRpYLBYYDAa3V1sa2C0OSklAmd6M41WmZmO0SgkmqwMmD20ZiIiIKDR43SD0zTffbPbfV2rcuHEYN26cx+NLly7FjBkzMH36dADAihUr8Mknn2DVqlWYO3euz9dbtGgRFixYcNnj9ZVWJSErNRbbj53HltIqdO8U0SRGrRBxzuiA0WpHhNrr/yREREQUZIK6xspqtWLHjh0YPXq0a58oihg9ejQ2bdp0Wed86qmnoNfrXa8TJ074a7geXZwObL7OShAECIIAo5kF7ERERKHsshKriooKTJ06FcnJyVAoFJAkye3lL2fPnoXD4UBCQoLb/oSEBJSXl7u2R48ejTvuuAP/7//9P6SmpraYdKnVakRHR7u92tqQC20XDlbU4lytpdkYjULCOdZZERERhbTLmneaNm0ajh8/jmeeeQZJSUmu2qtA+eKLL3x+T35+PvLz8+FwtH1dU3yECn0SovBjRQ22Hq3CuGuSmsRolRKMVjvMNie0Kv8lp0RERNR+Liux+vbbb/HNN98gOzvbz8Nx17lzZ0iShIqKCrf9FRUVSExsfmFjb82cORMzZ86EwWDwueD+cuT0iMePFTXYUtp8YqVWijhf54TRamdiRUREFKIuayowLS2tXaasVCoVrr32WhQVFbn2OZ1OFBUVYdiwYW1+fX/KybiwKPOJapisTWupREEAIKOW/ayIiIhC1mUlVsuWLcPcuXNx9OjRKx5AbW0tSkpKUFJSAgAoLS1FSUkJjh8/DgDIy8vDypUr8dZbb+HAgQN48MEHYTQaXU8Jhoq0OC2SYjSwO2V8f7y62Ri1JOG8iYkVERFRqPJ6KjAuLs6tlspoNKJnz57Q6XRQKpVusVVVnhcdvtT27dsxcuRI13ZeXh4AIDc3FwUFBZg8eTLOnDmDefPmoby8HNnZ2Vi3bl2TgnZftWeNFXBxUebCklPYXHoO1/Xq3CRGq5JQY7bDbHNAo+R0IBERUagRZC/n9N566y2vT5qbm3vZA2pvDTVWRSWl6NIprk2vte+0HnM/2INItQJv3zsECsn9hqHDKeNMrRnXdo9HfISqTcdCRERE3mnIFfR6favdBLy+YxVKyVKwujoxGlEaBWrMduwvM2BAaqzbcUkU4HQCRoudiRUREVEI8qnGyul04uWXX8Z1112HwYMHY+7cuairq2ursXU4kihgcHp9T6stpc1Pl6oUIqqM1vYcFhEREfmJT4nVCy+8gD/+8Y+IjIxESkoK/vKXv2DmzJltNbY2lZ+fj8zMTAwePLhdrzv0QrPQzT+da/bJSo1SQo3ZBqvd2a7jIiIioivnU2K1evVqvP766/jss89QWFiIjz/+GGvWrIHTGXpJwMyZM7F//35s27atXa/7s25xUEkiKmssOHqu6aLMWqUEs80Jo4XL2xAREYUanxKr48eP46abbnJtjx49GoIg4PTp034fWEelUUrISqtvSNrc2oGSKMAh1zcKJSIiotDiU2Jlt9uh0Wjc9imVSths7L3kC9eizD81X2elEEVUm1hnRUREFGp8WtJGlmVMmzYNarXatc9sNuOBBx5ARESEa98HH3zgvxG2kfbuY9XYkB7xEDYAh8/U4mytBZ0j1W7HtUoJ+jo7bA4nlNJl9XAlIiKiAPApsWqu5cJvf/tbvw2mPbX3WoGNxelU6JMYhR/Ka7C1tAo39XdfO1CrlHDOZIXJ4kCMjokVERFRqPApsXrzzTfbahxhJ6dHJ/xQXoMtpeeaJFYKSYTDIcNotSNGp/RwBiIiIgo2vB0SIDkZ9W0Xdp/UN7sosyQKqK5jnRUREVEoYWIVIGlxOqTEamF3ythx7HyT41qlBL3RDofTqxWHiIiIKAiEbWIVqAahjeX08NyFXauSYLLb2XaBiIgohIRtYhWoBqGN5WTUt13YfqwKdod7k1WlJMJud8Jkaf+nFomIiOjyhG1iFQz6JEQhRquE0eLAvtOGJsdFQYShjj3CiIiIQgUTqwCSRAFDLizKvLmZLuxalYQqkxVO1lkRERGFBCZWAdbwdOCW0qomizJrlCLqrHaYbJwOJCIiCgVMrAIsKzUWKoWIMzUWlJ41uh1TKyRYHTIXZCYiIgoRTKwCTKOU8LO0WADNPx0oCkCNmXVWREREoSBsE6tgaLfQYOiFRZmbq7NSKyRUGa1NpgmJiIgo+IRtYhUM7RYaDO4RDwHAT2eMqKwxux3TKiWYrA7Usc6KiIgo6IVtYhVMYrRKXJ0UDQDYesl0oFohwmJzoJZ1VkREREGPiVWQGOqhC7sgCIAgwGhmYkVERBTsmFgFiZwLdVZ7Tumb3J3SKCScY50VERFR0GNiFSRS4rRIjdPC0cyizFqlBKPVDrPN6eHdREREFAyYWAWRhrtWWy55OlCtFGG2ObkgMxERUZBjYhVEGuqsdhw7D1ujRZlFQQDARqFERETBjolVELkqMQqxOiVMVgf2ntK7HVNL9f2siIiIKHiFbWIVTA1CG4jCxUWZL306UKuSUGuxw8x+VkREREErbBOrYGoQ2tjFOiv3RZnVCgl1VgdMViZWREREwSpsE6tglZUWA7VCxNlaC46cubgosyQKcMpgnRUREVEQY2IVZNQKCQO7xQFo5ulAhcg6KyIioiDGxCoI5Xjowq5RSqgx22C1s58VERFRMGJiFYQGpcdDFIDSs0ZUGC4uyqxVSjDbnDCxnxUREVFQYmIVhGK0SvS9sChz47tWkijAITu5IDMREVGQYmIVpIZ66MKuEEXoTbZADImIiIhawcQqSOVk1NdZ7T2lR6354h0qrVJCdZ0NdgfrrIiIiIINE6sglRSjRbd4HZwysP3YxelAjVJCnc0Bo4X9rIiIiIINE6sg1vB04OZGdVZKSYTDIXNBZiIioiAUtolVMC5pc6mhGfV1VjsvWZRZEgXo61hnRUREFGzCNrEK1iVtGuvVNRLxOhXqbA7sPnlxUWaNUkK10QaHU27h3URERNTewjaxCgWiIGCwq1noxacDdSoJdXY7pwOJiIiCDBOrIDe0URd254VFmZWSCJvdCRML2ImIiIIKE6sgNyA1Fhpl/RqBhytrXftFQYSBdVZERERBhYlVkFMpxEaLMl98OlCrklBlssLJOisiIqKgwcQqBOQ0dGH/6WKdlUYpos5qh8nG6UAiIqJgwcQqBAxOj4MoAMeqTCjX1y/KrFZIsNhlmLhuIBERUdBgYhUCojRK9EuOAeD+dKAkAgYz66yIiIiCBROrEJHT6OnABmqFhPMmG2SZdVZERETBgIlViMi50IV932k9ai7cpdIqJRgtdtSxzoqIiCgoMLEKEYnRGqR3ql+UedvR8wAAtUKExeZALeusiIiIggITqxDiejrwQp2VIAiAIMBoZmJFREQUDJhYhZCGOqudx8/Daq9flFmjkHDOaGWdFRERURBgYhVCenWNRKcIFcw2J3afrAZQ38/KaLXDciHRIiIiosDpEInV//73P/Tp0we9e/fG3//+90APp80IgoAhF+5abb7wdKBGKcFic7LOioiIKAiEfGJlt9uRl5eHL7/8Et9//z3+7//+D+fOnWv9jZcwWGxwhMDyMEMv1FltLT0HpyxDFATIkLkgMxERURAI+cRq69at6NevH1JSUhAZGYlx48Zh/fr1Pp8nVqtEuaEOFntwJyj9U2OgVdb3rzpUUb8os1qScM5oCfDIiIiIKOCJVXFxMSZMmIDk5GQIgoDCwsImMfn5+UhPT4dGo0FOTg62bt3qOnb69GmkpKS4tlNSUnDq1Cmfx9EvJQbdO+lQZbTCUBe83cyVkohruzcsylx/Z06rklBrscPMflZEREQBFfDEymg0IisrC/n5+c0eX7t2LfLy8jB//nzs3LkTWVlZGDNmDCorK/06DrVCQp+EaPRNiobN6USlwQxnkD5pl3NJnZVaIaHO6oDJysSKiIgokAKeWI0bNw7PP/88Jk6c2OzxpUuXYsaMGZg+fToyMzOxYsUK6HQ6rFq1CgCQnJzsdofq1KlTSE5O9ng9i8UCg8Hg9mogigLS4nUYkBqLKK0CZXozbI7ge9puUPd4SKKAE1UmnK6ugyQKcMqAkQXsREREARXwxKolVqsVO3bswOjRo137RFHE6NGjsWnTJgDAkCFDsHfvXpw6dQq1tbX49NNPMWbMGI/nXLRoEWJiYlyvtLS0JjHxESoMSI1FapwWlTWWoHviLlKjQL/kaAAXpwNVkogqozWQwyIiIgp7QZ1YnT17Fg6HAwkJCW77ExISUF5eDgBQKBR45ZVXMHLkSGRnZ+Oxxx5Dp06dPJ7zqaeegl6vd71OnDjRbJxGKaFvUjSuToxEnc2Os7WWoGrCebELe/10oFYlocZidzUOJSIiovanCPQA/OHmm2/GzTff7FWsWq2GWq32KlYSBaR3jkSEWokjlbUoM9Sha6QGCinw+ejQHvFY+c1POFBmgL7Ohki1AmdrLTBZ7VApVIEeHhERUVgKfIbQgs6dO0OSJFRUVLjtr6ioQGJi4hWdOz8/H5mZmRg8eHCrsV2i1OifGoPEaC0qaswwWQM/Ndg1WoMenSMuLMpcBUkUYJfZKJSIiCiQgjqxUqlUuPbaa1FUVOTa53Q6UVRUhGHDhl3RuWfOnIn9+/dj27ZtXsVHqOvrmnp3jUKN2R4U9UwNTwc21FkpRRF6U/C2iiAiIuroAp5Y1dbWoqSkBCUlJQCA0tJSlJSU4Pjx4wCAvLw8rFy5Em+99RYOHDiABx98EEajEdOnT2/3sSokERldItA/NQaSJKBMXxfQbu0NdVbfH6+Gxe6AVimhus4GexA+yUhERBQOAl5jtX37dowcOdK1nZeXBwDIzc1FQUEBJk+ejDNnzmDevHkoLy9HdnY21q1b16Sg3Vf5+fnIz8+Hw+Fb7ydBEJAQrYFOJeFwZS3KDWZ0ilBBo5SuaDyXo2eXCHSOVONsrQW7Tujxs26xqDJZYbQ6EKMNeM5MREQUdgQ5mB51CwCDwYCYmBjo9XpER0f79F6r3YmjZ404VmWERiEhVtf+ReMrvj6CT/aU4VeZCXh4VG+c1tehf0oMkmO17T4WIiKijsiXXIG3Na6ASiGid0Ik+iXHQAZQYTC3+9RgQ53V1qNVcMoyJEGAPoiX5CEiIurImFhdIUEQkByrRVZqLGJ17b+Q8zUpMdCpJFSbbDhYXgONUkK10RbQ2i8iIqJwFbaJlS/tFrwRo1PimgsLOZ+rtbTbQs5KScSgC4syby6tgk4loc5uhzEIWkIQERGFm7BNrHxtt+ANjbJ+IefM5Jh2Xcj5Yhf2c1BKImx2J0wWLshMRETU3sI2sWorjRdyjtS0z0LO13aPg0IUcPJ8HU6dr4MoiKgxs86KiIiovTGxaiPtuZBzhFqBa1JiANTftdIoRZwzWuFknRUREVG7YmLVhrQq94Wcz7XhQs5DLzwduLm0ClqVBLPVAZON04FERETtKWwTK38Xr3vSsJBz/5RYaJQSygx1bdIZfciFOqsfygyoszpgtjth4rqBRERE7SpsE6u2KF5vSVsv5NwlSo2eXSIgo35RZlEADKyzIiIialdhm1gFQsNCzr26RqLGbMd5Py/kfPHpwCpolBLOm2xtNvVIRERETTGxamcKSUTPLpHonxoD0c8LOQ/NqK+z+v5ENUQARosddayzIiIiajdMrAKgYSHnAakx6BKlRrnBDLMfEqD0ThHoGqWG1e7E/jIDLDYHjOxnRURE1G7CNrFqr+L1lkRrlOiXHIOMzhGorrNe8Rp/giBgSKO1AyEIqGWdFRERUbsJ28SqvYvXPWm8kLNTllFxhd3ah16os9p29DxUYn0/K9ZZERERtY+wTayCyaULOZfpL38h537J0YhQS9DX2XD8vBFGqx0We9t2ficiIqJ6TKyCSMNCzt0uLOR8OcvSKCQRg7pfKGI/Xg2LzdmmXd+JiIjoIiZWQUajlHB1QjQyk6NhdThRWeP71GBOQ51VaRWcMhdkJiIiai9MrIJQ/ULOERiQGosIte8LOTcsynxab0ZVrQ1Vfu6XRURERM1jYhXE4iNUyGq0kLPRyyk9nUqBAan1izLvOaVHjcXml3YORERE1LKwTayCod2CNxov5Gz0YSHnhi7sO49Xw2x1wmRlYkVERNTWwjaxCpZ2C95oWMh5QEos1EoRp/WtL+TcUGd1sKIG501Wr+92ERER0eUL28QqFHWJUmNAaiySYrSobGUh506RavTqGgkZwP7TBtZZERERtQMmViEmQq1AZnI0enqxkPPQC3etdp+qRo3FDiv7WREREbUpJlYhSNl4IWcRHhdybqiz2nvKAL3R2uIdLiIiIrpyTKxClGsh57RYjws5d++kQ0K0GlaHE7tP62FkATsREVGbYmIV4hov5Hze5L6QsyAIrrtWe07qUc06KyIiojbFxKoDaFjI+ZqUGDhkp9tCzq46q5N6VBmtrT5NSERERJdPEegBBEp+fj7y8/PhcHSM6bGGhZwjVAocqqxBmb4OXSI1yEyOQZRagRqLHXtO6REXoYIoCJdxBd+W1Qm00BotEREFs9oag9exguxNt8kOzGAwICYmBnq9HtHR0YEejl+YbQ78dLYWJ86ZEKVRYuU3P2HDj2cwtl8i7hiU2u7jEXA5iRwREVFwMNbW4OYhvbzKFcL2jlUTViNglZruFyRAqXGP80QQAaX2MmNN8HyfRQBUOq9jNSodrk6IRqRKgaNl59C/qxKbfzTjh+PlkPvHuUU7FBfPKzrMEGTPU4XusRYIsue7fU3P20KspAUu3EUTHFaIsuenF32L1dR/nQEITitEp79i1fXfFz7H2iA6bR5jnaIKsqi4jFg7RKfn+jmnqIQsKn2OheyA5LC0EKuALKouI9YJyWH2T6yggCw1xMqQHHV+iZUFCU5J7dqW7CY/xYpwSprLihXtdRA8/NzLEOBUaC8v1qef+7b6HdFKLH9HAODviMuK9dPvCKel1uP7LsU7Vg13rOZGIVrdzJ2V3r8Cprx3cfuFJMDm4Zdh9+uB6Z9c3F6cAZjONR+b/DPgvq8ubv+5P6A/3nxsl6uBmVsubufnAGd+aD42phvw6B7Xpn3FcCjKS5oNPSdH4VrLG67td1ULMVQ80GysSVYj0/Kma3uVcjFGSc2fFwDSze9cHK5yGX4tbfUY29e8CnWo/wOyRLkCt0vFHmMHmlegCvX/t/Cc4k3co/jcY+z1lr/gpNwFAPCUYg3uV3ziMfaXlsU4JNffzZujeB9zFB94jL3ZshC75Z4AgPukj/FH5b88xv7G+jQ2OzMBAFOl9VioLPAYO936B2xw/gwAcLv0NZYo3/AY+5B1Nv6fcygA4CZxM15XLfcY+7jtfrzvGA4AGCl+jzdV/+cx9hnbNLzt+BUAYKi4H++qnvcY+6LtLvzNMQEAMEA4go/Uz3iMXWafhGX22wEAvYWT+Fz9hMfYN+y/xiL7FABAqnAG36of8Ri72v5LzLNPBwDEw4Cdmgc8xr7v+AUet9Uf18KMA5p7PcZ+4hiCmbY5ru2jmrs9xn7pyMa9toufZ796OnRC839ANjv74jfWi1+nHer70UmoaTZ2lzMDt1gvfv2/Vc9GqnC22diDzhT8ynrxv+t61R9wlXiq2diTcmdcb7n4/fKh6mlkiT81G8vfERfxd0S9cP0dYbDIiHmphnesCFCInqfhBABa5cW7dK3VXjWOlVo47+XF1sdLrYxBo5SgvRCraCVWrRAbxbb8nIbGh9jG51W2EquSRGil+lhVa+dtFOvTeVt5BkUpidCK9bHqVmJVjWL9eV6FKLq+JzQ+xLZ+XqHReZu549yIJFyM1bYW2+i8rfElVhTcY1v6DhYFXBLrOfrS87b0syzg0ljPY+DviEbn5e+Ii+fl74gW8Y5Vwx2rM6ebz0JDcCrQLdZWB8hOOJwyKmvMsF9yt11WXowV7HVAC98OjWNhb3lKwKdYxcVb93BYIDg9Twn4Fnvx1j0cVggt3I73KVZSAxd+WfgWa4PQwq17WVIBF27d+xTrtENweL51L4tKQFJeRqwDQgu37mVRATTcNvclVnZCsHu+de9brAQ0TMPJcv33sD9iBRFQXPy5FzzdpfYxFoJQ/z3s71hc8rPsS6wPP/f8HcHfEeH6O6Kmpgb9rsrw6o4VE6sOWLxORERE/uNLrsA+VkRERER+wsSKiIiIyE+YWBERERH5CRMrIiIiIj9hYkVERETkJ2GbWOXn5yMzMxODBw8O9FCIiIiog2C7BbZbICIiohaw3QIRERFRADCxIiIiIvKTsF8rsGEm1GAwBHgkREREFIwacgRvqqfCPrE6d+4cACAtLS3AIyEiIqJgVlNTg5iYmBZjwj6xio+PBwAcP3681S9WqBs8eDC2bdsW6GG0OX7OjidcPis/Z8fCz9lxyLKMa6+9FsnJya3Ghn1iJYr1ZWYxMTEd/qlASZI6/GcE+Dk7onD5rPycHQs/Z8eiUqlcOUNLWLweRmbOnBnoIbQLfs6OJ1w+Kz9nx8LP2bF4+znZx4p9rIiIiMhPwv6OlVqtxvz586FWqwM9FCIiIgpxYX/HioiIiMhfwv6OFREREZG/MLEiIiIi8hMmVkRERER+wsSKiIiIyE/CPrHKz89Heno6NBoNcnJysHXr1kAPiYiIiEJUWCdWa9euRV5eHubPn4+dO3ciKysLY8aMQWVlZaCHRkRERCEorNst5OTkYPDgwXjttdcAAE6nE2lpaXj44Ycxd+7cAI+OiIiIQk3Y3rGyWq3YsWMHRo8e7doniiJGjx6NTZs2BXBkREREFKrCNrE6e/YsHA4HEhIS3PYnJCSgvLw8QKMiIiKiUBa2iRURERGRv4VtYtW5c2dIkoSKigq3/RUVFUhMTAzQqIiIiCiUhW1ipVKpcO2116KoqMi1z+l0oqioCMOGDQvgyIiIiChUKQI9gEDKy8tDbm4uBg0ahCFDhmDZsmUwGo2YPn16oIdGREREISisE6vJkyfjzJkzmDdvHsrLy5GdnY1169Y1KWgnIiIi8kZY97EiIiIi8qewrbEiIiIi8jcmVkRERER+wsSKiIiIyE+YWBERERH5CRMrIiIiIj9hYkVERETkJ0ysiIiIiPyEiRURERGRnzCxIqKgN2LECMyZMyfQw3AjCAIKCwsDPQwiCjLsvE5EQa+qqgpKpRJRUVFIT0/HnDlz2i3RevbZZ1FYWIiSkhK3/eXl5YiLi4NarW6XcRBRaAjrtQKJKDTEx8f7/ZxWqxUqleqy35+YmOjH0RBRR8GpQCIKeg1TgSNGjMCxY8fw6KOPQhAECILgivn2229xww03QKvVIi0tDbNnz4bRaHQdT09Px8KFC3HPPfcgOjoa9913HwDgySefxFVXXQWdToeMjAw888wzsNlsAICCggIsWLAAu3btcl2voKAAQNOpwD179mDUqFHQarXo1KkT7rvvPtTW1rqOT5s2DbfeeiuWLFmCpKQkdOrUCTNnznRdi4g6BiZWRBQyPvjgA6SmpuK5555DWVkZysrKAABHjhzB2LFjcdttt2H37t1Yu3Ytvv32W8yaNcvt/UuWLEFWVha+//57PPPMMwCAqKgoFBQUYP/+/fjLX/6ClStX4s9//jMAYPLkyXjsscfQr18/1/UmT57cZFxGoxFjxoxBXFwctm3bhvfeew9ffPFFk+tv2LABR44cwYYNG/DWW2+hoKDAlagRUcfAqUAiChnx8fGQJAlRUVFuU3GLFi3ClClTXHVXvXv3xvLlyzF8+HD89a9/hUajAQCMGjUKjz32mNs5n376ade/09PT8fjjj+Pdd9/FE088Aa1Wi8jISCgUihan/t555x2YzWasXr0aERERAIDXXnsNEyZMwMsvv4yEhAQAQFxcHF577TVIkoSrr74av/71r1FUVIQZM2b45etDRIHHxIqIQt6uXbuwe/durFmzxrVPlmU4nU6Ulpaib9++AIBBgwY1ee/atWuxfPlyHDlyBLW1tbDb7YiOjvbp+gcOHEBWVpYrqQKA6667Dk6nEz/++KMrserXrx8kSXLFJCUlYc+ePT5di4iCGxMrIgp5tbW1uP/++zF79uwmx7p16+b6d+PEBwA2bdqEKVOmYMGCBRgzZgxiYmLw7rvv4pVXXmmTcSqVSrdtQRDgdDrb5FpEFBhMrIgopKhUKjgcDrd9AwcOxP79+9GrVy+fzvXdd9+he/fu+NOf/uTad+zYsVavd6m+ffuioKAARqPRlbxt3LgRoiiiT58+Po2JiEIbi9eJKKSkp6ejuLgYp06dwtmzZwHUP9n33XffYdasWSgpKcGhQ4fw4YcfNikev1Tv3r1x/PhxvPvuuzhy5AiWL1+O//73v02uV1paipKSEpw9exYWi6XJeaZMmQKNRoPc3Fzs3bsXGzZswMMPP4ypU6e6pgGJKDwwsSKikPLcc8/h6NGj6NmzJ7p06QIAGDBgAL7++mscPHgQN9xwA372s59h3rx5SE5ObvFcN998Mx599FHMmjUL2dnZ+O6771xPCza47bbbMHbsWIwcORJdunTBv/71rybn0el0+Oyzz1BVVYXBgwfj9ttvx4033ojXXnvNfx+ciEICO68TERER+QnvWBERERH5CRMrIiIiIj9hYkVERETkJ0ysiIiIiPyEiRURERGRnzCxIiIiIvITJlZEREREfsLEioiIiMhPmFgRERER+QkTKyIiIiI/YWJFRERE5Cf/H1GEfsWEJUZmAAAAAElFTkSuQmCC", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "f, ax = plt.subplots(figsize=(6.75, 3.5))\n", "ax.plot(ds_n[\"phi\"].mean(\"real_name\") / weight**2, label=\"iES mean\")\n", "ax.fill_between(\n", " ds_n[\"phi\"].iteration,\n", " ds_n[\"phi\"].min(\"real_name\") / weight**2,\n", " ds_n[\"phi\"].max(\"real_name\") / weight**2,\n", " color=\"C0\",\n", " alpha=0.2,\n", " label=\"iES min/max bounds\",\n", ")\n", "ax.axhline(ml_sp_n.rss(), color=\"C1\", linestyle=\"--\", label=\"SciPy RSS\")\n", "ax.set(\n", " xlim=(0, ml_ies_pp_n.noptmax),\n", " # ylim=(2e-1, 1e0),\n", " ylabel=\"Phi | RSS\",\n", " xlabel=\"iteration\",\n", ")\n", "ax.semilogy()\n", "ax.xaxis.set_major_locator(mpl.ticker.MultipleLocator(10.0))\n", "ax.xaxis.set_minor_locator(mpl.ticker.MultipleLocator(1.0))\n", "\n", "ax.legend()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Case 3: noise on observations but not on iES realizations" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Solve model\n", "\n", "#### PEST++ iES" ] }, { "cell_type": "code", "execution_count": 23, "metadata": { "tags": [ "hide-output" ] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "2025-09-30 16:39:40.057990 starting: opening PstFrom.log for logging\n", "2025-09-30 16:39:40.058342 starting PstFrom process\n", "2025-09-30 16:39:40.059417 starting: setting up dirs\n", "2025-09-30 16:39:40.060193 starting: removing existing new_d '/home/vonkm/repos/pestas/src/scenarios/linreg_nnoise/ies_template'\n", "2025-09-30 16:39:40.069738 finished: removing existing new_d '/home/vonkm/repos/pestas/src/scenarios/linreg_nnoise/ies_template' took: 0:00:00.009545\n", "2025-09-30 16:39:40.069866 starting: copying original_d '/home/vonkm/repos/pestas/src/scenarios/linreg_nnoise/ies_model' to new_d '/home/vonkm/repos/pestas/src/scenarios/linreg_nnoise/ies_template'\n", "2025-09-30 16:39:40.071170 finished: copying original_d '/home/vonkm/repos/pestas/src/scenarios/linreg_nnoise/ies_model' to new_d '/home/vonkm/repos/pestas/src/scenarios/linreg_nnoise/ies_template' took: 0:00:00.001304\n", "2025-09-30 16:39:40.072374 finished: setting up dirs took: 0:00:00.012957\n", "2025-09-30 16:39:40.081383 starting: adding grid type d style parameters for file(s) ['parameters_sel.csv']\n", "2025-09-30 16:39:40.082359 starting: loading list-style /home/vonkm/repos/pestas/src/scenarios/linreg_nnoise/ies_template/parameters_sel.csv\n", "2025-09-30 16:39:40.082699 starting: reading list-style file: /home/vonkm/repos/pestas/src/scenarios/linreg_nnoise/ies_template/parameters_sel.csv\n", "2025-09-30 16:39:40.083620 finished: reading list-style file: /home/vonkm/repos/pestas/src/scenarios/linreg_nnoise/ies_template/parameters_sel.csv took: 0:00:00.000921\n", "2025-09-30 16:39:40.083706 loaded list-style '/home/vonkm/repos/pestas/src/scenarios/linreg_nnoise/ies_template/parameters_sel.csv' of shape (2, 2)\n", "2025-09-30 16:39:40.085042 finished: loading list-style /home/vonkm/repos/pestas/src/scenarios/linreg_nnoise/ies_template/parameters_sel.csv took: 0:00:00.002683\n", "2025-09-30 16:39:40.085216 starting: writing list-style template file '/home/vonkm/repos/pestas/src/scenarios/linreg_nnoise/ies_template/parameters_sel.csv.tpl'\n", "2025-09-30 16:39:40.093215 finished: writing list-style template file '/home/vonkm/repos/pestas/src/scenarios/linreg_nnoise/ies_template/parameters_sel.csv.tpl' took: 0:00:00.007999\n", "2025-09-30 16:39:40.095716 finished: adding grid type d style parameters for file(s) ['parameters_sel.csv'] took: 0:00:00.014333\n", "2025-09-30 16:39:40.096691 starting: adding observations from output file simulation.csv\n", "2025-09-30 16:39:40.097295 starting: adding observations from tabular output file '['simulation.csv']'\n", "2025-09-30 16:39:40.097407 starting: reading list-style file: /home/vonkm/repos/pestas/src/scenarios/linreg_nnoise/ies_template/simulation.csv\n", "2025-09-30 16:39:40.098858 finished: reading list-style file: /home/vonkm/repos/pestas/src/scenarios/linreg_nnoise/ies_template/simulation.csv took: 0:00:00.001451\n", "2025-09-30 16:39:40.099438 starting: building insfile for tabular output file simulation.csv\n", "2025-09-30 16:39:40.103978 finished: building insfile for tabular output file simulation.csv took: 0:00:00.004540\n", "2025-09-30 16:39:40.104186 starting: adding observation from instruction file '/home/vonkm/repos/pestas/src/scenarios/linreg_nnoise/ies_template/simulation.csv.ins'\n", "2025-09-30 16:39:40.109935 finished: adding observation from instruction file '/home/vonkm/repos/pestas/src/scenarios/linreg_nnoise/ies_template/simulation.csv.ins' took: 0:00:00.005749\n", "2025-09-30 16:39:40.111504 finished: adding observations from tabular output file '['simulation.csv']' took: 0:00:00.014209\n", "2025-09-30 16:39:40.111603 finished: adding observations from output file simulation.csv took: 0:00:00.014912\n", "2025-09-30 16:39:40.111903 WARNING: add_py_function() command: run() is not being called directly\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "/home/vonkm/repos/pyemu/pyemu/logger.py:100: PyemuWarning: 2025-09-30 16:39:40.111903 WARNING: add_py_function() command: run() is not being called directly\n", "\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "noptmax:0, npar_adj:2, nnz_obs:101\n", "noptmax:25, npar_adj:2, nnz_obs:101\n", "noptmax:25, npar_adj:2, nnz_obs:101\n", "noptmax:25, npar_adj:2, nnz_obs:101\n", "\n", "\n", " pestpp-ies: a GLM iterative ensemble smoother\n", "\n", " by the PEST++ development team\n", "\n", "\n", "version: 5.2.16\n", "binary compiled on Dec 1 2024 at 10:51:08\n", "\n", "started at 09/30/25 16:39:40\n", "...processing command line: ' ./pestpp-ies pest.pst /h :4004'\n", "...using panther run manager in master mode using port 4004\n", "\n", "using control file: \"pest.pst\"\n", "in directory: \"/home/vonkm/repos/pestas/src/scenarios/linreg_nnoise/ies_template\"\n", "on host: \"asuszbs14\"\n", "\n", "processing control file pest.pst\n", "\n", "\n", ":~-._ _.-~:\n", ": :.~^o._ ________---------________ _.o^~.:.:\n", " : ::.`?88booo~~~.::::::::...::::::::::::..~~oood88P'.::.:\n", " : ::: `?88P .:::.... ........:::::. ?88P' :::. :\n", " : :::. `? .::. . ...........:::. P' .:::. :\n", " : ::: ... .. ... .. .::::......::. :::. :\n", " ` :' .... .. .:::::. . ..:::::::....:::. `: .'\n", " :.. ____:::::::::. . . ....:::::::::____ ... :\n", " :... `:~ ^~-:::::.. .........:::::-~^ ~::.::::\n", " `.::. `\\ (8) \\b:::..::.:.:::::::d/ (8) /'.::::'\n", " ::::. ~-._v |b.::::::::::::::d| v_.-~..:::::\n", " `.:::::... ~~^?888b..:::::::::::d888P^~...::::::::'\n", " `.::::::::::....~~~ .:::::::::~~~:::::::::::::::'\n", " `..::::::::::: . ....:::: ::::::::::::,'\n", " `. .::::::: . .::::. ::::::::'.'\n", " `._ .::: . :::::. :::::_.'\n", " `-. : . ::::: :,-'\n", " :. :___ .:::___ .::\n", " ..--~~~~--:+::. ~~^?b..:::dP^~~.::++:--~~~~--..\n", " ___....--`+:::. `~8~' .:::+'--....___\n", " ~~ __..---`_=:: ___gd8bg___ :==_'---..__ ~~\n", " -~~~ _.--~~`-.~~~~~~~~~~~~~~~,-' ~~--._ ~~~-\n", "\n", "\n", " starting PANTHER master...\n", "\n", "IP addresses:\n", " 0.0.0.0:4004 (IPv4)\n", "\n", "PANTHER master listening on socket: 0.0.0.0:4004 (IPv4)\n", "\n", " --- initializing --- \n", "...using glm algorithm\n", "...using REDSVD for truncated svd solve\n", "...maxsing: 10000000\n", "...eigthresh: 1e-06\n", "...initializing localizer\n", "...not using localization\n", "...using lambda multipliers: 0.1 , 1 , 10 , \n", "...using lambda scaling factors: 0.75 , 1 , 1.1 , \n", "...acceptable phi factor: 1.05\n", "...lambda increase factor: 10\n", "...lambda decrease factor: 0.75\n", "...max run fail: 1\n", "\n", " --- sanity_check warnings --- \n", "...noptmax > 3, this is a lot of iterations for an ensemble method...\n", "...continuing initialization...\n", "...initializing prior parameter covariance matrix\n", "...parcov loaded from parameter bounds, using par_sigma_range 4\n", "...initializing observation noise covariance matrix\n", "...obscov loaded from observation weights\n", "...using reg_factor: 0\n", "...drawing parameter realizations: 251\n", "...not using prior parameter covariance matrix scaling\n", "...initializing no-noise observation ensemble of : 251\n", "...setting weights ensemble from control file weights\n", "...saved weight ensemble to pest.weights.csv\n", "...adding 'base' parameter values to ensemble\n", "...adding 'base' observation values to ensemble\n", "...adding 'base' weight values to weight ensemble\n", "...saved initial parameter ensemble to pest.0.par.csv\n", "...saved obs+noise observation ensemble (obsval + noise realizations) to pest.obs+noise.csv\n", "...using subset in lambda testing, percentage of realizations used in subset testing: 10\n", "...subset how: RANDOM\n", "...centering on ensemble mean vector\n", "...running initial ensemble of size 251\n", " running model 251 times\n", " starting at 09/30/25 16:39:40\n", "\n", " waiting for agents to appear...\n", "\n", "\n", "PANTHER progress\n", " avg = average model run time in minutes\n", " runs(C = completed | F = failed | T = timed out)\n", " agents(R = running | W = waiting | U = unavailable)\n", "--------------------------------------------------------------------------------\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "/home/vonkm/.local/share/uv/python/cpython-3.13.5-linux-x86_64-gnu/lib/python3.13/multiprocessing/popen_fork.py:67: DeprecationWarning: This process (pid=274580) is multi-threaded, use of fork() may lead to deadlocks in the child.\n", "/home/vonkm/.local/share/uv/python/cpython-3.13.5-linux-x86_64-gnu/lib/python3.13/multiprocessing/popen_fork.py:67: DeprecationWarning: This process (pid=274580) is multi-threaded, use of fork() may lead to deadlocks in the child.\n", "/home/vonkm/.local/share/uv/python/cpython-3.13.5-linux-x86_64-gnu/lib/python3.13/multiprocessing/popen_fork.py:67: DeprecationWarning: This process (pid=274580) is multi-threaded, use of fork() may lead to deadlocks in the child.\n", "/home/vonkm/.local/share/uv/python/cpython-3.13.5-linux-x86_64-gnu/lib/python3.13/multiprocessing/popen_fork.py:67: DeprecationWarning: This process (pid=274580) is multi-threaded, use of fork() may lead to deadlocks in the child.\n", "/home/vonkm/.local/share/uv/python/cpython-3.13.5-linux-x86_64-gnu/lib/python3.13/multiprocessing/popen_fork.py:67: DeprecationWarning: This process (pid=274580) is multi-threaded, use of fork() may lead to deadlocks in the child.\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "2025-09-30 16:39:40.762487 : trying to connect to localhost:4004...2025-09-30 16:39:40.777269 : trying to connect to localhost:4004...\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "/home/vonkm/.local/share/uv/python/cpython-3.13.5-linux-x86_64-gnu/lib/python3.13/multiprocessing/popen_fork.py:67: DeprecationWarning: This process (pid=274580) is multi-threaded, use of fork() may lead to deadlocks in the child.\n", "/home/vonkm/.local/share/uv/python/cpython-3.13.5-linux-x86_64-gnu/lib/python3.13/multiprocessing/popen_fork.py:67: DeprecationWarning: This process (pid=274580) is multi-threaded, use of fork() may lead to deadlocks in the child.\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\n", "2025-09-30 16:39:40.789547 : trying to connect to localhost:4004...\n", "2025-09-30 16:39:40.811780 : trying to connect to localhost:4004...\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "/home/vonkm/.local/share/uv/python/cpython-3.13.5-linux-x86_64-gnu/lib/python3.13/multiprocessing/popen_fork.py:67: DeprecationWarning: This process (pid=274580) is multi-threaded, use of fork() may lead to deadlocks in the child.\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "2025-09-30 16:39:40.837351 : trying to connect to localhost:4004...\n", "2025-09-30 16:39:40.858546 : trying to connect to localhost:4004...\n", "2025-09-30 16:39:40.876425 : trying to connect to localhost:4004...\n", "2025-09-30 16:39:40.891602 : trying to connect to localhost:4004...\n", "2025-09-30 16:39:41.024657 : connected to localhost:4004\n", "2025-09-30 16:39:41.040836 : connected to localhost:4004\n", "2025-09-30 16:39:41.044739 : connected to localhost:4004\n", "2025-09-30 16:39:41.080010 : connected to localhost:4004\n", "2025-09-30 16:39:41.099954 : connected to localhost:4004\n", "2025-09-30 16:39:41.117826 : connected to localhost:4004\n", "2025-09-30 16:39:41.130899 : connected to localhost:4004\n", "2025-09-30 16:39:41.145502 : connected to localhost:4004\n", "09/30 16:39:50 remaining file transfers: 0 \n", "\n", " 251 runs complete : 0 runs failed\n", " 0.00347 avg run time (min) : 0.169 run mgr time (min)\n", " 8 agents connected\n", "\n", "\n", "...saved initial obs ensemble to pest.0.obs.csv\n", "saved par and rei files for realization BASE for iteration 0\n", "saved par and rei files for realization BASE\n", "\n", " --- pre-drop initial phi summary --- \n", " phi type mean std min max\n", " actual 1.60372e+14 1.92688e+14 1.1796e+12 1.07303e+15\n", " --- observation group phi summary --- \n", " (computed using 'actual' phi)\n", " (sorted by mean phi)\n", "group count nconflict mean std min max percent std\n", "oname:simulation.csv_otype:lst_usecol:observations 101 0 1.6e+14 1.93e+14 1.18e+12 1.07e+15 100 3.17e-14\n", " Note: 'percent' is the percentage of the actual phi for each realization.\n", "\n", "...checking for prior-data conflict\n", "\n", " --- initial phi summary --- \n", " phi type mean std min max\n", " actual 1.60372e+14 1.92688e+14 1.1796e+12 1.07303e+15\n", " --- observation group phi summary --- \n", " (computed using 'actual' phi)\n", " (sorted by mean phi)\n", "group count nconflict mean std min max percent std\n", "oname:simulation.csv_otype:lst_usecol:observations 101 0 1.6e+14 1.93e+14 1.18e+12 1.07e+15 100 3.17e-14\n", " Note: 'percent' is the percentage of the actual phi for each realization.\n", "\n", "...current lambda: 1e+11\n", "\n", " --- initialization complete --- \n", "\n", " --- starting solve for iteration: 1 --- \n", "...current lambda: 1e+11\n", "...starting calcs for glm factor 1e+10\n", "...finished calcs for: 1e+10\n", "...starting calcs for glm factor 1e+11\n", "...finished calcs for: 1e+11\n", "...starting calcs for glm factor 1e+12\n", "...finished calcs for: 1e+12\n", "\n", " --- running upgrade ensembles --- \n", "...subset idx:pe real name: 0:0, 1:1, 3:3, 9:9, 30:30, 32:32, 33:33, 36:36, 64:64, 73:73, 86:86, 94:94, 97:97, 101:101, 109:109, 113:113, 127:127, 148:148, 174:174, 178:178, 196:196, 201:201, 230:230, 247:247, 250:BASE, \n", "...subset idx:oe real name: 0:0, 1:1, 3:3, 9:9, 30:30, 32:32, 33:33, 36:36, 64:64, 73:73, 86:86, 94:94, 97:97, 101:101, 109:109, 113:113, 127:127, 148:148, 174:174, 178:178, 196:196, 201:201, 230:230, 247:247, 250:BASE, \n", " running model 225 times\n", " starting at 09/30/25 16:39:50\n", " 8 agents ready\n", "\n", "\n", "PANTHER progress\n", " avg = average model run time in minutes\n", " runs(C = completed | F = failed | T = timed out)\n", " agents(R = running | W = waiting | U = unavailable)\n", "--------------------------------------------------------------------------------\n", "09/30 16:39:59 remaining file transfers: 0 \n", "\n", " 225 runs complete : 0 runs failed\n", " 0.00346 avg run time (min) : 0.145 run mgr time (min)\n", " 8 agents connected\n", "\n", "\n", "\n", " --- evaluating upgrade ensembles --- \n", "...last mean: 1.60372e+14\n", "...last stdev: 1.92688e+14\n", "\n", " --- phi summary for best lambda, scale fac: 1e+10 , 1 , --- \n", " phi type mean std min max\n", " actual 2.60369e+11 2.46922e+07 2.60353e+11 2.6047e+11\n", "\n", " --- running remaining realizations for best lambda, scale:1e+10 , 1 , --- \n", " running model 226 times\n", " starting at 09/30/25 16:39:59\n", " 8 agents ready\n", "\n", "\n", "PANTHER progress\n", " avg = average model run time in minutes\n", " runs(C = completed | F = failed | T = timed out)\n", " agents(R = running | W = waiting | U = unavailable)\n", "--------------------------------------------------------------------------------\n", "09/30 16:40:06 remaining file transfers: 0 \n", "\n", " 226 runs complete : 0 runs failed\n", " 0.00348 avg run time (min) : 0.118 run mgr time (min)\n", " 8 agents connected\n", "\n", "\n", "...phi summary for entire ensemble using lambda,scale_fac 1e+10 , 1 , \n", " phi type mean std min max\n", " actual 2.60373e+11 2.50258e+07 2.60352e+11 2.60498e+11\n", "...last best mean phi * acceptable phi factor: 1.68391e+14\n", "...current best mean phi: 2.60373e+11\n", "\n", " --- updating parameter ensemble --- \n", "\n", " --- updating lambda to 7.5e+09 --- \n", "\n", " --- EnsembleMethod iteration 1 report --- \n", " number of active realizations: 251\n", " number of model runs: 702\n", " current obs ensemble saved to pest.1.obs.csv\n", " current par ensemble saved to pest.1.par.csv\n", "saved par and rei files for realization BASE for iteration 1\n", "saved par and rei files for realization BASE\n", " phi type mean std min max\n", " actual 2.60373e+11 2.50258e+07 2.60352e+11 2.60498e+11\n", " --- observation group phi summary --- \n", " (computed using 'actual' phi)\n", " (sorted by mean phi)\n", "group count nconflict mean std min max percent std\n", "oname:simulation.csv_otype:lst_usecol:observations 101 101 2.6e+11 2.5e+07 2.6e+11 2.6e+11 100 2.88e-14\n", " Note: 'percent' is the percentage of the actual phi for each realization.\n", "\n", "\n", " --- parameter group change summmary --- \n", "group count mean chg std chg n at ubnd % at ubnd n at lbnd % at lbnd n std decr\n", "optimal 2 6.141 99.89 0 0 0 0 2\n", " Note: parameter change summary sorted according to percent at bounds.\n", " Note: the parameter change statistics implicitly include the effect of \n", " realizations that have failed or have been dropped.\n", " Note: the 'n std decr' is the number of parameters with current\n", " std less 5% of their initial std.\n", "\n", "...saved parameter change summary to pest.1.pcs.csv\n", "\n", " --- phi-based termination criteria check --- \n", "...phiredstp: 0.01\n", "...nphistp: 3\n", "...nphinored (also used for consecutive bad lambda cycles): 3\n", "...best mean phi sequence: 1.60372e+14 , 2.60373e+11 , \n", "...best phi yet: 2.60373e+11\n", "...number of consecutive bad lambda testing cycles: 0\n", "...number of iterations satisfying phiredstp criteria: 1\n", "...number of iterations since best yet mean phi: 0\n", "\n", " --- starting solve for iteration: 2 --- \n", "...current lambda: 7.5e+09\n", "...starting calcs for glm factor 7.5e+08\n", "...finished calcs for: 7.5e+08\n", "...starting calcs for glm factor 7.5e+09\n", "...finished calcs for: 7.5e+09\n", "...starting calcs for glm factor 7.5e+10\n", "...finished calcs for: 7.5e+10\n", "\n", " --- running upgrade ensembles --- \n", "...subset idx:pe real name: 16:127, 24:BASE, 27:5, 31:10, 36:15, 44:23, 50:29, 59:42, 61:44, 70:53, 77:60, 97:82, 107:93, 108:95, 122:112, 124:115, 128:119, 133:124, 142:134, 146:138, 147:139, 170:163, 181:175, 205:202, 226:223, \n", "...subset idx:oe real name: 16:127, 24:BASE, 27:5, 31:10, 36:15, 44:23, 50:29, 59:42, 61:44, 70:53, 77:60, 97:82, 107:93, 108:95, 122:112, 124:115, 128:119, 133:124, 142:134, 146:138, 147:139, 170:163, 181:175, 205:202, 226:223, \n", " running model 225 times\n", " starting at 09/30/25 16:40:06\n", " 8 agents ready\n", "\n", "\n", "PANTHER progress\n", " avg = average model run time in minutes\n", " runs(C = completed | F = failed | T = timed out)\n", " agents(R = running | W = waiting | U = unavailable)\n", "--------------------------------------------------------------------------------\n", "09/30 16:40:13 remaining file transfers: 0 \n", "\n", " 225 runs complete : 0 runs failed\n", " 0.00346 avg run time (min) : 0.119 run mgr time (min)\n", " 8 agents connected\n", "\n", "\n", "\n", " --- evaluating upgrade ensembles --- \n", "...last mean: 2.60373e+11\n", "...last stdev: 2.50258e+07\n", "\n", " --- phi summary for best lambda, scale fac: 7.5e+08 , 1.1 , --- \n", " phi type mean std min max\n", " actual 2.60379e+11 2.53203e+07 2.60353e+11 2.60452e+11\n", "\n", " --- running remaining realizations for best lambda, scale:7.5e+08 , 1.1 , --- \n", " running model 226 times\n", " starting at 09/30/25 16:40:13\n", " 8 agents ready\n", "\n", "\n", "PANTHER progress\n", " avg = average model run time in minutes\n", " runs(C = completed | F = failed | T = timed out)\n", " agents(R = running | W = waiting | U = unavailable)\n", "--------------------------------------------------------------------------------\n", "09/30 16:40:20 remaining file transfers: 0 \n", "\n", " 226 runs complete : 0 runs failed\n", " 0.00348 avg run time (min) : 0.118 run mgr time (min)\n", " 8 agents connected\n", "\n", "\n", "...phi summary for entire ensemble using lambda,scale_fac 7.5e+08 , 1.1 , \n", " phi type mean std min max\n", " actual 2.60372e+11 2.3742e+07 2.60352e+11 2.60491e+11\n", "...last best mean phi * acceptable phi factor: 2.73392e+11\n", "...current best mean phi: 2.60372e+11\n", "\n", " --- updating parameter ensemble --- \n", "\n", " --- updating lambda to 5.625e+08 --- \n", "\n", " --- EnsembleMethod iteration 2 report --- \n", " number of active realizations: 251\n", " number of model runs: 1153\n", " current obs ensemble saved to pest.2.obs.csv\n", " current par ensemble saved to pest.2.par.csv\n", "saved par and rei files for realization BASE for iteration 2\n", "saved par and rei files for realization BASE\n", " phi type mean std min max\n", " actual 2.60372e+11 2.3742e+07 2.60352e+11 2.60491e+11\n", " --- observation group phi summary --- \n", " (computed using 'actual' phi)\n", " (sorted by mean phi)\n", "group count nconflict mean std min max percent std\n", "oname:simulation.csv_otype:lst_usecol:observations 101 101 2.6e+11 2.37e+07 2.6e+11 2.6e+11 100 3.06e-14\n", " Note: 'percent' is the percentage of the actual phi for each realization.\n", "\n", "\n", " --- parameter group change summmary --- \n", "group count mean chg std chg n at ubnd % at ubnd n at lbnd % at lbnd n std decr\n", "optimal 2 6.142 99.89 0 0 0 0 2\n", " Note: parameter change summary sorted according to percent at bounds.\n", " Note: the parameter change statistics implicitly include the effect of \n", " realizations that have failed or have been dropped.\n", " Note: the 'n std decr' is the number of parameters with current\n", " std less 5% of their initial std.\n", "\n", "...saved parameter change summary to pest.2.pcs.csv\n", "\n", " --- phi-based termination criteria check --- \n", "...phiredstp: 0.01\n", "...nphistp: 3\n", "...nphinored (also used for consecutive bad lambda cycles): 3\n", "...best mean phi sequence: 1.60372e+14 , 2.60373e+11 , 2.60372e+11 , \n", "...best phi yet: 2.60372e+11\n", "...number of consecutive bad lambda testing cycles: 0\n", "...number of iterations satisfying phiredstp criteria: 1\n", "...number of iterations since best yet mean phi: 0\n", "\n", " --- starting solve for iteration: 3 --- \n", "...current lambda: 5.625e+08\n", "...starting calcs for glm factor 5.625e+07\n", "...finished calcs for: 5.625e+07\n", "...starting calcs for glm factor 5.625e+08\n", "...finished calcs for: 5.625e+08\n", "...starting calcs for glm factor 5.625e+09\n", "...finished calcs for: 5.625e+09\n", "\n", " --- running upgrade ensembles --- \n", "...subset idx:pe real name: 1:BASE, 14:112, 16:119, 28:9, 35:86, 54:12, 67:27, 68:28, 77:43, 78:45, 81:48, 89:57, 130:108, 135:117, 161:150, 174:164, 182:172, 185:177, 188:181, 193:186, 204:198, 211:207, 233:231, 236:234, 241:239, \n", "...subset idx:oe real name: 1:BASE, 14:112, 16:119, 28:9, 35:86, 54:12, 67:27, 68:28, 77:43, 78:45, 81:48, 89:57, 130:108, 135:117, 161:150, 174:164, 182:172, 185:177, 188:181, 193:186, 204:198, 211:207, 233:231, 236:234, 241:239, \n", " running model 225 times\n", " starting at 09/30/25 16:40:20\n", " 8 agents ready\n", "\n", "\n", "PANTHER progress\n", " avg = average model run time in minutes\n", " runs(C = completed | F = failed | T = timed out)\n", " agents(R = running | W = waiting | U = unavailable)\n", "--------------------------------------------------------------------------------\n", "09/30 16:40:29 remaining file transfers: 0 \n", "\n", " 225 runs complete : 0 runs failed\n", " 0.00349 avg run time (min) : 0.146 run mgr time (min)\n", " 8 agents connected\n", "\n", "\n", "\n", " --- evaluating upgrade ensembles --- \n", "...last mean: 2.60372e+11\n", "...last stdev: 2.3742e+07\n", "\n", " --- phi summary for best lambda, scale fac: 5.625e+07 , 1.1 , --- \n", " phi type mean std min max\n", " actual 2.60363e+11 9.37113e+06 2.60352e+11 2.60391e+11\n", "\n", " --- running remaining realizations for best lambda, scale:5.625e+07 , 1.1 , --- \n", " running model 226 times\n", " starting at 09/30/25 16:40:29\n", " 8 agents ready\n", "\n", "\n", "PANTHER progress\n", " avg = average model run time in minutes\n", " runs(C = completed | F = failed | T = timed out)\n", " agents(R = running | W = waiting | U = unavailable)\n", "--------------------------------------------------------------------------------\n", "09/30 16:40:36 remaining file transfers: 0 \n", "\n", " 226 runs complete : 0 runs failed\n", " 0.00347 avg run time (min) : 0.118 run mgr time (min)\n", " 8 agents connected\n", "\n", "\n", "...phi summary for entire ensemble using lambda,scale_fac 5.625e+07 , 1.1 , \n", " phi type mean std min max\n", " actual 2.60363e+11 1.30818e+07 2.60352e+11 2.60429e+11\n", "...last best mean phi * acceptable phi factor: 2.73391e+11\n", "...current best mean phi: 2.60363e+11\n", "\n", " --- updating parameter ensemble --- \n", "\n", " --- updating lambda to 4.21875e+07 --- \n", "\n", " --- EnsembleMethod iteration 3 report --- \n", " number of active realizations: 251\n", " number of model runs: 1604\n", " current obs ensemble saved to pest.3.obs.csv\n", " current par ensemble saved to pest.3.par.csv\n", "saved par and rei files for realization BASE for iteration 3\n", "saved par and rei files for realization BASE\n", " phi type mean std min max\n", " actual 2.60363e+11 1.30818e+07 2.60352e+11 2.60429e+11\n", " --- observation group phi summary --- \n", " (computed using 'actual' phi)\n", " (sorted by mean phi)\n", "group count nconflict mean std min max percent std\n", "oname:simulation.csv_otype:lst_usecol:observations 101 101 2.6e+11 1.31e+07 2.6e+11 2.6e+11 100 3.29e-14\n", " Note: 'percent' is the percentage of the actual phi for each realization.\n", "\n", "\n", " --- parameter group change summmary --- \n", "group count mean chg std chg n at ubnd % at ubnd n at lbnd % at lbnd n std decr\n", "optimal 2 6.149 99.92 0 0 0 0 2\n", " Note: parameter change summary sorted according to percent at bounds.\n", " Note: the parameter change statistics implicitly include the effect of \n", " realizations that have failed or have been dropped.\n", " Note: the 'n std decr' is the number of parameters with current\n", " std less 5% of their initial std.\n", "\n", "...saved parameter change summary to pest.3.pcs.csv\n", "\n", " --- phi-based termination criteria check --- \n", "...phiredstp: 0.01\n", "...nphistp: 3\n", "...nphinored (also used for consecutive bad lambda cycles): 3\n", "...best mean phi sequence: 1.60372e+14 , 2.60373e+11 , 2.60372e+11 , 2.60363e+11 , \n", "...best phi yet: 2.60363e+11\n", "...number of consecutive bad lambda testing cycles: 0\n", "...number of iterations satisfying phiredstp criteria: 1\n", "...number of iterations since best yet mean phi: 0\n", "\n", " --- starting solve for iteration: 4 --- \n", "...current lambda: 4.21875e+07\n", "...starting calcs for glm factor 4.21875e+06\n", "...finished calcs for: 4.21875e+06\n", "...starting calcs for glm factor 4.21875e+07\n", "...finished calcs for: 4.21875e+07\n", "...starting calcs for glm factor 4.21875e+08\n", "...finished calcs for: 4.21875e+08\n", "\n", " --- running upgrade ensembles --- \n", "...subset idx:pe real name: 0:BASE, 17:177, 29:23, 33:53, 50:30, 56:94, 59:109, 60:113, 66:230, 68:2, 77:17, 79:19, 90:38, 92:40, 96:49, 125:84, 149:121, 169:146, 197:184, 200:188, 224:217, 228:221, 241:238, 242:240, 250:249, \n", "...subset idx:oe real name: 0:BASE, 17:177, 29:23, 33:53, 50:30, 56:94, 59:109, 60:113, 66:230, 68:2, 77:17, 79:19, 90:38, 92:40, 96:49, 125:84, 149:121, 169:146, 197:184, 200:188, 224:217, 228:221, 241:238, 242:240, 250:249, \n", " running model 225 times\n", " starting at 09/30/25 16:40:36\n", " 8 agents ready\n", "\n", "\n", "PANTHER progress\n", " avg = average model run time in minutes\n", " runs(C = completed | F = failed | T = timed out)\n", " agents(R = running | W = waiting | U = unavailable)\n", "--------------------------------------------------------------------------------\n", "09/30 16:40:43 remaining file transfers: 0 \n", "\n", " 225 runs complete : 0 runs failed\n", " 0.00346 avg run time (min) : 0.12 run mgr time (min)\n", " 8 agents connected\n", "\n", "\n", "\n", " --- evaluating upgrade ensembles --- \n", "...last mean: 2.60363e+11\n", "...last stdev: 1.30818e+07\n", "\n", " --- phi summary for best lambda, scale fac: 4.21875e+06 , 1.1 , --- \n", " phi type mean std min max\n", " actual 2.60353e+11 1.07579e+06 2.60352e+11 2.60356e+11\n", "\n", " --- running remaining realizations for best lambda, scale:4.21875e+06 , 1.1 , --- \n", " running model 226 times\n", " starting at 09/30/25 16:40:43\n", " 8 agents ready\n", "\n", "\n", "PANTHER progress\n", " avg = average model run time in minutes\n", " runs(C = completed | F = failed | T = timed out)\n", " agents(R = running | W = waiting | U = unavailable)\n", "--------------------------------------------------------------------------------\n", "09/30 16:40:50 remaining file transfers: 0 \n", "\n", " 226 runs complete : 0 runs failed\n", " 0.00348 avg run time (min) : 0.118 run mgr time (min)\n", " 8 agents connected\n", "\n", "\n", "...phi summary for entire ensemble using lambda,scale_fac 4.21875e+06 , 1.1 , \n", " phi type mean std min max\n", " actual 2.60353e+11 1.00684e+06 2.60352e+11 2.60357e+11\n", "...last best mean phi * acceptable phi factor: 2.73382e+11\n", "...current best mean phi: 2.60353e+11\n", "\n", " --- updating parameter ensemble --- \n", "\n", " --- updating lambda to 3.16406e+06 --- \n", "\n", " --- EnsembleMethod iteration 4 report --- \n", " number of active realizations: 251\n", " number of model runs: 2055\n", " current obs ensemble saved to pest.4.obs.csv\n", " current par ensemble saved to pest.4.par.csv\n", "saved par and rei files for realization BASE for iteration 4\n", "saved par and rei files for realization BASE\n", " phi type mean std min max\n", " actual 2.60353e+11 1.00684e+06 2.60352e+11 2.60357e+11\n", " --- observation group phi summary --- \n", " (computed using 'actual' phi)\n", " (sorted by mean phi)\n", "group count nconflict mean std min max percent std\n", "oname:simulation.csv_otype:lst_usecol:observations 101 101 2.6e+11 1.01e+06 2.6e+11 2.6e+11 100 2.99e-14\n", " Note: 'percent' is the percentage of the actual phi for each realization.\n", "\n", "\n", " --- parameter group change summmary --- \n", "group count mean chg std chg n at ubnd % at ubnd n at lbnd % at lbnd n std decr\n", "optimal 2 6.164 99.98 0 0 0 0 2\n", " Note: parameter change summary sorted according to percent at bounds.\n", " Note: the parameter change statistics implicitly include the effect of \n", " realizations that have failed or have been dropped.\n", " Note: the 'n std decr' is the number of parameters with current\n", " std less 5% of their initial std.\n", "\n", "...saved parameter change summary to pest.4.pcs.csv\n", "\n", " --- phi-based termination criteria check --- \n", "...phiredstp: 0.01\n", "...nphistp: 3\n", "...nphinored (also used for consecutive bad lambda cycles): 3\n", "...best mean phi sequence: 1.60372e+14 , 2.60373e+11 , 2.60372e+11 , 2.60363e+11 , 2.60353e+11 , \n", "...best phi yet: 2.60353e+11\n", "...number of consecutive bad lambda testing cycles: 0\n", "...number of iterations satisfying phiredstp criteria: 1\n", "...number of iterations since best yet mean phi: 0\n", "\n", " --- starting solve for iteration: 5 --- \n", "...current lambda: 3.16406e+06\n", "...starting calcs for glm factor 316406\n", "...finished calcs for: 316406\n", "...starting calcs for glm factor 3.16406e+06\n", "...finished calcs for: 3.16406e+06\n", "...starting calcs for glm factor 3.16406e+07\n", "...finished calcs for: 3.16406e+07\n", "\n", " --- running upgrade ensembles --- \n", "...subset idx:pe real name: 0:BASE, 11:19, 14:49, 25:112, 28:86, 36:108, 44:207, 76:97, 100:34, 101:35, 108:51, 129:77, 143:98, 145:100, 150:106, 154:114, 157:120, 158:122, 186:158, 199:176, 204:185, 208:191, 210:193, 221:209, 224:212, \n", "...subset idx:oe real name: 0:BASE, 11:19, 14:49, 25:112, 28:86, 36:108, 44:207, 76:97, 100:34, 101:35, 108:51, 129:77, 143:98, 145:100, 150:106, 154:114, 157:120, 158:122, 186:158, 199:176, 204:185, 208:191, 210:193, 221:209, 224:212, \n", " running model 225 times\n", " starting at 09/30/25 16:40:50\n", " 8 agents ready\n", "\n", "\n", "PANTHER progress\n", " avg = average model run time in minutes\n", " runs(C = completed | F = failed | T = timed out)\n", " agents(R = running | W = waiting | U = unavailable)\n", "--------------------------------------------------------------------------------\n", "09/30 16:40:57 remaining file transfers: 0 \n", "\n", " 225 runs complete : 0 runs failed\n", " 0.00347 avg run time (min) : 0.12 run mgr time (min)\n", " 8 agents connected\n", "\n", "\n", "\n", " --- evaluating upgrade ensembles --- \n", "...last mean: 2.60353e+11\n", "...last stdev: 1.00684e+06\n", "\n", " --- phi summary for best lambda, scale fac: 316406 , 1.1 , --- \n", " phi type mean std min max\n", " actual 2.60352e+11 110873 2.60352e+11 2.60352e+11\n", "\n", " --- running remaining realizations for best lambda, scale:316406 , 1.1 , --- \n", " running model 226 times\n", " starting at 09/30/25 16:40:57\n", " 8 agents ready\n", "\n", "\n", "PANTHER progress\n", " avg = average model run time in minutes\n", " runs(C = completed | F = failed | T = timed out)\n", " agents(R = running | W = waiting | U = unavailable)\n", "--------------------------------------------------------------------------------\n", "09/30 16:41:06 remaining file transfers: 0 \n", "\n", " 226 runs complete : 0 runs failed\n", " 0.00346 avg run time (min) : 0.145 run mgr time (min)\n", " 8 agents connected\n", "\n", "\n", "...phi summary for entire ensemble using lambda,scale_fac 316406 , 1.1 , \n", " phi type mean std min max\n", " actual 2.60352e+11 99274.5 2.60352e+11 2.60353e+11\n", "...last best mean phi * acceptable phi factor: 2.73371e+11\n", "...current best mean phi: 2.60352e+11\n", "\n", " --- updating parameter ensemble --- \n", "\n", " --- updating lambda to 237305 --- \n", "\n", " --- EnsembleMethod iteration 5 report --- \n", " number of active realizations: 251\n", " number of model runs: 2506\n", " current obs ensemble saved to pest.5.obs.csv\n", " current par ensemble saved to pest.5.par.csv\n", "saved par and rei files for realization BASE for iteration 5\n", "saved par and rei files for realization BASE\n", " phi type mean std min max\n", " actual 2.60352e+11 99274.5 2.60352e+11 2.60353e+11\n", " --- observation group phi summary --- \n", " (computed using 'actual' phi)\n", " (sorted by mean phi)\n", "group count nconflict mean std min max percent std\n", "oname:simulation.csv_otype:lst_usecol:observations 101 101 2.6e+11 9.93e+04 2.6e+11 2.6e+11 100 3.15e-14\n", " Note: 'percent' is the percentage of the actual phi for each realization.\n", "\n", "\n", " --- parameter group change summmary --- \n", "group count mean chg std chg n at ubnd % at ubnd n at lbnd % at lbnd n std decr\n", "optimal 2 6.167 99.99 0 0 0 0 2\n", " Note: parameter change summary sorted according to percent at bounds.\n", " Note: the parameter change statistics implicitly include the effect of \n", " realizations that have failed or have been dropped.\n", " Note: the 'n std decr' is the number of parameters with current\n", " std less 5% of their initial std.\n", "\n", "...saved parameter change summary to pest.5.pcs.csv\n", "\n", " --- phi-based termination criteria check --- \n", "...phiredstp: 0.01\n", "...nphistp: 3\n", "...nphinored (also used for consecutive bad lambda cycles): 3\n", "...best mean phi sequence: 1.60372e+14 , 2.60373e+11 , 2.60372e+11 , 2.60363e+11 , 2.60353e+11 , 2.60352e+11 , \n", "...best phi yet: 2.60352e+11\n", "...number of consecutive bad lambda testing cycles: 0\n", "...number of iterations satisfying phiredstp criteria: 1\n", "...number of iterations since best yet mean phi: 0\n", "\n", " --- starting solve for iteration: 6 --- \n", "...current lambda: 237305\n", "...starting calcs for glm factor 23730.5\n", "...finished calcs for: 23730.5\n", "...starting calcs for glm factor 237305\n", "...finished calcs for: 237305\n", "...starting calcs for glm factor 2.37305e+06\n", "...finished calcs for: 2.37305e+06\n", "\n", " --- running upgrade ensembles --- \n", "...subset idx:pe real name: 0:BASE, 23:209, 31:113, 36:40, 43:221, 46:249, 78:124, 80:138, 86:0, 99:201, 119:41, 121:47, 139:72, 157:102, 176:136, 182:144, 194:160, 198:166, 204:173, 209:187, 213:194, 226:214, 228:216, 233:224, 235:226, \n", "...subset idx:oe real name: 0:BASE, 23:209, 31:113, 36:40, 43:221, 46:249, 78:124, 80:138, 86:0, 99:201, 119:41, 121:47, 139:72, 157:102, 176:136, 182:144, 194:160, 198:166, 204:173, 209:187, 213:194, 226:214, 228:216, 233:224, 235:226, \n", " running model 225 times\n", " starting at 09/30/25 16:41:06\n", " 8 agents ready\n", "\n", "\n", "PANTHER progress\n", " avg = average model run time in minutes\n", " runs(C = completed | F = failed | T = timed out)\n", " agents(R = running | W = waiting | U = unavailable)\n", "--------------------------------------------------------------------------------\n", "09/30 16:41:13 remaining file transfers: 0 \n", "\n", " 225 runs complete : 0 runs failed\n", " 0.00348 avg run time (min) : 0.119 run mgr time (min)\n", " 8 agents connected\n", "\n", "\n", "\n", " --- evaluating upgrade ensembles --- \n", "...last mean: 2.60352e+11\n", "...last stdev: 99274.5\n", "\n", " --- phi summary for best lambda, scale fac: 23730.5 , 1.1 , --- \n", " phi type mean std min max\n", " actual 2.60352e+11 6810.84 2.60352e+11 2.60352e+11\n", "\n", " --- running remaining realizations for best lambda, scale:23730.5 , 1.1 , --- \n", " running model 226 times\n", " starting at 09/30/25 16:41:13\n", " 8 agents ready\n", "\n", "\n", "PANTHER progress\n", " avg = average model run time in minutes\n", " runs(C = completed | F = failed | T = timed out)\n", " agents(R = running | W = waiting | U = unavailable)\n", "--------------------------------------------------------------------------------\n", "09/30 16:41:20 remaining file transfers: 0 \n", "\n", " 226 runs complete : 0 runs failed\n", " 0.00346 avg run time (min) : 0.118 run mgr time (min)\n", " 8 agents connected\n", "\n", "\n", "...phi summary for entire ensemble using lambda,scale_fac 23730.5 , 1.1 , \n", " phi type mean std min max\n", " actual 2.60352e+11 6011.41 2.60352e+11 2.60352e+11\n", "...last best mean phi * acceptable phi factor: 2.7337e+11\n", "...current best mean phi: 2.60352e+11\n", "\n", " --- updating parameter ensemble --- \n", "\n", " --- updating lambda to 17797.9 --- \n", "\n", " --- EnsembleMethod iteration 6 report --- \n", " number of active realizations: 251\n", " number of model runs: 2957\n", " current obs ensemble saved to pest.6.obs.csv\n", " current par ensemble saved to pest.6.par.csv\n", "saved par and rei files for realization BASE for iteration 6\n", "saved par and rei files for realization BASE\n", " phi type mean std min max\n", " actual 2.60352e+11 6011.41 2.60352e+11 2.60352e+11\n", " --- observation group phi summary --- \n", " (computed using 'actual' phi)\n", " (sorted by mean phi)\n", "group count nconflict mean std min max percent std\n", "oname:simulation.csv_otype:lst_usecol:observations 101 101 2.6e+11 6.01e+03 2.6e+11 2.6e+11 100 3.01e-14\n", " Note: 'percent' is the percentage of the actual phi for each realization.\n", "\n", "\n", " --- parameter group change summmary --- \n", "group count mean chg std chg n at ubnd % at ubnd n at lbnd % at lbnd n std decr\n", "optimal 2 6.168 100 0 0 0 0 2\n", " Note: parameter change summary sorted according to percent at bounds.\n", " Note: the parameter change statistics implicitly include the effect of \n", " realizations that have failed or have been dropped.\n", " Note: the 'n std decr' is the number of parameters with current\n", " std less 5% of their initial std.\n", "\n", "...saved parameter change summary to pest.6.pcs.csv\n", "\n", " --- phi-based termination criteria check --- \n", "...phiredstp: 0.01\n", "...nphistp: 3\n", "...nphinored (also used for consecutive bad lambda cycles): 3\n", "...best mean phi sequence: 1.60372e+14 , 2.60373e+11 , 2.60372e+11 , 2.60363e+11 , 2.60353e+11 , 2.60352e+11 , 2.60352e+11 , \n", " \n", "...best phi yet: 2.60352e+11\n", "...number of consecutive bad lambda testing cycles: 0\n", "...number of iterations satisfying phiredstp criteria: 1\n", "...number of iterations since best yet mean phi: 0\n", "\n", " --- starting solve for iteration: 7 --- \n", "...current lambda: 17797.9\n", "...starting calcs for glm factor 1779.79\n", "...finished calcs for: 1779.79\n", "...starting calcs for glm factor 17797.9\n", "...finished calcs for: 17797.9\n", "...starting calcs for glm factor 177979\n", "...finished calcs for: 177979\n", "\n", " --- running upgrade ensembles --- \n", "...subset idx:pe real name: 0:BASE, 8:0, 29:108, 30:207, 42:158, 53:109, 67:9, 77:164, 78:172, 82:231, 94:93, 107:36, 111:148, 117:6, 132:37, 143:62, 151:71, 159:83, 165:91, 167:96, 199:155, 217:192, 237:228, 247:244, 248:245, \n", "...subset idx:oe real name: 0:BASE, 8:0, 29:108, 30:207, 42:158, 53:109, 67:9, 77:164, 78:172, 82:231, 94:93, 107:36, 111:148, 117:6, 132:37, 143:62, 151:71, 159:83, 165:91, 167:96, 199:155, 217:192, 237:228, 247:244, 248:245, \n", " running model 225 times\n", " starting at 09/30/25 16:41:21\n", " 8 agents ready\n", "\n", "\n", "PANTHER progress\n", " avg = average model run time in minutes\n", " runs(C = completed | F = failed | T = timed out)\n", " agents(R = running | W = waiting | U = unavailable)\n", "--------------------------------------------------------------------------------\n", "09/30 16:41:28 remaining file transfers: 0 \n", "\n", " 225 runs complete : 0 runs failed\n", " 0.00347 avg run time (min) : 0.119 run mgr time (min)\n", " 8 agents connected\n", "\n", "\n", "\n", " --- evaluating upgrade ensembles --- \n", "...last mean: 2.60352e+11\n", "...last stdev: 6011.41\n", "\n", " --- phi summary for best lambda, scale fac: 1779.79 , 1.1 , --- \n", " phi type mean std min max\n", " actual 2.60352e+11 579.517 2.60352e+11 2.60352e+11\n", "\n", " --- running remaining realizations for best lambda, scale:1779.79 , 1.1 , --- \n", " running model 226 times\n", " starting at 09/30/25 16:41:28\n", " 8 agents ready\n", "\n", "\n", "PANTHER progress\n", " avg = average model run time in minutes\n", " runs(C = completed | F = failed | T = timed out)\n", " agents(R = running | W = waiting | U = unavailable)\n", "--------------------------------------------------------------------------------\n", "09/30 16:41:36 remaining file transfers: 0 \n", "\n", " 226 runs complete : 0 runs failed\n", " 0.00348 avg run time (min) : 0.144 run mgr time (min)\n", " 8 agents connected\n", "\n", "\n", "...phi summary for entire ensemble using lambda,scale_fac 1779.79 , 1.1 , \n", " phi type mean std min max\n", " actual 2.60352e+11 536.772 2.60352e+11 2.60352e+11\n", "...last best mean phi * acceptable phi factor: 2.7337e+11\n", "...current best mean phi: 2.60352e+11\n", "\n", " --- updating parameter ensemble --- \n", "\n", " --- updating lambda to 1334.84 --- \n", "\n", " --- EnsembleMethod iteration 7 report --- \n", " number of active realizations: 251\n", " number of model runs: 3408\n", " current obs ensemble saved to pest.7.obs.csv\n", " current par ensemble saved to pest.7.par.csv\n", "saved par and rei files for realization BASE for iteration 7\n", "saved par and rei files for realization BASE\n", " phi type mean std min max\n", " actual 2.60352e+11 536.772 2.60352e+11 2.60352e+11\n", " --- observation group phi summary --- \n", " (computed using 'actual' phi)\n", " (sorted by mean phi)\n", "group count nconflict mean std min max percent std\n", "oname:simulation.csv_otype:lst_usecol:observations 101 101 2.6e+11 537 2.6e+11 2.6e+11 100 3.19e-14\n", " Note: 'percent' is the percentage of the actual phi for each realization.\n", "\n", "\n", " --- parameter group change summmary --- \n", "group count mean chg std chg n at ubnd % at ubnd n at lbnd % at lbnd n std decr\n", "optimal 2 6.169 100 0 0 0 0 2\n", " Note: parameter change summary sorted according to percent at bounds.\n", " Note: the parameter change statistics implicitly include the effect of \n", " realizations that have failed or have been dropped.\n", " Note: the 'n std decr' is the number of parameters with current\n", " std less 5% of their initial std.\n", "\n", "...saved parameter change summary to pest.7.pcs.csv\n", "\n", " --- phi-based termination criteria check --- \n", "...phiredstp: 0.01\n", "...nphistp: 3\n", "...nphinored (also used for consecutive bad lambda cycles): 3\n", "...best mean phi sequence: 1.60372e+14 , 2.60373e+11 , 2.60372e+11 , 2.60363e+11 , 2.60353e+11 , 2.60352e+11 , 2.60352e+11 , \n", " 2.60352e+11 , \n", "...best phi yet: 2.60352e+11\n", "...number of consecutive bad lambda testing cycles: 0\n", "...number of iterations satisfying phiredstp criteria: 1\n", "...number of iterations since best yet mean phi: 0\n", "\n", " --- starting solve for iteration: 8 --- \n", "...current lambda: 1334.84\n", "...starting calcs for glm factor 133.484\n", "...finished calcs for: 133.484\n", "...starting calcs for glm factor 1334.84\n", "...finished calcs for: 1334.84\n", "...starting calcs for glm factor 13348.4\n", "...finished calcs for: 13348.4\n", "\n", " --- running upgrade ensembles --- \n", "...subset idx:pe real name: 0:BASE, 4:158, 18:91, 29:249, 34:47, 59:106, 62:122, 86:12, 92:57, 98:234, 111:134, 136:20, 145:50, 165:80, 177:107, 180:116, 184:126, 199:149, 216:180, 217:182, 229:208, 232:213, 236:220, 238:225, 243:235, \n", "...subset idx:oe real name: 0:BASE, 4:158, 18:91, 29:249, 34:47, 59:106, 62:122, 86:12, 92:57, 98:234, 111:134, 136:20, 145:50, 165:80, 177:107, 180:116, 184:126, 199:149, 216:180, 217:182, 229:208, 232:213, 236:220, 238:225, 243:235, \n", " running model 225 times\n", " starting at 09/30/25 16:41:36\n", " 8 agents ready\n", "\n", "\n", "PANTHER progress\n", " avg = average model run time in minutes\n", " runs(C = completed | F = failed | T = timed out)\n", " agents(R = running | W = waiting | U = unavailable)\n", "--------------------------------------------------------------------------------\n", "09/30 16:41:44 remaining file transfers: 0 \n", "\n", " 225 runs complete : 0 runs failed\n", " 0.00348 avg run time (min) : 0.119 run mgr time (min)\n", " 8 agents connected\n", "\n", "\n", "\n", " --- evaluating upgrade ensembles --- \n", "...last mean: 2.60352e+11\n", "...last stdev: 536.772\n", "\n", " --- phi summary for best lambda, scale fac: 133.484 , 1.1 , --- \n", " phi type mean std min max\n", " actual 2.60352e+11 39.2988 2.60352e+11 2.60352e+11\n", "\n", " --- running remaining realizations for best lambda, scale:133.484 , 1.1 , --- \n", " running model 226 times\n", " starting at 09/30/25 16:41:44\n", " 8 agents ready\n", "\n", "\n", "PANTHER progress\n", " avg = average model run time in minutes\n", " runs(C = completed | F = failed | T = timed out)\n", " agents(R = running | W = waiting | U = unavailable)\n", "--------------------------------------------------------------------------------\n", "09/30 16:41:51 remaining file transfers: 0 \n", "\n", " 226 runs complete : 0 runs failed\n", " 0.00348 avg run time (min) : 0.118 run mgr time (min)\n", " 8 agents connected\n", "\n", "\n", "...phi summary for entire ensemble using lambda,scale_fac 133.484 , 1.1 , \n", " phi type mean std min max\n", " actual 2.60352e+11 35.5282 2.60352e+11 2.60352e+11\n", "...last best mean phi * acceptable phi factor: 2.7337e+11\n", "...current best mean phi: 2.60352e+11\n", "\n", " --- updating parameter ensemble --- \n", "\n", " --- updating lambda to 100.113 --- \n", "\n", " --- EnsembleMethod iteration 8 report --- \n", " number of active realizations: 251\n", " number of model runs: 3859\n", " current obs ensemble saved to pest.8.obs.csv\n", " current par ensemble saved to pest.8.par.csv\n", "saved par and rei files for realization BASE for iteration 8\n", "saved par and rei files for realization BASE\n", " phi type mean std min max\n", " actual 2.60352e+11 35.5282 2.60352e+11 2.60352e+11\n", " --- observation group phi summary --- \n", " (computed using 'actual' phi)\n", " (sorted by mean phi)\n", "group count nconflict mean std min max percent std\n", "oname:simulation.csv_otype:lst_usecol:observations 101 101 2.6e+11 35.5 2.6e+11 2.6e+11 100 2.94e-14\n", " Note: 'percent' is the percentage of the actual phi for each realization.\n", "\n", "\n", " --- parameter group change summmary --- \n", "group count mean chg std chg n at ubnd % at ubnd n at lbnd % at lbnd n std decr\n", "optimal 2 6.169 100 0 0 0 0 2\n", " Note: parameter change summary sorted according to percent at bounds.\n", " Note: the parameter change statistics implicitly include the effect of \n", " realizations that have failed or have been dropped.\n", " Note: the 'n std decr' is the number of parameters with current\n", " std less 5% of their initial std.\n", "\n", "...saved parameter change summary to pest.8.pcs.csv\n", "\n", " --- phi-based termination criteria check --- \n", "...phiredstp: 0.01\n", "...nphistp: 3\n", "...nphinored (also used for consecutive bad lambda cycles): 3\n", "...best mean phi sequence: 1.60372e+14 , 2.60373e+11 , 2.60372e+11 , 2.60363e+11 , 2.60353e+11 , 2.60352e+11 , 2.60352e+11 , \n", " 2.60352e+11 , 2.60352e+11 , \n", "...best phi yet: 2.60352e+11\n", "...number of consecutive bad lambda testing cycles: 0\n", "...number of iterations satisfying phiredstp criteria: 1\n", "...number of iterations since best yet mean phi: 0\n", "\n", " --- starting solve for iteration: 9 --- \n", "...current lambda: 100.113\n", "...starting calcs for glm factor 10.0113\n", "...finished calcs for: 10.0113\n", "...starting calcs for glm factor 100.113\n", "...finished calcs for: 100.113\n", "...starting calcs for glm factor 1001.13\n", "...finished calcs for: 1001.13\n", "\n", " --- running upgrade ensembles --- \n", "...subset idx:pe real name: 0:BASE, 22:220, 96:121, 110:150, 115:127, 117:10, 122:60, 133:32, 138:174, 142:4, 162:58, 168:67, 176:79, 179:87, 187:105, 191:123, 193:128, 197:132, 206:147, 207:151, 208:152, 217:167, 223:183, 231:204, 250:248, \n", "...subset idx:oe real name: 0:BASE, 22:220, 96:121, 110:150, 115:127, 117:10, 122:60, 133:32, 138:174, 142:4, 162:58, 168:67, 176:79, 179:87, 187:105, 191:123, 193:128, 197:132, 206:147, 207:151, 208:152, 217:167, 223:183, 231:204, 250:248, \n", " running model 225 times\n", " starting at 09/30/25 16:41:51\n", " 8 agents ready\n", "\n", "\n", "PANTHER progress\n", " avg = average model run time in minutes\n", " runs(C = completed | F = failed | T = timed out)\n", " agents(R = running | W = waiting | U = unavailable)\n", "--------------------------------------------------------------------------------\n", "09/30 16:41:58 remaining file transfers: 0 \n", "\n", " 225 runs complete : 0 runs failed\n", " 0.00348 avg run time (min) : 0.119 run mgr time (min)\n", " 8 agents connected\n", "\n", "\n", "\n", " --- evaluating upgrade ensembles --- \n", "...last mean: 2.60352e+11\n", "...last stdev: 35.5282\n", "\n", " --- phi summary for best lambda, scale fac: 10.0113 , 1.1 , --- \n", " phi type mean std min max\n", " actual 2.60352e+11 2.4438 2.60352e+11 2.60352e+11\n", "\n", " --- running remaining realizations for best lambda, scale:10.0113 , 1.1 , --- \n", " running model 226 times\n", " starting at 09/30/25 16:41:58\n", " 8 agents ready\n", "\n", "\n", "PANTHER progress\n", " avg = average model run time in minutes\n", " runs(C = completed | F = failed | T = timed out)\n", " agents(R = running | W = waiting | U = unavailable)\n", "--------------------------------------------------------------------------------\n", "09/30 16:42:05 remaining file transfers: 0 \n", "\n", " 226 runs complete : 0 runs failed\n", " 0.00347 avg run time (min) : 0.118 run mgr time (min)\n", " 8 agents connected\n", "\n", "\n", "...phi summary for entire ensemble using lambda,scale_fac 10.0113 , 1.1 , \n", " phi type mean std min max\n", " actual 2.60352e+11 3.42205 2.60352e+11 2.60352e+11\n", "...last best mean phi * acceptable phi factor: 2.7337e+11\n", "...current best mean phi: 2.60352e+11\n", "\n", " --- updating parameter ensemble --- \n", "\n", " --- updating lambda to 7.50847 --- \n", "\n", " --- EnsembleMethod iteration 9 report --- \n", " number of active realizations: 251\n", " number of model runs: 4310\n", " current obs ensemble saved to pest.9.obs.csv\n", " current par ensemble saved to pest.9.par.csv\n", "saved par and rei files for realization BASE for iteration 9\n", "saved par and rei files for realization BASE\n", " phi type mean std min max\n", " actual 2.60352e+11 3.42205 2.60352e+11 2.60352e+11\n", " --- observation group phi summary --- \n", " (computed using 'actual' phi)\n", " (sorted by mean phi)\n", "group count nconflict mean std min max percent std\n", "oname:simulation.csv_otype:lst_usecol:observations 101 101 2.6e+11 3.42 2.6e+11 2.6e+11 100 3.26e-14\n", " Note: 'percent' is the percentage of the actual phi for each realization.\n", "\n", "\n", " --- parameter group change summmary --- \n", "group count mean chg std chg n at ubnd % at ubnd n at lbnd % at lbnd n std decr\n", "optimal 2 6.169 100 0 0 0 0 2\n", " Note: parameter change summary sorted according to percent at bounds.\n", " Note: the parameter change statistics implicitly include the effect of \n", " realizations that have failed or have been dropped.\n", " Note: the 'n std decr' is the number of parameters with current\n", " std less 5% of their initial std.\n", "\n", "...saved parameter change summary to pest.9.pcs.csv\n", "\n", " --- phi-based termination criteria check --- \n", "...phiredstp: 0.01\n", "...nphistp: 3\n", "...nphinored (also used for consecutive bad lambda cycles): 3\n", "...best mean phi sequence: 1.60372e+14 , 2.60373e+11 , 2.60372e+11 , 2.60363e+11 , 2.60353e+11 , 2.60352e+11 , 2.60352e+11 , \n", " 2.60352e+11 , 2.60352e+11 , 2.60352e+11 , \n", "...best phi yet: 2.60352e+11\n", "...number of consecutive bad lambda testing cycles: 0\n", "...number of iterations satisfying phiredstp criteria: 1\n", "...number of iterations since best yet mean phi: 0\n", "\n", " --- starting solve for iteration: 10 --- \n", "...current lambda: 7.50847\n", "...starting calcs for glm factor 0.750847\n", "...finished calcs for: 0.750847\n", "...starting calcs for glm factor 7.50847\n", "...finished calcs for: 7.50847\n", "...starting calcs for glm factor 75.0847\n", "...finished calcs for: 75.0847\n", "\n", " --- running upgrade ensembles --- \n", "...subset idx:pe real name: 0:BASE, 2:121, 32:57, 46:225, 48:0, 59:6, 68:244, 90:226, 96:34, 107:193, 125:119, 138:29, 168:25, 170:31, 178:61, 181:66, 183:69, 203:130, 211:143, 223:170, 228:195, 232:203, 236:211, 241:227, 250:246, \n", "...subset idx:oe real name: 0:BASE, 2:121, 32:57, 46:225, 48:0, 59:6, 68:244, 90:226, 96:34, 107:193, 125:119, 138:29, 168:25, 170:31, 178:61, 181:66, 183:69, 203:130, 211:143, 223:170, 228:195, 232:203, 236:211, 241:227, 250:246, \n", " running model 225 times\n", " starting at 09/30/25 16:42:05\n", " 8 agents ready\n", "\n", "\n", "PANTHER progress\n", " avg = average model run time in minutes\n", " runs(C = completed | F = failed | T = timed out)\n", " agents(R = running | W = waiting | U = unavailable)\n", "--------------------------------------------------------------------------------\n", "09/30 16:42:14 remaining file transfers: 0 \n", "\n", " 225 runs complete : 0 runs failed\n", " 0.00348 avg run time (min) : 0.147 run mgr time (min)\n", " 8 agents connected\n", "\n", "\n", "\n", " --- evaluating upgrade ensembles --- \n", "...last mean: 2.60352e+11\n", "...last stdev: 3.42205\n", "\n", " --- phi summary for best lambda, scale fac: 0.750847 , 1.1 , --- \n", " phi type mean std min max\n", " actual 2.60352e+11 0.622531 2.60352e+11 2.60352e+11\n", "\n", " --- running remaining realizations for best lambda, scale:0.750847 , 1.1 , --- \n", " running model 226 times\n", " starting at 09/30/25 16:42:14\n", " 8 agents ready\n", "\n", "\n", "PANTHER progress\n", " avg = average model run time in minutes\n", " runs(C = completed | F = failed | T = timed out)\n", " agents(R = running | W = waiting | U = unavailable)\n", "--------------------------------------------------------------------------------\n", "09/30 16:42:21 remaining file transfers: 0 \n", "\n", " 226 runs complete : 0 runs failed\n", " 0.00347 avg run time (min) : 0.118 run mgr time (min)\n", " 8 agents connected\n", "\n", "\n", "...phi summary for entire ensemble using lambda,scale_fac 0.750847 , 1.1 , \n", " phi type mean std min max\n", " actual 2.60352e+11 0.677837 2.60352e+11 2.60352e+11\n", "...last best mean phi * acceptable phi factor: 2.7337e+11\n", "...current best mean phi: 2.60352e+11\n", "\n", " --- updating parameter ensemble --- \n", "\n", " --- updating lambda to 0.563135 --- \n", "\n", " --- EnsembleMethod iteration 10 report --- \n", " number of active realizations: 251\n", " number of model runs: 4761\n", " current obs ensemble saved to pest.10.obs.csv\n", " current par ensemble saved to pest.10.par.csv\n", "saved par and rei files for realization BASE for iteration 10\n", "saved par and rei files for realization BASE\n", " phi type mean std min max\n", " actual 2.60352e+11 0.677837 2.60352e+11 2.60352e+11\n", " --- observation group phi summary --- \n", " (computed using 'actual' phi)\n", " (sorted by mean phi)\n", "group count nconflict mean std min max percent std\n", "oname:simulation.csv_otype:lst_usecol:observations 101 101 2.6e+11 0.678 2.6e+11 2.6e+11 100 3.15e-14\n", " Note: 'percent' is the percentage of the actual phi for each realization.\n", "\n", "\n", " --- parameter group change summmary --- \n", "group count mean chg std chg n at ubnd % at ubnd n at lbnd % at lbnd n std decr\n", "optimal 2 6.169 100 0 0 0 0 2\n", " Note: parameter change summary sorted according to percent at bounds.\n", " Note: the parameter change statistics implicitly include the effect of \n", " realizations that have failed or have been dropped.\n", " Note: the 'n std decr' is the number of parameters with current\n", " std less 5% of their initial std.\n", "\n", "...saved parameter change summary to pest.10.pcs.csv\n", "\n", " --- phi-based termination criteria check --- \n", "...phiredstp: 0.01\n", "...nphistp: 3\n", "...nphinored (also used for consecutive bad lambda cycles): 3\n", "...best mean phi sequence: 1.60372e+14 , 2.60373e+11 , 2.60372e+11 , 2.60363e+11 , 2.60353e+11 , 2.60352e+11 , 2.60352e+11 , \n", " 2.60352e+11 , 2.60352e+11 , 2.60352e+11 , 2.60352e+11 , \n", "...best phi yet: 2.60352e+11\n", "...number of consecutive bad lambda testing cycles: 0\n", "...number of iterations satisfying phiredstp criteria: 1\n", "...number of iterations since best yet mean phi: 0\n", "\n", " --- starting solve for iteration: 11 --- \n", "...current lambda: 0.563135\n", "...starting calcs for glm factor 0.0563135\n", "...finished calcs for: 0.0563135\n", "...starting calcs for glm factor 0.563135\n", "...finished calcs for: 0.563135\n", "...starting calcs for glm factor 5.63135\n", "...finished calcs for: 5.63135\n", "\n", " --- running upgrade ensembles --- \n", "...subset idx:pe real name: 0:BASE, 3:225, 30:32, 36:87, 44:167, 49:91, 71:109, 82:83, 90:40, 99:144, 113:35, 115:77, 116:98, 118:114, 129:230, 133:84, 140:27, 160:202, 194:75, 195:76, 201:90, 222:157, 226:165, 230:179, 233:197, \n", "...subset idx:oe real name: 0:BASE, 3:225, 30:32, 36:87, 44:167, 49:91, 71:109, 82:83, 90:40, 99:144, 113:35, 115:77, 116:98, 118:114, 129:230, 133:84, 140:27, 160:202, 194:75, 195:76, 201:90, 222:157, 226:165, 230:179, 233:197, \n", " running model 225 times\n", " starting at 09/30/25 16:42:21\n", " 8 agents ready\n", "\n", "\n", "PANTHER progress\n", " avg = average model run time in minutes\n", " runs(C = completed | F = failed | T = timed out)\n", " agents(R = running | W = waiting | U = unavailable)\n", "--------------------------------------------------------------------------------\n", "09/30 16:42:28 remaining file transfers: 0 \n", "\n", " 225 runs complete : 0 runs failed\n", " 0.00348 avg run time (min) : 0.119 run mgr time (min)\n", " 8 agents connected\n", "\n", "\n", "\n", " --- evaluating upgrade ensembles --- \n", "...last mean: 2.60352e+11\n", "...last stdev: 0.677837\n", "\n", " --- phi summary for best lambda, scale fac: 0.0563135 , 1.1 , --- \n", " phi type mean std min max\n", " actual 2.60352e+11 0.268336 2.60352e+11 2.60352e+11\n", "\n", " --- running remaining realizations for best lambda, scale:0.0563135 , 1.1 , --- \n", " running model 226 times\n", " starting at 09/30/25 16:42:28\n", " 8 agents ready\n", "\n", "\n", "PANTHER progress\n", " avg = average model run time in minutes\n", " runs(C = completed | F = failed | T = timed out)\n", " agents(R = running | W = waiting | U = unavailable)\n", "--------------------------------------------------------------------------------\n", "09/30 16:42:35 remaining file transfers: 0 \n", "\n", " 226 runs complete : 0 runs failed\n", " 0.00346 avg run time (min) : 0.118 run mgr time (min)\n", " 8 agents connected\n", "\n", "\n", "...phi summary for entire ensemble using lambda,scale_fac 0.0563135 , 1.1 , \n", " phi type mean std min max\n", " actual 2.60352e+11 0.355728 2.60352e+11 2.60352e+11\n", "...last best mean phi * acceptable phi factor: 2.7337e+11\n", "...current best mean phi: 2.60352e+11\n", "\n", " --- updating parameter ensemble --- \n", "\n", " --- updating lambda to 0.0422351 --- \n", "\n", " --- EnsembleMethod iteration 11 report --- \n", " number of active realizations: 251\n", " number of model runs: 5212\n", " current obs ensemble saved to pest.11.obs.csv\n", " current par ensemble saved to pest.11.par.csv\n", "saved par and rei files for realization BASE for iteration 11\n", "saved par and rei files for realization BASE\n", " phi type mean std min max\n", " actual 2.60352e+11 0.355728 2.60352e+11 2.60352e+11\n", " --- observation group phi summary --- \n", " (computed using 'actual' phi)\n", " (sorted by mean phi)\n", "group count nconflict mean std min max percent std\n", "oname:simulation.csv_otype:lst_usecol:observations 101 101 2.6e+11 0.356 2.6e+11 2.6e+11 100 3.16e-14\n", " Note: 'percent' is the percentage of the actual phi for each realization.\n", "\n", "\n", " --- parameter group change summmary --- \n", "group count mean chg std chg n at ubnd % at ubnd n at lbnd % at lbnd n std decr\n", "optimal 2 6.169 100 0 0 0 0 2\n", " Note: parameter change summary sorted according to percent at bounds.\n", " Note: the parameter change statistics implicitly include the effect of \n", " realizations that have failed or have been dropped.\n", " Note: the 'n std decr' is the number of parameters with current\n", " std less 5% of their initial std.\n", "\n", "...saved parameter change summary to pest.11.pcs.csv\n", "\n", " --- phi-based termination criteria check --- \n", "...phiredstp: 0.01\n", "...nphistp: 3\n", "...nphinored (also used for consecutive bad lambda cycles): 3\n", "...best mean phi sequence: 1.60372e+14 , 2.60373e+11 , 2.60372e+11 , 2.60363e+11 , 2.60353e+11 , 2.60352e+11 , 2.60352e+11 , \n", " 2.60352e+11 , 2.60352e+11 , 2.60352e+11 , 2.60352e+11 , 2.60352e+11 , \n", "...best phi yet: 2.60352e+11\n", "...number of consecutive bad lambda testing cycles: 0\n", "...number of iterations satisfying phiredstp criteria: 1\n", "...number of iterations since best yet mean phi: 0\n", "\n", " --- starting solve for iteration: 12 --- \n", "...current lambda: 0.0422351\n", "...starting calcs for glm factor 0.00422351\n", "...finished calcs for: 0.00422351\n", "...starting calcs for glm factor 0.0422351\n", "...finished calcs for: 0.0422351\n", "...starting calcs for glm factor 0.422351\n", "...finished calcs for: 0.422351\n", "\n", " --- running upgrade ensembles --- \n", "...subset idx:pe real name: 0:BASE, 14:230, 38:66, 62:147, 88:108, 92:172, 110:201, 131:176, 135:177, 139:94, 158:5, 173:73, 174:101, 179:8, 185:21, 196:63, 200:74, 202:81, 211:111, 212:118, 216:133, 232:189, 235:200, 242:222, 245:233, \n", "...subset idx:oe real name: 0:BASE, 14:230, 38:66, 62:147, 88:108, 92:172, 110:201, 131:176, 135:177, 139:94, 158:5, 173:73, 174:101, 179:8, 185:21, 196:63, 200:74, 202:81, 211:111, 212:118, 216:133, 232:189, 235:200, 242:222, 245:233, \n", " running model 225 times\n", " starting at 09/30/25 16:42:35\n", " 8 agents ready\n", "\n", "\n", "PANTHER progress\n", " avg = average model run time in minutes\n", " runs(C = completed | F = failed | T = timed out)\n", " agents(R = running | W = waiting | U = unavailable)\n", "--------------------------------------------------------------------------------\n", "09/30 16:42:44 remaining file transfers: 0 \n", "\n", " 225 runs complete : 0 runs failed\n", " 0.00348 avg run time (min) : 0.144 run mgr time (min)\n", " 8 agents connected\n", "\n", "\n", "\n", " --- evaluating upgrade ensembles --- \n", "...last mean: 2.60352e+11\n", "...last stdev: 0.355728\n", "\n", " --- phi summary for best lambda, scale fac: 0.00422351 , 1.1 , --- \n", " phi type mean std min max\n", " actual 2.60352e+11 0.144836 2.60352e+11 2.60352e+11\n", "\n", " --- running remaining realizations for best lambda, scale:0.00422351 , 1.1 , --- \n", " running model 226 times\n", " starting at 09/30/25 16:42:44\n", " 8 agents ready\n", "\n", "\n", "PANTHER progress\n", " avg = average model run time in minutes\n", " runs(C = completed | F = failed | T = timed out)\n", " agents(R = running | W = waiting | U = unavailable)\n", "--------------------------------------------------------------------------------\n", "09/30 16:42:51 remaining file transfers: 0 \n", "\n", " 226 runs complete : 0 runs failed\n", " 0.00348 avg run time (min) : 0.118 run mgr time (min)\n", " 8 agents connected\n", "\n", "\n", "...phi summary for entire ensemble using lambda,scale_fac 0.00422351 , 1.1 , \n", " phi type mean std min max\n", " actual 2.60352e+11 0.244283 2.60352e+11 2.60352e+11\n", "...last best mean phi * acceptable phi factor: 2.7337e+11\n", "...current best mean phi: 2.60352e+11\n", "\n", " --- updating parameter ensemble --- \n", "\n", " --- updating lambda to 0.00316764 --- \n", "\n", " --- EnsembleMethod iteration 12 report --- \n", " number of active realizations: 251\n", " number of model runs: 5663\n", " current obs ensemble saved to pest.12.obs.csv\n", " current par ensemble saved to pest.12.par.csv\n", "saved par and rei files for realization BASE for iteration 12\n", "saved par and rei files for realization BASE\n", " phi type mean std min max\n", " actual 2.60352e+11 0.244283 2.60352e+11 2.60352e+11\n", " --- observation group phi summary --- \n", " (computed using 'actual' phi)\n", " (sorted by mean phi)\n", "group count nconflict mean std min max percent std\n", "oname:simulation.csv_otype:lst_usecol:observations 101 101 2.6e+11 0.244 2.6e+11 2.6e+11 100 3.39e-14\n", " Note: 'percent' is the percentage of the actual phi for each realization.\n", "\n", "\n", " --- parameter group change summmary --- \n", "group count mean chg std chg n at ubnd % at ubnd n at lbnd % at lbnd n std decr\n", "optimal 2 6.169 100 0 0 0 0 2\n", " Note: parameter change summary sorted according to percent at bounds.\n", " Note: the parameter change statistics implicitly include the effect of \n", " realizations that have failed or have been dropped.\n", " Note: the 'n std decr' is the number of parameters with current\n", " std less 5% of their initial std.\n", "\n", "...saved parameter change summary to pest.12.pcs.csv\n", "\n", " --- phi-based termination criteria check --- \n", "...phiredstp: 0.01\n", "...nphistp: 3\n", "...nphinored (also used for consecutive bad lambda cycles): 3\n", "...best mean phi sequence: 1.60372e+14 , 2.60373e+11 , 2.60372e+11 , 2.60363e+11 , 2.60353e+11 , 2.60352e+11 , 2.60352e+11 , \n", " 2.60352e+11 , 2.60352e+11 , 2.60352e+11 , 2.60352e+11 , 2.60352e+11 , 2.60352e+11 , \n", " \n", "...best phi yet: 2.60352e+11\n", "...number of consecutive bad lambda testing cycles: 0\n", "...number of iterations satisfying phiredstp criteria: 1\n", "...number of iterations since best yet mean phi: 0\n", "\n", " --- starting solve for iteration: 13 --- \n", "...current lambda: 0.00316764\n", "...starting calcs for glm factor 0.000316764\n", "...finished calcs for: 0.000316764\n", "...starting calcs for glm factor 0.00316764\n", "...finished calcs for: 0.00316764\n", "...starting calcs for glm factor 0.0316764\n", "...finished calcs for: 0.0316764\n", "\n", " --- running upgrade ensembles --- \n", "...subset idx:pe real name: 0:BASE, 2:66, 6:201, 15:63, 30:109, 35:77, 61:69, 105:182, 116:37, 124:209, 125:113, 132:136, 141:19, 162:238, 165:43, 177:95, 179:139, 182:223, 198:26, 209:78, 221:135, 232:162, 240:210, 241:215, 250:243, \n", "...subset idx:oe real name: 0:BASE, 2:66, 6:201, 15:63, 30:109, 35:77, 61:69, 105:182, 116:37, 124:209, 125:113, 132:136, 141:19, 162:238, 165:43, 177:95, 179:139, 182:223, 198:26, 209:78, 221:135, 232:162, 240:210, 241:215, 250:243, \n", " running model 225 times\n", " starting at 09/30/25 16:42:51\n", " 8 agents ready\n", "\n", "\n", "PANTHER progress\n", " avg = average model run time in minutes\n", " runs(C = completed | F = failed | T = timed out)\n", " agents(R = running | W = waiting | U = unavailable)\n", "--------------------------------------------------------------------------------\n", "09/30 16:42:58 remaining file transfers: 0 \n", "\n", " 225 runs complete : 0 runs failed\n", " 0.00347 avg run time (min) : 0.119 run mgr time (min)\n", " 8 agents connected\n", "\n", "\n", "\n", " --- evaluating upgrade ensembles --- \n", "...last mean: 2.60352e+11\n", "...last stdev: 0.244283\n", "\n", " --- phi summary for best lambda, scale fac: 0.000316764 , 1.1 , --- \n", " phi type mean std min max\n", " actual 2.60352e+11 0.169657 2.60352e+11 2.60352e+11\n", "\n", " --- running remaining realizations for best lambda, scale:0.000316764 , 1.1 , --- \n", " running model 226 times\n", " starting at 09/30/25 16:42:58\n", " 8 agents ready\n", "\n", "\n", "PANTHER progress\n", " avg = average model run time in minutes\n", " runs(C = completed | F = failed | T = timed out)\n", " agents(R = running | W = waiting | U = unavailable)\n", "--------------------------------------------------------------------------------\n", "09/30 16:43:06 remaining file transfers: 0 \n", "\n", " 226 runs complete : 0 runs failed\n", " 0.00347 avg run time (min) : 0.118 run mgr time (min)\n", " 8 agents connected\n", "\n", "\n", "...phi summary for entire ensemble using lambda,scale_fac 0.000316764 , 1.1 , \n", " phi type mean std min max\n", " actual 2.60352e+11 0.187383 2.60352e+11 2.60352e+11\n", "...last best mean phi * acceptable phi factor: 2.7337e+11\n", "...current best mean phi: 2.60352e+11\n", "\n", " --- updating parameter ensemble --- \n", "\n", " --- updating lambda to 0.000237573 --- \n", "\n", " --- EnsembleMethod iteration 13 report --- \n", " number of active realizations: 251\n", " number of model runs: 6114\n", " current obs ensemble saved to pest.13.obs.csv\n", " current par ensemble saved to pest.13.par.csv\n", "saved par and rei files for realization BASE for iteration 13\n", "saved par and rei files for realization BASE\n", " phi type mean std min max\n", " actual 2.60352e+11 0.187383 2.60352e+11 2.60352e+11\n", " --- observation group phi summary --- \n", " (computed using 'actual' phi)\n", " (sorted by mean phi)\n", "group count nconflict mean std min max percent std\n", "oname:simulation.csv_otype:lst_usecol:observations 101 101 2.6e+11 0.187 2.6e+11 2.6e+11 100 2.93e-14\n", " Note: 'percent' is the percentage of the actual phi for each realization.\n", "\n", "\n", " --- parameter group change summmary --- \n", "group count mean chg std chg n at ubnd % at ubnd n at lbnd % at lbnd n std decr\n", "optimal 2 6.169 100 0 0 0 0 2\n", " Note: parameter change summary sorted according to percent at bounds.\n", " Note: the parameter change statistics implicitly include the effect of \n", " realizations that have failed or have been dropped.\n", " Note: the 'n std decr' is the number of parameters with current\n", " std less 5% of their initial std.\n", "\n", "...saved parameter change summary to pest.13.pcs.csv\n", "\n", " --- phi-based termination criteria check --- \n", "...phiredstp: 0.01\n", "...nphistp: 3\n", "...nphinored (also used for consecutive bad lambda cycles): 3\n", "...best mean phi sequence: 1.60372e+14 , 2.60373e+11 , 2.60372e+11 , 2.60363e+11 , 2.60353e+11 , 2.60352e+11 , 2.60352e+11 , \n", " 2.60352e+11 , 2.60352e+11 , 2.60352e+11 , 2.60352e+11 , 2.60352e+11 , 2.60352e+11 , \n", " 2.60352e+11 , \n", "...best phi yet: 2.60352e+11\n", "...number of consecutive bad lambda testing cycles: 0\n", "...number of iterations satisfying phiredstp criteria: 1\n", "...number of iterations since best yet mean phi: 0\n", "\n", " --- starting solve for iteration: 14 --- \n", "...current lambda: 0.000237573\n", "...starting calcs for glm factor 2.37573e-05\n", "...finished calcs for: 2.37573e-05\n", "...starting calcs for glm factor 0.000237573\n", "...finished calcs for: 0.000237573\n", "...starting calcs for glm factor 0.00237573\n", "...finished calcs for: 0.00237573\n", "\n", " --- running upgrade ensembles --- \n", "...subset idx:pe real name: 0:BASE, 1:66, 5:77, 31:94, 36:21, 37:74, 53:144, 55:98, 57:84, 69:0, 76:29, 82:170, 101:132, 102:151, 103:152, 116:50, 133:62, 146:160, 156:86, 172:188, 198:11, 208:54, 210:56, 214:70, 217:89, \n", "...subset idx:oe real name: 0:BASE, 1:66, 5:77, 31:94, 36:21, 37:74, 53:144, 55:98, 57:84, 69:0, 76:29, 82:170, 101:132, 102:151, 103:152, 116:50, 133:62, 146:160, 156:86, 172:188, 198:11, 208:54, 210:56, 214:70, 217:89, \n", " running model 225 times\n", " starting at 09/30/25 16:43:06\n", " 8 agents ready\n", "\n", "\n", "PANTHER progress\n", " avg = average model run time in minutes\n", " runs(C = completed | F = failed | T = timed out)\n", " agents(R = running | W = waiting | U = unavailable)\n", "--------------------------------------------------------------------------------\n", "09/30 16:43:13 remaining file transfers: 0 \n", "\n", " 225 runs complete : 0 runs failed\n", " 0.00347 avg run time (min) : 0.119 run mgr time (min)\n", " 8 agents connected\n", "\n", "\n", "\n", " --- evaluating upgrade ensembles --- \n", "...last mean: 2.60352e+11\n", "...last stdev: 0.187383\n", "\n", " --- phi summary for best lambda, scale fac: 2.37573e-05 , 1.1 , --- \n", " phi type mean std min max\n", " actual 2.60352e+11 0.113224 2.60352e+11 2.60352e+11\n", "\n", " --- running remaining realizations for best lambda, scale:2.37573e-05 , 1.1 , --- \n", " running model 226 times\n", " starting at 09/30/25 16:43:13\n", " 8 agents ready\n", "\n", "\n", "PANTHER progress\n", " avg = average model run time in minutes\n", " runs(C = completed | F = failed | T = timed out)\n", " agents(R = running | W = waiting | U = unavailable)\n", "--------------------------------------------------------------------------------\n", "09/30 16:43:21 remaining file transfers: 0 \n", "\n", " 226 runs complete : 0 runs failed\n", " 0.00349 avg run time (min) : 0.144 run mgr time (min)\n", " 8 agents connected\n", "\n", "\n", "...phi summary for entire ensemble using lambda,scale_fac 2.37573e-05 , 1.1 , \n", " phi type mean std min max\n", " actual 2.60352e+11 0.152509 2.60352e+11 2.60352e+11\n", "...last best mean phi * acceptable phi factor: 2.7337e+11\n", "...current best mean phi: 2.60352e+11\n", "\n", " --- updating parameter ensemble --- \n", "\n", " --- updating lambda to 1.78179e-05 --- \n", "\n", " --- EnsembleMethod iteration 14 report --- \n", " number of active realizations: 251\n", " number of model runs: 6565\n", " current obs ensemble saved to pest.14.obs.csv\n", " current par ensemble saved to pest.14.par.csv\n", "saved par and rei files for realization BASE for iteration 14\n", "saved par and rei files for realization BASE\n", " phi type mean std min max\n", " actual 2.60352e+11 0.152509 2.60352e+11 2.60352e+11\n", " --- observation group phi summary --- \n", " (computed using 'actual' phi)\n", " (sorted by mean phi)\n", "group count nconflict mean std min max percent std\n", "oname:simulation.csv_otype:lst_usecol:observations 101 101 2.6e+11 0.153 2.6e+11 2.6e+11 100 3.32e-14\n", " Note: 'percent' is the percentage of the actual phi for each realization.\n", "\n", "\n", " --- parameter group change summmary --- \n", "group count mean chg std chg n at ubnd % at ubnd n at lbnd % at lbnd n std decr\n", "optimal 2 6.169 100 0 0 0 0 2\n", " Note: parameter change summary sorted according to percent at bounds.\n", " Note: the parameter change statistics implicitly include the effect of \n", " realizations that have failed or have been dropped.\n", " Note: the 'n std decr' is the number of parameters with current\n", " std less 5% of their initial std.\n", "\n", "...saved parameter change summary to pest.14.pcs.csv\n", "\n", " --- phi-based termination criteria check --- \n", "...phiredstp: 0.01\n", "...nphistp: 3\n", "...nphinored (also used for consecutive bad lambda cycles): 3\n", "...best mean phi sequence: 1.60372e+14 , 2.60373e+11 , 2.60372e+11 , 2.60363e+11 , 2.60353e+11 , 2.60352e+11 , 2.60352e+11 , \n", " 2.60352e+11 , 2.60352e+11 , 2.60352e+11 , 2.60352e+11 , 2.60352e+11 , 2.60352e+11 , \n", " 2.60352e+11 , 2.60352e+11 , \n", "...best phi yet: 2.60352e+11\n", "...number of consecutive bad lambda testing cycles: 0\n", "...number of iterations satisfying phiredstp criteria: 1\n", "...number of iterations since best yet mean phi: 0\n", "\n", " --- starting solve for iteration: 15 --- \n", "...current lambda: 1.78179e-05\n", "...starting calcs for glm factor 1.78179e-06\n", "...finished calcs for: 1.78179e-06\n", "...starting calcs for glm factor 1.78179e-05\n", "...finished calcs for: 1.78179e-05\n", "...starting calcs for glm factor 0.000178179\n", "...finished calcs for: 0.000178179\n", "\n", " --- running upgrade ensembles --- \n", "...subset idx:pe real name: 0:BASE, 6:144, 7:98, 24:89, 39:223, 40:26, 45:215, 60:133, 75:202, 78:90, 87:226, 95:143, 102:150, 110:79, 112:123, 121:122, 128:116, 179:240, 186:198, 194:175, 197:33, 206:18, 217:88, 218:92, 221:104, \n", "...subset idx:oe real name: 0:BASE, 6:144, 7:98, 24:89, 39:223, 40:26, 45:215, 60:133, 75:202, 78:90, 87:226, 95:143, 102:150, 110:79, 112:123, 121:122, 128:116, 179:240, 186:198, 194:175, 197:33, 206:18, 217:88, 218:92, 221:104, \n", " running model 225 times\n", " starting at 09/30/25 16:43:22\n", " 8 agents ready\n", "\n", "\n", "PANTHER progress\n", " avg = average model run time in minutes\n", " runs(C = completed | F = failed | T = timed out)\n", " agents(R = running | W = waiting | U = unavailable)\n", "--------------------------------------------------------------------------------\n", "09/30 16:43:29 remaining file transfers: 0 \n", "\n", " 225 runs complete : 0 runs failed\n", " 0.00349 avg run time (min) : 0.12 run mgr time (min)\n", " 8 agents connected\n", "\n", "\n", "\n", " --- evaluating upgrade ensembles --- \n", "...last mean: 2.60352e+11\n", "...last stdev: 0.152509\n", "\n", " --- phi summary for best lambda, scale fac: 1.78179e-05 , 1.1 , --- \n", " phi type mean std min max\n", " actual 2.60352e+11 0.114893 2.60352e+11 2.60352e+11\n", "\n", " --- running remaining realizations for best lambda, scale:1.78179e-05 , 1.1 , --- \n", " running model 226 times\n", " starting at 09/30/25 16:43:29\n", " 8 agents ready\n", "\n", "\n", "PANTHER progress\n", " avg = average model run time in minutes\n", " runs(C = completed | F = failed | T = timed out)\n", " agents(R = running | W = waiting | U = unavailable)\n", "--------------------------------------------------------------------------------\n", "09/30 16:43:36 remaining file transfers: 0 \n", "\n", " 226 runs complete : 0 runs failed\n", " 0.00348 avg run time (min) : 0.118 run mgr time (min)\n", " 8 agents connected\n", "\n", "\n", "...phi summary for entire ensemble using lambda,scale_fac 1.78179e-05 , 1.1 , \n", " phi type mean std min max\n", " actual 2.60352e+11 0.128839 2.60352e+11 2.60352e+11\n", "...last best mean phi * acceptable phi factor: 2.7337e+11\n", "...current best mean phi: 2.60352e+11\n", "\n", " --- updating parameter ensemble --- \n", "\n", " --- updating lambda to 1.33635e-05 --- \n", "\n", " --- EnsembleMethod iteration 15 report --- \n", " number of active realizations: 251\n", " number of model runs: 7016\n", " current obs ensemble saved to pest.15.obs.csv\n", " current par ensemble saved to pest.15.par.csv\n", "saved par and rei files for realization BASE for iteration 15\n", "saved par and rei files for realization BASE\n", " phi type mean std min max\n", " actual 2.60352e+11 0.128839 2.60352e+11 2.60352e+11\n", " --- observation group phi summary --- \n", " (computed using 'actual' phi)\n", " (sorted by mean phi)\n", "group count nconflict mean std min max percent std\n", "oname:simulation.csv_otype:lst_usecol:observations 101 101 2.6e+11 0.129 2.6e+11 2.6e+11 100 3.02e-14\n", " Note: 'percent' is the percentage of the actual phi for each realization.\n", "\n", "\n", " --- parameter group change summmary --- \n", "group count mean chg std chg n at ubnd % at ubnd n at lbnd % at lbnd n std decr\n", "optimal 2 6.169 100 0 0 0 0 2\n", " Note: parameter change summary sorted according to percent at bounds.\n", " Note: the parameter change statistics implicitly include the effect of \n", " realizations that have failed or have been dropped.\n", " Note: the 'n std decr' is the number of parameters with current\n", " std less 5% of their initial std.\n", "\n", "...saved parameter change summary to pest.15.pcs.csv\n", "\n", " --- phi-based termination criteria check --- \n", "...phiredstp: 0.01\n", "...nphistp: 3\n", "...nphinored (also used for consecutive bad lambda cycles): 3\n", "...best mean phi sequence: 1.60372e+14 , 2.60373e+11 , 2.60372e+11 , 2.60363e+11 , 2.60353e+11 , 2.60352e+11 , 2.60352e+11 , \n", " 2.60352e+11 , 2.60352e+11 , 2.60352e+11 , 2.60352e+11 , 2.60352e+11 , 2.60352e+11 , \n", " 2.60352e+11 , 2.60352e+11 , 2.60352e+11 , \n", "...best phi yet: 2.60352e+11\n", "...number of consecutive bad lambda testing cycles: 0\n", "...number of iterations satisfying phiredstp criteria: 1\n", "...number of iterations since best yet mean phi: 0\n", "\n", " --- starting solve for iteration: 16 --- \n", "...current lambda: 1.33635e-05\n", "...starting calcs for glm factor 1.33635e-06\n", "...finished calcs for: 1.33635e-06\n", "...starting calcs for glm factor 1.33635e-05\n", "...finished calcs for: 1.33635e-05\n", "...starting calcs for glm factor 0.000133635\n", "...finished calcs for: 0.000133635\n", "\n", " --- running upgrade ensembles --- \n", "...subset idx:pe real name: 0:BASE, 2:98, 16:116, 32:29, 37:50, 60:78, 63:210, 65:230, 68:172, 112:227, 120:58, 134:20, 159:41, 170:112, 171:97, 177:212, 187:28, 188:45, 194:15, 217:65, 228:141, 229:142, 230:145, 235:161, 237:169, \n", "...subset idx:oe real name: 0:BASE, 2:98, 16:116, 32:29, 37:50, 60:78, 63:210, 65:230, 68:172, 112:227, 120:58, 134:20, 159:41, 170:112, 171:97, 177:212, 187:28, 188:45, 194:15, 217:65, 228:141, 229:142, 230:145, 235:161, 237:169, \n", " running model 225 times\n", " starting at 09/30/25 16:43:36\n", " 8 agents ready\n", "\n", "\n", "PANTHER progress\n", " avg = average model run time in minutes\n", " runs(C = completed | F = failed | T = timed out)\n", " agents(R = running | W = waiting | U = unavailable)\n", "--------------------------------------------------------------------------------\n", "09/30 16:43:43 remaining file transfers: 0 \n", "\n", " 225 runs complete : 0 runs failed\n", " 0.00347 avg run time (min) : 0.119 run mgr time (min)\n", " 8 agents connected\n", "\n", "\n", "\n", " --- evaluating upgrade ensembles --- \n", "...last mean: 2.60352e+11\n", "...last stdev: 0.128839\n", "\n", " --- phi summary for best lambda, scale fac: 1.33635e-05 , 1.1 , --- \n", " phi type mean std min max\n", " actual 2.60352e+11 0.137558 2.60352e+11 2.60352e+11\n", "\n", " --- running remaining realizations for best lambda, scale:1.33635e-05 , 1.1 , --- \n", " running model 226 times\n", " starting at 09/30/25 16:43:43\n", " 8 agents ready\n", "\n", "\n", "PANTHER progress\n", " avg = average model run time in minutes\n", " runs(C = completed | F = failed | T = timed out)\n", " agents(R = running | W = waiting | U = unavailable)\n", "--------------------------------------------------------------------------------\n", "09/30 16:43:52 remaining file transfers: 0 \n", "\n", " 226 runs complete : 0 runs failed\n", " 0.00349 avg run time (min) : 0.144 run mgr time (min)\n", " 8 agents connected\n", "\n", "\n", "...phi summary for entire ensemble using lambda,scale_fac 1.33635e-05 , 1.1 , \n", " phi type mean std min max\n", " actual 2.60352e+11 0.111626 2.60352e+11 2.60352e+11\n", "...last best mean phi * acceptable phi factor: 2.7337e+11\n", "...current best mean phi: 2.60352e+11\n", "\n", " --- updating parameter ensemble --- \n", "\n", " --- updating lambda to 1.00226e-05 --- \n", "\n", " --- EnsembleMethod iteration 16 report --- \n", " number of active realizations: 251\n", " number of model runs: 7467\n", " current obs ensemble saved to pest.16.obs.csv\n", " current par ensemble saved to pest.16.par.csv\n", "saved par and rei files for realization BASE for iteration 16\n", "saved par and rei files for realization BASE\n", " phi type mean std min max\n", " actual 2.60352e+11 0.111626 2.60352e+11 2.60352e+11\n", " --- observation group phi summary --- \n", " (computed using 'actual' phi)\n", " (sorted by mean phi)\n", "group count nconflict mean std min max percent std\n", "oname:simulation.csv_otype:lst_usecol:observations 101 101 2.6e+11 0.112 2.6e+11 2.6e+11 100 3.16e-14\n", " Note: 'percent' is the percentage of the actual phi for each realization.\n", "\n", "\n", " --- parameter group change summmary --- \n", "group count mean chg std chg n at ubnd % at ubnd n at lbnd % at lbnd n std decr\n", "optimal 2 6.169 100 0 0 0 0 2\n", " Note: parameter change summary sorted according to percent at bounds.\n", " Note: the parameter change statistics implicitly include the effect of \n", " realizations that have failed or have been dropped.\n", " Note: the 'n std decr' is the number of parameters with current\n", " std less 5% of their initial std.\n", "\n", "...saved parameter change summary to pest.16.pcs.csv\n", "\n", " --- phi-based termination criteria check --- \n", "...phiredstp: 0.01\n", "...nphistp: 3\n", "...nphinored (also used for consecutive bad lambda cycles): 3\n", "...best mean phi sequence: 1.60372e+14 , 2.60373e+11 , 2.60372e+11 , 2.60363e+11 , 2.60353e+11 , 2.60352e+11 , 2.60352e+11 , \n", " 2.60352e+11 , 2.60352e+11 , 2.60352e+11 , 2.60352e+11 , 2.60352e+11 , 2.60352e+11 , \n", " 2.60352e+11 , 2.60352e+11 , 2.60352e+11 , 2.60352e+11 , \n", "...best phi yet: 2.60352e+11\n", "...number of consecutive bad lambda testing cycles: 0\n", "...number of iterations satisfying phiredstp criteria: 1\n", "...number of iterations since best yet mean phi: 0\n", "\n", " --- starting solve for iteration: 17 --- \n", "...current lambda: 1.00226e-05\n", "...starting calcs for glm factor 1.00226e-06\n", "...finished calcs for: 1.00226e-06\n", "...starting calcs for glm factor 1.00226e-05\n", "...finished calcs for: 1.00226e-05\n", "...starting calcs for glm factor 0.000100226\n", "...finished calcs for: 0.000100226\n", "\n", " --- running upgrade ensembles --- \n", "...subset idx:pe real name: 0:BASE, 2:116, 17:45, 25:144, 29:215, 80:135, 99:32, 106:114, 110:157, 112:179, 122:31, 128:246, 131:10, 137:128, 147:134, 149:107, 166:192, 176:187, 189:30, 193:146, 207:3, 212:7, 230:131, 233:153, 249:241, \n", "...subset idx:oe real name: 0:BASE, 2:116, 17:45, 25:144, 29:215, 80:135, 99:32, 106:114, 110:157, 112:179, 122:31, 128:246, 131:10, 137:128, 147:134, 149:107, 166:192, 176:187, 189:30, 193:146, 207:3, 212:7, 230:131, 233:153, 249:241, \n", " running model 225 times\n", " starting at 09/30/25 16:43:52\n", " 8 agents ready\n", "\n", "\n", "PANTHER progress\n", " avg = average model run time in minutes\n", " runs(C = completed | F = failed | T = timed out)\n", " agents(R = running | W = waiting | U = unavailable)\n", "--------------------------------------------------------------------------------\n", "09/30 16:43:59 remaining file transfers: 0 \n", "\n", " 225 runs complete : 0 runs failed\n", " 0.00348 avg run time (min) : 0.119 run mgr time (min)\n", " 8 agents connected\n", "\n", "\n", "\n", " --- evaluating upgrade ensembles --- \n", "...last mean: 2.60352e+11\n", "...last stdev: 0.111626\n", "\n", " --- phi summary for best lambda, scale fac: 1.00226e-05 , 1.1 , --- \n", " phi type mean std min max\n", " actual 2.60352e+11 0.087181 2.60352e+11 2.60352e+11\n", "\n", " --- running remaining realizations for best lambda, scale:1.00226e-05 , 1.1 , --- \n", " running model 226 times\n", " starting at 09/30/25 16:43:59\n", " 8 agents ready\n", "\n", "\n", "PANTHER progress\n", " avg = average model run time in minutes\n", " runs(C = completed | F = failed | T = timed out)\n", " agents(R = running | W = waiting | U = unavailable)\n", "--------------------------------------------------------------------------------\n", "09/30 16:44:06 remaining file transfers: 0 \n", "\n", " 226 runs complete : 0 runs failed\n", " 0.00346 avg run time (min) : 0.118 run mgr time (min)\n", " 8 agents connected\n", "\n", "\n", "...phi summary for entire ensemble using lambda,scale_fac 1.00226e-05 , 1.1 , \n", " phi type mean std min max\n", " actual 2.60352e+11 0.0985319 2.60352e+11 2.60352e+11\n", "...last best mean phi * acceptable phi factor: 2.7337e+11\n", "...current best mean phi: 2.60352e+11\n", "\n", " --- updating parameter ensemble --- \n", "\n", " --- updating lambda to 7.51695e-06 --- \n", "\n", " --- EnsembleMethod iteration 17 report --- \n", " number of active realizations: 251\n", " number of model runs: 7918\n", " current obs ensemble saved to pest.17.obs.csv\n", " current par ensemble saved to pest.17.par.csv\n", "saved par and rei files for realization BASE for iteration 17\n", "saved par and rei files for realization BASE\n", " phi type mean std min max\n", " actual 2.60352e+11 0.0985319 2.60352e+11 2.60352e+11\n", " --- observation group phi summary --- \n", " (computed using 'actual' phi)\n", " (sorted by mean phi)\n", "group count nconflict mean std min max percent std\n", "oname:simulation.csv_otype:lst_usecol:observations 101 101 2.6e+11 0.0985 2.6e+11 2.6e+11 100 2.79e-14\n", " Note: 'percent' is the percentage of the actual phi for each realization.\n", "\n", "\n", " --- parameter group change summmary --- \n", "group count mean chg std chg n at ubnd % at ubnd n at lbnd % at lbnd n std decr\n", "optimal 2 6.169 100 0 0 0 0 2\n", " Note: parameter change summary sorted according to percent at bounds.\n", " Note: the parameter change statistics implicitly include the effect of \n", " realizations that have failed or have been dropped.\n", " Note: the 'n std decr' is the number of parameters with current\n", " std less 5% of their initial std.\n", "\n", "...saved parameter change summary to pest.17.pcs.csv\n", "\n", " --- phi-based termination criteria check --- \n", "...phiredstp: 0.01\n", "...nphistp: 3\n", "...nphinored (also used for consecutive bad lambda cycles): 3\n", "...best mean phi sequence: 1.60372e+14 , 2.60373e+11 , 2.60372e+11 , 2.60363e+11 , 2.60353e+11 , 2.60352e+11 , 2.60352e+11 , \n", " 2.60352e+11 , 2.60352e+11 , 2.60352e+11 , 2.60352e+11 , 2.60352e+11 , 2.60352e+11 , \n", " 2.60352e+11 , 2.60352e+11 , 2.60352e+11 , 2.60352e+11 , 2.60352e+11 , \n", "...best phi yet: 2.60352e+11\n", "...number of consecutive bad lambda testing cycles: 0\n", "...number of iterations satisfying phiredstp criteria: 1\n", "...number of iterations since best yet mean phi: 0\n", "\n", " --- starting solve for iteration: 18 --- \n", "...current lambda: 7.51695e-06\n", "...starting calcs for glm factor 7.51695e-07\n", "...finished calcs for: 7.51695e-07\n", "...starting calcs for glm factor 7.51695e-06\n", "...finished calcs for: 7.51695e-06\n", "...starting calcs for glm factor 7.51695e-05\n", "...finished calcs for: 7.51695e-05\n", "\n", " --- running upgrade ensembles --- \n", "...subset idx:pe real name: 0:BASE, 3:144, 10:31, 21:7, 29:210, 49:26, 52:90, 66:104, 78:62, 81:188, 87:63, 115:222, 130:57, 141:211, 148:105, 171:148, 178:124, 182:166, 184:194, 204:186, 213:178, 217:14, 222:46, 244:218, 249:237, \n", "...subset idx:oe real name: 0:BASE, 3:144, 10:31, 21:7, 29:210, 49:26, 52:90, 66:104, 78:62, 81:188, 87:63, 115:222, 130:57, 141:211, 148:105, 171:148, 178:124, 182:166, 184:194, 204:186, 213:178, 217:14, 222:46, 244:218, 249:237, \n", " running model 225 times\n", " starting at 09/30/25 16:44:06\n", " 8 agents ready\n", "\n", "\n", "PANTHER progress\n", " avg = average model run time in minutes\n", " runs(C = completed | F = failed | T = timed out)\n", " agents(R = running | W = waiting | U = unavailable)\n", "--------------------------------------------------------------------------------\n", "09/30 16:44:13 remaining file transfers: 0 \n", "\n", " 225 runs complete : 0 runs failed\n", " 0.00348 avg run time (min) : 0.119 run mgr time (min)\n", " 8 agents connected\n", "\n", "\n", "\n", " --- evaluating upgrade ensembles --- \n", "...last mean: 2.60352e+11\n", "...last stdev: 0.0985319\n", "\n", " --- phi summary for best lambda, scale fac: 7.51695e-05 , 1.1 , --- \n", " phi type mean std min max\n", " actual 2.60352e+11 0.0723654 2.60352e+11 2.60352e+11\n", "\n", " --- running remaining realizations for best lambda, scale:7.51695e-05 , 1.1 , --- \n", " running model 226 times\n", " starting at 09/30/25 16:44:13\n", " 8 agents ready\n", "\n", "\n", "PANTHER progress\n", " avg = average model run time in minutes\n", " runs(C = completed | F = failed | T = timed out)\n", " agents(R = running | W = waiting | U = unavailable)\n", "--------------------------------------------------------------------------------\n", "09/30 16:44:20 remaining file transfers: 0 \n", "\n", " 226 runs complete : 0 runs failed\n", " 0.00347 avg run time (min) : 0.118 run mgr time (min)\n", " 8 agents connected\n", "\n", "\n", "...phi summary for entire ensemble using lambda,scale_fac 7.51695e-05 , 1.1 , \n", " phi type mean std min max\n", " actual 2.60352e+11 0.088241 2.60352e+11 2.60352e+11\n", "...last best mean phi * acceptable phi factor: 2.7337e+11\n", "...current best mean phi: 2.60352e+11\n", "\n", " --- updating parameter ensemble --- \n", "\n", " --- updating lambda to 5.63771e-05 --- \n", "\n", " --- EnsembleMethod iteration 18 report --- \n", " number of active realizations: 251\n", " number of model runs: 8369\n", " current obs ensemble saved to pest.18.obs.csv\n", " current par ensemble saved to pest.18.par.csv\n", "saved par and rei files for realization BASE for iteration 18\n", "saved par and rei files for realization BASE\n", " phi type mean std min max\n", " actual 2.60352e+11 0.088241 2.60352e+11 2.60352e+11\n", " --- observation group phi summary --- \n", " (computed using 'actual' phi)\n", " (sorted by mean phi)\n", "group count nconflict mean std min max percent std\n", "oname:simulation.csv_otype:lst_usecol:observations 101 101 2.6e+11 0.0882 2.6e+11 2.6e+11 100 3.04e-14\n", " Note: 'percent' is the percentage of the actual phi for each realization.\n", "\n", "\n", " --- parameter group change summmary --- \n", "group count mean chg std chg n at ubnd % at ubnd n at lbnd % at lbnd n std decr\n", "optimal 2 6.169 100 0 0 0 0 2\n", " Note: parameter change summary sorted according to percent at bounds.\n", " Note: the parameter change statistics implicitly include the effect of \n", " realizations that have failed or have been dropped.\n", " Note: the 'n std decr' is the number of parameters with current\n", " std less 5% of their initial std.\n", "\n", "...saved parameter change summary to pest.18.pcs.csv\n", "\n", " --- phi-based termination criteria check --- \n", "...phiredstp: 0.01\n", "...nphistp: 3\n", "...nphinored (also used for consecutive bad lambda cycles): 3\n", "...best mean phi sequence: 1.60372e+14 , 2.60373e+11 , 2.60372e+11 , 2.60363e+11 , 2.60353e+11 , 2.60352e+11 , 2.60352e+11 , \n", " 2.60352e+11 , 2.60352e+11 , 2.60352e+11 , 2.60352e+11 , 2.60352e+11 , 2.60352e+11 , \n", " 2.60352e+11 , 2.60352e+11 , 2.60352e+11 , 2.60352e+11 , 2.60352e+11 , 2.60352e+11 , \n", " \n", "...best phi yet: 2.60352e+11\n", "...number of consecutive bad lambda testing cycles: 0\n", "...number of iterations satisfying phiredstp criteria: 1\n", "...number of iterations since best yet mean phi: 0\n", "\n", " --- starting solve for iteration: 19 --- \n", "...current lambda: 5.63771e-05\n", "...starting calcs for glm factor 5.63771e-06\n", "...finished calcs for: 5.63771e-06\n", "...starting calcs for glm factor 5.63771e-05\n", "...finished calcs for: 5.63771e-05\n", "...starting calcs for glm factor 0.000563771\n", "...finished calcs for: 0.000563771\n", "\n", " --- running upgrade ensembles --- \n", "...subset idx:pe real name: 0:BASE, 6:90, 14:105, 16:124, 48:50, 63:142, 69:133, 74:79, 87:21, 89:84, 117:108, 126:118, 137:27, 155:60, 170:149, 179:93, 183:155, 187:138, 195:51, 201:53, 206:217, 212:44, 230:99, 240:168, 243:199, \n", "...subset idx:oe real name: 0:BASE, 6:90, 14:105, 16:124, 48:50, 63:142, 69:133, 74:79, 87:21, 89:84, 117:108, 126:118, 137:27, 155:60, 170:149, 179:93, 183:155, 187:138, 195:51, 201:53, 206:217, 212:44, 230:99, 240:168, 243:199, \n", " running model 225 times\n", " starting at 09/30/25 16:44:20\n", " 8 agents ready\n", "\n", "\n", "PANTHER progress\n", " avg = average model run time in minutes\n", " runs(C = completed | F = failed | T = timed out)\n", " agents(R = running | W = waiting | U = unavailable)\n", "--------------------------------------------------------------------------------\n", "09/30 16:44:29 remaining file transfers: 0 \n", "\n", " 225 runs complete : 0 runs failed\n", " 0.00348 avg run time (min) : 0.145 run mgr time (min)\n", " 8 agents connected\n", "\n", "\n", "\n", " --- evaluating upgrade ensembles --- \n", "...last mean: 2.60352e+11\n", "...last stdev: 0.088241\n", "\n", " --- phi summary for best lambda, scale fac: 0.000563771 , 1.1 , --- \n", " phi type mean std min max\n", " actual 2.60352e+11 0.0773592 2.60352e+11 2.60352e+11\n", "\n", " --- running remaining realizations for best lambda, scale:0.000563771 , 1.1 , --- \n", " running model 226 times\n", " starting at 09/30/25 16:44:29\n", " 8 agents ready\n", "\n", "\n", "PANTHER progress\n", " avg = average model run time in minutes\n", " runs(C = completed | F = failed | T = timed out)\n", " agents(R = running | W = waiting | U = unavailable)\n", "--------------------------------------------------------------------------------\n", "09/30 16:44:36 remaining file transfers: 0 \n", "\n", " 226 runs complete : 0 runs failed\n", " 0.00348 avg run time (min) : 0.118 run mgr time (min)\n", " 8 agents connected\n", "\n", "\n", "...phi summary for entire ensemble using lambda,scale_fac 0.000563771 , 1.1 , \n", " phi type mean std min max\n", " actual 2.60352e+11 0.079918 2.60352e+11 2.60352e+11\n", "...last best mean phi * acceptable phi factor: 2.7337e+11\n", "...current best mean phi: 2.60352e+11\n", "\n", " --- updating parameter ensemble --- \n", "\n", " --- updating lambda to 0.000422828 --- \n", "\n", " --- EnsembleMethod iteration 19 report --- \n", " number of active realizations: 251\n", " number of model runs: 8820\n", " current obs ensemble saved to pest.19.obs.csv\n", " current par ensemble saved to pest.19.par.csv\n", "saved par and rei files for realization BASE for iteration 19\n", "saved par and rei files for realization BASE\n", " phi type mean std min max\n", " actual 2.60352e+11 0.079918 2.60352e+11 2.60352e+11\n", " --- observation group phi summary --- \n", " (computed using 'actual' phi)\n", " (sorted by mean phi)\n", "group count nconflict mean std min max percent std\n", "oname:simulation.csv_otype:lst_usecol:observations 101 101 2.6e+11 0.0799 2.6e+11 2.6e+11 100 3.25e-14\n", " Note: 'percent' is the percentage of the actual phi for each realization.\n", "\n", "\n", " --- parameter group change summmary --- \n", "group count mean chg std chg n at ubnd % at ubnd n at lbnd % at lbnd n std decr\n", "optimal 2 6.169 100 0 0 0 0 2\n", " Note: parameter change summary sorted according to percent at bounds.\n", " Note: the parameter change statistics implicitly include the effect of \n", " realizations that have failed or have been dropped.\n", " Note: the 'n std decr' is the number of parameters with current\n", " std less 5% of their initial std.\n", "\n", "...saved parameter change summary to pest.19.pcs.csv\n", "\n", " --- phi-based termination criteria check --- \n", "...phiredstp: 0.01\n", "...nphistp: 3\n", "...nphinored (also used for consecutive bad lambda cycles): 3\n", "...best mean phi sequence: 1.60372e+14 , 2.60373e+11 , 2.60372e+11 , 2.60363e+11 , 2.60353e+11 , 2.60352e+11 , 2.60352e+11 , \n", " 2.60352e+11 , 2.60352e+11 , 2.60352e+11 , 2.60352e+11 , 2.60352e+11 , 2.60352e+11 , \n", " 2.60352e+11 , 2.60352e+11 , 2.60352e+11 , 2.60352e+11 , 2.60352e+11 , 2.60352e+11 , \n", " 2.60352e+11 , \n", "...best phi yet: 2.60352e+11\n", "...number of consecutive bad lambda testing cycles: 0\n", "...number of iterations satisfying phiredstp criteria: 1\n", "...number of iterations since best yet mean phi: 0\n", "\n", " --- starting solve for iteration: 20 --- \n", "...current lambda: 0.000422828\n", "...starting calcs for glm factor 4.22828e-05\n", "...finished calcs for: 4.22828e-05\n", "...starting calcs for glm factor 0.000422828\n", "...finished calcs for: 0.000422828\n", "...starting calcs for glm factor 0.00422828\n", "...finished calcs for: 0.00422828\n", "\n", " --- running upgrade ensembles --- \n", "...subset idx:pe real name: 0:BASE, 6:133, 7:79, 8:21, 22:99, 26:31, 51:114, 63:3, 83:145, 90:143, 96:175, 120:37, 131:147, 140:189, 156:244, 160:25, 161:61, 166:127, 173:158, 188:231, 191:96, 206:23, 209:38, 212:117, 217:115, \n", "...subset idx:oe real name: 0:BASE, 6:133, 7:79, 8:21, 22:99, 26:31, 51:114, 63:3, 83:145, 90:143, 96:175, 120:37, 131:147, 140:189, 156:244, 160:25, 161:61, 166:127, 173:158, 188:231, 191:96, 206:23, 209:38, 212:117, 217:115, \n", " running model 225 times\n", " starting at 09/30/25 16:44:36\n", " 8 agents ready\n", "\n", "\n", "PANTHER progress\n", " avg = average model run time in minutes\n", " runs(C = completed | F = failed | T = timed out)\n", " agents(R = running | W = waiting | U = unavailable)\n", "--------------------------------------------------------------------------------\n", "09/30 16:44:43 remaining file transfers: 0 \n", "\n", " 225 runs complete : 0 runs failed\n", " 0.00347 avg run time (min) : 0.12 run mgr time (min)\n", " 8 agents connected\n", "\n", "\n", "\n", " --- evaluating upgrade ensembles --- \n", "...last mean: 2.60352e+11\n", "...last stdev: 0.079918\n", "\n", " --- phi summary for best lambda, scale fac: 0.000422828 , 1.1 , --- \n", " phi type mean std min max\n", " actual 2.60352e+11 0.0920673 2.60352e+11 2.60352e+11\n", "\n", " --- running remaining realizations for best lambda, scale:0.000422828 , 1.1 , --- \n", " running model 226 times\n", " starting at 09/30/25 16:44:44\n", " 8 agents ready\n", "\n", "\n", "PANTHER progress\n", " avg = average model run time in minutes\n", " runs(C = completed | F = failed | T = timed out)\n", " agents(R = running | W = waiting | U = unavailable)\n", "--------------------------------------------------------------------------------\n", "09/30 16:44:51 remaining file transfers: 0 \n", "\n", " 226 runs complete : 0 runs failed\n", " 0.00348 avg run time (min) : 0.118 run mgr time (min)\n", " 8 agents connected\n", "\n", "\n", "...phi summary for entire ensemble using lambda,scale_fac 0.000422828 , 1.1 , \n", " phi type mean std min max\n", " actual 2.60352e+11 0.0730336 2.60352e+11 2.60352e+11\n", "...last best mean phi * acceptable phi factor: 2.7337e+11\n", "...current best mean phi: 2.60352e+11\n", "\n", " --- updating parameter ensemble --- \n", "\n", " --- updating lambda to 0.000317121 --- \n", "\n", " --- EnsembleMethod iteration 20 report --- \n", " number of active realizations: 251\n", " number of model runs: 9271\n", " current obs ensemble saved to pest.20.obs.csv\n", " current par ensemble saved to pest.20.par.csv\n", "saved par and rei files for realization BASE for iteration 20\n", "saved par and rei files for realization BASE\n", " phi type mean std min max\n", " actual 2.60352e+11 0.0730336 2.60352e+11 2.60352e+11\n", " --- observation group phi summary --- \n", " (computed using 'actual' phi)\n", " (sorted by mean phi)\n", "group count nconflict mean std min max percent std\n", "oname:simulation.csv_otype:lst_usecol:observations 101 101 2.6e+11 0.073 2.6e+11 2.6e+11 100 3.05e-14\n", " Note: 'percent' is the percentage of the actual phi for each realization.\n", "\n", "\n", " --- parameter group change summmary --- \n", "group count mean chg std chg n at ubnd % at ubnd n at lbnd % at lbnd n std decr\n", "optimal 2 6.169 100 0 0 0 0 2\n", " Note: parameter change summary sorted according to percent at bounds.\n", " Note: the parameter change statistics implicitly include the effect of \n", " realizations that have failed or have been dropped.\n", " Note: the 'n std decr' is the number of parameters with current\n", " std less 5% of their initial std.\n", "\n", "...saved parameter change summary to pest.20.pcs.csv\n", "\n", " --- phi-based termination criteria check --- \n", "...phiredstp: 0.01\n", "...nphistp: 3\n", "...nphinored (also used for consecutive bad lambda cycles): 3\n", "...best mean phi sequence: 1.60372e+14 , 2.60373e+11 , 2.60372e+11 , 2.60363e+11 , 2.60353e+11 , 2.60352e+11 , 2.60352e+11 , \n", " 2.60352e+11 , 2.60352e+11 , 2.60352e+11 , 2.60352e+11 , 2.60352e+11 , 2.60352e+11 , \n", " 2.60352e+11 , 2.60352e+11 , 2.60352e+11 , 2.60352e+11 , 2.60352e+11 , 2.60352e+11 , \n", " 2.60352e+11 , 2.60352e+11 , \n", "...best phi yet: 2.60352e+11\n", "...number of consecutive bad lambda testing cycles: 0\n", "...number of iterations satisfying phiredstp criteria: 1\n", "...number of iterations since best yet mean phi: 0\n", "\n", " --- starting solve for iteration: 21 --- \n", "...current lambda: 0.000317121\n", "...starting calcs for glm factor 3.17121e-05\n", "...finished calcs for: 3.17121e-05\n", "...starting calcs for glm factor 0.000317121\n", "...finished calcs for: 0.000317121\n", "...starting calcs for glm factor 0.00317121\n", "...finished calcs for: 0.00317121\n", "\n", " --- running upgrade ensembles --- \n", "...subset idx:pe real name: 0:BASE, 8:145, 21:23, 43:168, 65:116, 81:131, 94:97, 95:212, 100:161, 107:123, 118:74, 128:56, 136:136, 143:243, 157:91, 162:76, 166:6, 195:71, 199:72, 203:216, 204:224, 220:64, 240:156, 241:159, 247:229, \n", "...subset idx:oe real name: 0:BASE, 8:145, 21:23, 43:168, 65:116, 81:131, 94:97, 95:212, 100:161, 107:123, 118:74, 128:56, 136:136, 143:243, 157:91, 162:76, 166:6, 195:71, 199:72, 203:216, 204:224, 220:64, 240:156, 241:159, 247:229, \n", " running model 225 times\n", " starting at 09/30/25 16:44:51\n", " 8 agents ready\n", "\n", "\n", "PANTHER progress\n", " avg = average model run time in minutes\n", " runs(C = completed | F = failed | T = timed out)\n", " agents(R = running | W = waiting | U = unavailable)\n", "--------------------------------------------------------------------------------\n", "09/30 16:44:59 remaining file transfers: 0 \n", "\n", " 225 runs complete : 0 runs failed\n", " 0.00347 avg run time (min) : 0.146 run mgr time (min)\n", " 8 agents connected\n", "\n", "\n", "\n", " --- evaluating upgrade ensembles --- \n", "...last mean: 2.60352e+11\n", "...last stdev: 0.0730336\n", "\n", " --- phi summary for best lambda, scale fac: 3.17121e-05 , 1.1 , --- \n", " phi type mean std min max\n", " actual 2.60352e+11 0.0727725 2.60352e+11 2.60352e+11\n", "\n", " --- running remaining realizations for best lambda, scale:3.17121e-05 , 1.1 , --- \n", " running model 226 times\n", " starting at 09/30/25 16:44:59\n", " 8 agents ready\n", "\n", "\n", "PANTHER progress\n", " avg = average model run time in minutes\n", " runs(C = completed | F = failed | T = timed out)\n", " agents(R = running | W = waiting | U = unavailable)\n", "--------------------------------------------------------------------------------\n", "09/30 16:45:06 remaining file transfers: 0 \n", "\n", " 226 runs complete : 0 runs failed\n", " 0.00347 avg run time (min) : 0.118 run mgr time (min)\n", " 8 agents connected\n", "\n", "\n", "...phi summary for entire ensemble using lambda,scale_fac 3.17121e-05 , 1.1 , \n", " phi type mean std min max\n", " actual 2.60352e+11 0.0672609 2.60352e+11 2.60352e+11\n", "...last best mean phi * acceptable phi factor: 2.7337e+11\n", "...current best mean phi: 2.60352e+11\n", "\n", " --- updating parameter ensemble --- \n", "\n", " --- updating lambda to 2.37841e-05 --- \n", "\n", " --- EnsembleMethod iteration 21 report --- \n", " number of active realizations: 251\n", " number of model runs: 9722\n", " current obs ensemble saved to pest.21.obs.csv\n", " current par ensemble saved to pest.21.par.csv\n", "saved par and rei files for realization BASE for iteration 21\n", "saved par and rei files for realization BASE\n", " phi type mean std min max\n", " actual 2.60352e+11 0.0672609 2.60352e+11 2.60352e+11\n", " --- observation group phi summary --- \n", " (computed using 'actual' phi)\n", " (sorted by mean phi)\n", "group count nconflict mean std min max percent std\n", "oname:simulation.csv_otype:lst_usecol:observations 101 101 2.6e+11 0.0673 2.6e+11 2.6e+11 100 2.96e-14\n", " Note: 'percent' is the percentage of the actual phi for each realization.\n", "\n", "\n", " --- parameter group change summmary --- \n", "group count mean chg std chg n at ubnd % at ubnd n at lbnd % at lbnd n std decr\n", "optimal 2 6.169 100 0 0 0 0 2\n", " Note: parameter change summary sorted according to percent at bounds.\n", " Note: the parameter change statistics implicitly include the effect of \n", " realizations that have failed or have been dropped.\n", " Note: the 'n std decr' is the number of parameters with current\n", " std less 5% of their initial std.\n", "\n", "...saved parameter change summary to pest.21.pcs.csv\n", "\n", " --- phi-based termination criteria check --- \n", "...phiredstp: 0.01\n", "...nphistp: 3\n", "...nphinored (also used for consecutive bad lambda cycles): 3\n", "...best mean phi sequence: 1.60372e+14 , 2.60373e+11 , 2.60372e+11 , 2.60363e+11 , 2.60353e+11 , 2.60352e+11 , 2.60352e+11 , \n", " 2.60352e+11 , 2.60352e+11 , 2.60352e+11 , 2.60352e+11 , 2.60352e+11 , 2.60352e+11 , \n", " 2.60352e+11 , 2.60352e+11 , 2.60352e+11 , 2.60352e+11 , 2.60352e+11 , 2.60352e+11 , \n", " 2.60352e+11 , 2.60352e+11 , 2.60352e+11 , \n", "...best phi yet: 2.60352e+11\n", "...number of consecutive bad lambda testing cycles: 0\n", "...number of iterations satisfying phiredstp criteria: 1\n", "...number of iterations since best yet mean phi: 0\n", "\n", " --- starting solve for iteration: 22 --- \n", "...current lambda: 2.37841e-05\n", "...starting calcs for glm factor 2.37841e-06\n", "...finished calcs for: 2.37841e-06\n", "...starting calcs for glm factor 2.37841e-05\n", "...finished calcs for: 2.37841e-05\n", "...starting calcs for glm factor 0.000237841\n", "...finished calcs for: 0.000237841\n", "\n", " --- running upgrade ensembles --- \n", "...subset idx:pe real name: 0:BASE, 10:74, 32:143, 35:147, 36:189, 41:158, 42:231, 43:96, 44:38, 57:149, 75:57, 76:211, 82:14, 95:134, 100:146, 101:153, 113:28, 114:15, 130:66, 164:233, 174:121, 206:102, 217:48, 219:239, 223:1, \n", "...subset idx:oe real name: 0:BASE, 10:74, 32:143, 35:147, 36:189, 41:158, 42:231, 43:96, 44:38, 57:149, 75:57, 76:211, 82:14, 95:134, 100:146, 101:153, 113:28, 114:15, 130:66, 164:233, 174:121, 206:102, 217:48, 219:239, 223:1, \n", " running model 225 times\n", " starting at 09/30/25 16:45:07\n", " 8 agents ready\n", "\n", "\n", "PANTHER progress\n", " avg = average model run time in minutes\n", " runs(C = completed | F = failed | T = timed out)\n", " agents(R = running | W = waiting | U = unavailable)\n", "--------------------------------------------------------------------------------\n", "09/30 16:45:14 remaining file transfers: 0 \n", "\n", " 225 runs complete : 0 runs failed\n", " 0.00348 avg run time (min) : 0.119 run mgr time (min)\n", " 8 agents connected\n", "\n", "\n", "\n", " --- evaluating upgrade ensembles --- \n", "...last mean: 2.60352e+11\n", "...last stdev: 0.0672609\n", "\n", " --- phi summary for best lambda, scale fac: 2.37841e-05 , 1.1 , --- \n", " phi type mean std min max\n", " actual 2.60352e+11 0.0543614 2.60352e+11 2.60352e+11\n", "\n", " --- running remaining realizations for best lambda, scale:2.37841e-05 , 1.1 , --- \n", " running model 226 times\n", " starting at 09/30/25 16:45:14\n", " 8 agents ready\n", "\n", "\n", "PANTHER progress\n", " avg = average model run time in minutes\n", " runs(C = completed | F = failed | T = timed out)\n", " agents(R = running | W = waiting | U = unavailable)\n", "--------------------------------------------------------------------------------\n", "09/30 16:45:21 remaining file transfers: 0 \n", "\n", " 226 runs complete : 0 runs failed\n", " 0.00349 avg run time (min) : 0.118 run mgr time (min)\n", " 8 agents connected\n", "\n", "\n", "...phi summary for entire ensemble using lambda,scale_fac 2.37841e-05 , 1.1 , \n", " phi type mean std min max\n", " actual 2.60352e+11 0.0623437 2.60352e+11 2.60352e+11\n", "...last best mean phi * acceptable phi factor: 2.7337e+11\n", "...current best mean phi: 2.60352e+11\n", "\n", " --- updating parameter ensemble --- \n", "\n", " --- updating lambda to 1.78381e-05 --- \n", "\n", " --- EnsembleMethod iteration 22 report --- \n", " number of active realizations: 251\n", " number of model runs: 10173\n", " current obs ensemble saved to pest.22.obs.csv\n", " current par ensemble saved to pest.22.par.csv\n", "saved par and rei files for realization BASE for iteration 22\n", "saved par and rei files for realization BASE\n", " phi type mean std min max\n", " actual 2.60352e+11 0.0623437 2.60352e+11 2.60352e+11\n", " --- observation group phi summary --- \n", " (computed using 'actual' phi)\n", " (sorted by mean phi)\n", "group count nconflict mean std min max percent std\n", "oname:simulation.csv_otype:lst_usecol:observations 101 101 2.6e+11 0.0623 2.6e+11 2.6e+11 100 3.22e-14\n", " Note: 'percent' is the percentage of the actual phi for each realization.\n", "\n", "\n", " --- parameter group change summmary --- \n", "group count mean chg std chg n at ubnd % at ubnd n at lbnd % at lbnd n std decr\n", "optimal 2 6.169 100 0 0 0 0 2\n", " Note: parameter change summary sorted according to percent at bounds.\n", " Note: the parameter change statistics implicitly include the effect of \n", " realizations that have failed or have been dropped.\n", " Note: the 'n std decr' is the number of parameters with current\n", " std less 5% of their initial std.\n", "\n", "...saved parameter change summary to pest.22.pcs.csv\n", "\n", " --- phi-based termination criteria check --- \n", "...phiredstp: 0.01\n", "...nphistp: 3\n", "...nphinored (also used for consecutive bad lambda cycles): 3\n", "...best mean phi sequence: 1.60372e+14 , 2.60373e+11 , 2.60372e+11 , 2.60363e+11 , 2.60353e+11 , 2.60352e+11 , 2.60352e+11 , \n", " 2.60352e+11 , 2.60352e+11 , 2.60352e+11 , 2.60352e+11 , 2.60352e+11 , 2.60352e+11 , \n", " 2.60352e+11 , 2.60352e+11 , 2.60352e+11 , 2.60352e+11 , 2.60352e+11 , 2.60352e+11 , \n", " 2.60352e+11 , 2.60352e+11 , 2.60352e+11 , 2.60352e+11 , \n", "...best phi yet: 2.60352e+11\n", "...number of consecutive bad lambda testing cycles: 0\n", "...number of iterations satisfying phiredstp criteria: 1\n", "...number of iterations since best yet mean phi: 0\n", "\n", " --- starting solve for iteration: 23 --- \n", "...current lambda: 1.78381e-05\n", "...starting calcs for glm factor 1.78381e-06\n", "...finished calcs for: 1.78381e-06\n", "...starting calcs for glm factor 1.78381e-05\n", "...finished calcs for: 1.78381e-05\n", "...starting calcs for glm factor 0.000178381\n", "...finished calcs for: 0.000178381\n", "\n", " --- running upgrade ensembles --- \n", "...subset idx:pe real name: 0:BASE, 10:57, 14:146, 25:145, 32:161, 71:27, 83:210, 88:63, 103:179, 115:230, 118:58, 120:41, 123:141, 129:150, 147:54, 157:43, 168:111, 175:35, 176:75, 188:67, 212:49, 228:22, 229:24, 233:59, 238:125, \n", "...subset idx:oe real name: 0:BASE, 10:57, 14:146, 25:145, 32:161, 71:27, 83:210, 88:63, 103:179, 115:230, 118:58, 120:41, 123:141, 129:150, 147:54, 157:43, 168:111, 175:35, 176:75, 188:67, 212:49, 228:22, 229:24, 233:59, 238:125, \n", " running model 225 times\n", " starting at 09/30/25 16:45:21\n", " 8 agents ready\n", "\n", "\n", "PANTHER progress\n", " avg = average model run time in minutes\n", " runs(C = completed | F = failed | T = timed out)\n", " agents(R = running | W = waiting | U = unavailable)\n", "--------------------------------------------------------------------------------\n", "09/30 16:45:28 remaining file transfers: 0 \n", "\n", " 225 runs complete : 0 runs failed\n", " 0.00348 avg run time (min) : 0.12 run mgr time (min)\n", " 8 agents connected\n", "\n", "\n", "\n", " --- evaluating upgrade ensembles --- \n", "...last mean: 2.60352e+11\n", "...last stdev: 0.0623437\n", "\n", " --- phi summary for best lambda, scale fac: 1.78381e-05 , 1.1 , --- \n", " phi type mean std min max\n", " actual 2.60352e+11 0.0559186 2.60352e+11 2.60352e+11\n", "\n", " --- running remaining realizations for best lambda, scale:1.78381e-05 , 1.1 , --- \n", " running model 226 times\n", " starting at 09/30/25 16:45:28\n", " 8 agents ready\n", "\n", "\n", "PANTHER progress\n", " avg = average model run time in minutes\n", " runs(C = completed | F = failed | T = timed out)\n", " agents(R = running | W = waiting | U = unavailable)\n", "--------------------------------------------------------------------------------\n", "09/30 16:45:37 remaining file transfers: 0 \n", "\n", " 226 runs complete : 0 runs failed\n", " 0.00347 avg run time (min) : 0.144 run mgr time (min)\n", " 8 agents connected\n", "\n", "\n", "...phi summary for entire ensemble using lambda,scale_fac 1.78381e-05 , 1.1 , \n", " phi type mean std min max\n", " actual 2.60352e+11 0.0581321 2.60352e+11 2.60352e+11\n", "...last best mean phi * acceptable phi factor: 2.7337e+11\n", "...current best mean phi: 2.60352e+11\n", "\n", " --- updating parameter ensemble --- \n", "\n", " --- updating lambda to 1.33786e-05 --- \n", "\n", " --- EnsembleMethod iteration 23 report --- \n", " number of active realizations: 251\n", " number of model runs: 10624\n", " current obs ensemble saved to pest.23.obs.csv\n", " current par ensemble saved to pest.23.par.csv\n", "saved par and rei files for realization BASE for iteration 23\n", "saved par and rei files for realization BASE\n", " phi type mean std min max\n", " actual 2.60352e+11 0.0581321 2.60352e+11 2.60352e+11\n", " --- observation group phi summary --- \n", " (computed using 'actual' phi)\n", " (sorted by mean phi)\n", "group count nconflict mean std min max percent std\n", "oname:simulation.csv_otype:lst_usecol:observations 101 101 2.6e+11 0.0581 2.6e+11 2.6e+11 100 3e-14\n", " Note: 'percent' is the percentage of the actual phi for each realization.\n", "\n", "\n", " --- parameter group change summmary --- \n", "group count mean chg std chg n at ubnd % at ubnd n at lbnd % at lbnd n std decr\n", "optimal 2 6.169 100 0 0 0 0 2\n", " Note: parameter change summary sorted according to percent at bounds.\n", " Note: the parameter change statistics implicitly include the effect of \n", " realizations that have failed or have been dropped.\n", " Note: the 'n std decr' is the number of parameters with current\n", " std less 5% of their initial std.\n", "\n", "...saved parameter change summary to pest.23.pcs.csv\n", "\n", " --- phi-based termination criteria check --- \n", "...phiredstp: 0.01\n", "...nphistp: 3\n", "...nphinored (also used for consecutive bad lambda cycles): 3\n", "...best mean phi sequence: 1.60372e+14 , 2.60373e+11 , 2.60372e+11 , 2.60363e+11 , 2.60353e+11 , 2.60352e+11 , 2.60352e+11 , \n", " 2.60352e+11 , 2.60352e+11 , 2.60352e+11 , 2.60352e+11 , 2.60352e+11 , 2.60352e+11 , \n", " 2.60352e+11 , 2.60352e+11 , 2.60352e+11 , 2.60352e+11 , 2.60352e+11 , 2.60352e+11 , \n", " 2.60352e+11 , 2.60352e+11 , 2.60352e+11 , 2.60352e+11 , 2.60352e+11 , \n", "...best phi yet: 2.60352e+11\n", "...number of consecutive bad lambda testing cycles: 0\n", "...number of iterations satisfying phiredstp criteria: 1\n", "...number of iterations since best yet mean phi: 0\n", "\n", " --- starting solve for iteration: 24 --- \n", "...current lambda: 1.33786e-05\n", "...starting calcs for glm factor 1.33786e-06\n", "...finished calcs for: 1.33786e-06\n", "...starting calcs for glm factor 1.33786e-05\n", "...finished calcs for: 1.33786e-05\n", "...starting calcs for glm factor 0.000133786\n", "...finished calcs for: 0.000133786\n", "\n", " --- running upgrade ensembles --- \n", "...subset idx:pe real name: 0:BASE, 21:22, 23:59, 28:189, 41:233, 44:48, 46:1, 49:116, 68:133, 74:3, 81:117, 87:142, 114:237, 118:32, 120:246, 145:18, 150:0, 189:195, 198:47, 203:126, 213:245, 224:181, 227:163, 232:39, 236:85, \n", "...subset idx:oe real name: 0:BASE, 21:22, 23:59, 28:189, 41:233, 44:48, 46:1, 49:116, 68:133, 74:3, 81:117, 87:142, 114:237, 118:32, 120:246, 145:18, 150:0, 189:195, 198:47, 203:126, 213:245, 224:181, 227:163, 232:39, 236:85, \n", " running model 225 times\n", " starting at 09/30/25 16:45:37\n", " 8 agents ready\n", "\n", "\n", "PANTHER progress\n", " avg = average model run time in minutes\n", " runs(C = completed | F = failed | T = timed out)\n", " agents(R = running | W = waiting | U = unavailable)\n", "--------------------------------------------------------------------------------\n", "09/30 16:45:44 remaining file transfers: 0 \n", "\n", " 225 runs complete : 0 runs failed\n", " 0.00348 avg run time (min) : 0.12 run mgr time (min)\n", " 8 agents connected\n", "\n", "\n", "\n", " --- evaluating upgrade ensembles --- \n", "...last mean: 2.60352e+11\n", "...last stdev: 0.0581321\n", "\n", " --- phi summary for best lambda, scale fac: 1.33786e-05 , 1.1 , --- \n", " phi type mean std min max\n", " actual 2.60352e+11 0.0535366 2.60352e+11 2.60352e+11\n", "\n", " --- running remaining realizations for best lambda, scale:1.33786e-05 , 1.1 , --- \n", " running model 226 times\n", " starting at 09/30/25 16:45:44\n", " 8 agents ready\n", "\n", "\n", "PANTHER progress\n", " avg = average model run time in minutes\n", " runs(C = completed | F = failed | T = timed out)\n", " agents(R = running | W = waiting | U = unavailable)\n", "--------------------------------------------------------------------------------\n", "09/30 16:45:51 remaining file transfers: 0 \n", "\n", " 226 runs complete : 0 runs failed\n", " 0.00347 avg run time (min) : 0.118 run mgr time (min)\n", " 8 agents connected\n", "\n", "\n", "...phi summary for entire ensemble using lambda,scale_fac 1.33786e-05 , 1.1 , \n", " phi type mean std min max\n", " actual 2.60352e+11 0.0544058 2.60352e+11 2.60352e+11\n", "...last best mean phi * acceptable phi factor: 2.7337e+11\n", "...current best mean phi: 2.60352e+11\n", "\n", " --- updating parameter ensemble --- \n", "\n", " --- updating lambda to 1.00339e-05 --- \n", "\n", " --- EnsembleMethod iteration 24 report --- \n", " number of active realizations: 251\n", " number of model runs: 11075\n", " current obs ensemble saved to pest.24.obs.csv\n", " current par ensemble saved to pest.24.par.csv\n", "saved par and rei files for realization BASE for iteration 24\n", "saved par and rei files for realization BASE\n", " phi type mean std min max\n", " actual 2.60352e+11 0.0544058 2.60352e+11 2.60352e+11\n", " --- observation group phi summary --- \n", " (computed using 'actual' phi)\n", " (sorted by mean phi)\n", "group count nconflict mean std min max percent std\n", "oname:simulation.csv_otype:lst_usecol:observations 101 101 2.6e+11 0.0544 2.6e+11 2.6e+11 100 3.18e-14\n", " Note: 'percent' is the percentage of the actual phi for each realization.\n", "\n", "\n", " --- parameter group change summmary --- \n", "group count mean chg std chg n at ubnd % at ubnd n at lbnd % at lbnd n std decr\n", "optimal 2 6.169 100 0 0 0 0 2\n", " Note: parameter change summary sorted according to percent at bounds.\n", " Note: the parameter change statistics implicitly include the effect of \n", " realizations that have failed or have been dropped.\n", " Note: the 'n std decr' is the number of parameters with current\n", " std less 5% of their initial std.\n", "\n", "...saved parameter change summary to pest.24.pcs.csv\n", "\n", " --- phi-based termination criteria check --- \n", "...phiredstp: 0.01\n", "...nphistp: 3\n", "...nphinored (also used for consecutive bad lambda cycles): 3\n", "...best mean phi sequence: 1.60372e+14 , 2.60373e+11 , 2.60372e+11 , 2.60363e+11 , 2.60353e+11 , 2.60352e+11 , 2.60352e+11 , \n", " 2.60352e+11 , 2.60352e+11 , 2.60352e+11 , 2.60352e+11 , 2.60352e+11 , 2.60352e+11 , \n", " 2.60352e+11 , 2.60352e+11 , 2.60352e+11 , 2.60352e+11 , 2.60352e+11 , 2.60352e+11 , \n", " 2.60352e+11 , 2.60352e+11 , 2.60352e+11 , 2.60352e+11 , 2.60352e+11 , 2.60352e+11 , \n", " \n", "...best phi yet: 2.60352e+11\n", "...number of consecutive bad lambda testing cycles: 0\n", "...number of iterations satisfying phiredstp criteria: 1\n", "...number of iterations since best yet mean phi: 0\n", "\n", " --- starting solve for iteration: 25 --- \n", "...current lambda: 1.00339e-05\n", "...starting calcs for glm factor 1.00339e-06\n", "...finished calcs for: 1.00339e-06\n", "...starting calcs for glm factor 1.00339e-05\n", "...finished calcs for: 1.00339e-05\n", "...starting calcs for glm factor 0.000100339\n", "...finished calcs for: 0.000100339\n", "\n", " --- running upgrade ensembles --- \n", "...subset idx:pe real name: 0:BASE, 25:57, 50:158, 63:102, 65:23, 69:212, 72:136, 84:229, 108:51, 120:148, 125:46, 135:187, 139:29, 162:152, 164:86, 165:11, 179:177, 193:34, 197:203, 198:220, 205:106, 238:110, 242:154, 246:206, 248:232, \n", "...subset idx:oe real name: 0:BASE, 25:57, 50:158, 63:102, 65:23, 69:212, 72:136, 84:229, 108:51, 120:148, 125:46, 135:187, 139:29, 162:152, 164:86, 165:11, 179:177, 193:34, 197:203, 198:220, 205:106, 238:110, 242:154, 246:206, 248:232, \n", " running model 225 times\n", " starting at 09/30/25 16:45:51\n", " 8 agents ready\n", "\n", "\n", "PANTHER progress\n", " avg = average model run time in minutes\n", " runs(C = completed | F = failed | T = timed out)\n", " agents(R = running | W = waiting | U = unavailable)\n", "--------------------------------------------------------------------------------\n", "09/30 16:45:58 remaining file transfers: 0 \n", "\n", " 225 runs complete : 0 runs failed\n", " 0.00348 avg run time (min) : 0.12 run mgr time (min)\n", " 8 agents connected\n", "\n", "\n", "\n", " --- evaluating upgrade ensembles --- \n", "...last mean: 2.60352e+11\n", "...last stdev: 0.0544058\n", "\n", " --- phi summary for best lambda, scale fac: 1.00339e-06 , 1.1 , --- \n", " phi type mean std min max\n", " actual 2.60352e+11 0.0581071 2.60352e+11 2.60352e+11\n", "\n", " --- running remaining realizations for best lambda, scale:1.00339e-06 , 1.1 , --- \n", " running model 226 times\n", " starting at 09/30/25 16:45:58\n", " 8 agents ready\n", "\n", "\n", "PANTHER progress\n", " avg = average model run time in minutes\n", " runs(C = completed | F = failed | T = timed out)\n", " agents(R = running | W = waiting | U = unavailable)\n", "--------------------------------------------------------------------------------\n", "09/30 16:46:07 remaining file transfers: 0 \n", "\n", " 226 runs complete : 0 runs failed\n", " 0.00348 avg run time (min) : 0.144 run mgr time (min)\n", " 8 agents connected\n", "\n", "\n", "...phi summary for entire ensemble using lambda,scale_fac 1.00339e-06 , 1.1 , \n", " phi type mean std min max\n", " actual 2.60352e+11 0.0511893 2.60352e+11 2.60352e+11\n", "...last best mean phi * acceptable phi factor: 2.7337e+11\n", "...current best mean phi: 2.60352e+11\n", "\n", " --- updating parameter ensemble --- \n", "\n", " --- updating lambda to 7.52543e-07 --- \n", "\n", " --- EnsembleMethod iteration 25 report --- \n", " number of active realizations: 251\n", " number of model runs: 11526\n", " current obs ensemble saved to pest.25.obs.csv\n", " current par ensemble saved to pest.25.par.csv\n", "saved par and rei files for realization BASE for iteration 25\n", "saved par and rei files for realization BASE\n", " phi type mean std min max\n", " actual 2.60352e+11 0.0511893 2.60352e+11 2.60352e+11\n", " --- observation group phi summary --- \n", " (computed using 'actual' phi)\n", " (sorted by mean phi)\n", "group count nconflict mean std min max percent std\n", "oname:simulation.csv_otype:lst_usecol:observations 101 101 2.6e+11 0.0512 2.6e+11 2.6e+11 100 3e-14\n", " Note: 'percent' is the percentage of the actual phi for each realization.\n", "\n", "\n", " --- parameter group change summmary --- \n", "group count mean chg std chg n at ubnd % at ubnd n at lbnd % at lbnd n std decr\n", "optimal 2 6.169 100 0 0 0 0 2\n", " Note: parameter change summary sorted according to percent at bounds.\n", " Note: the parameter change statistics implicitly include the effect of \n", " realizations that have failed or have been dropped.\n", " Note: the 'n std decr' is the number of parameters with current\n", " std less 5% of their initial std.\n", "\n", "...saved parameter change summary to pest.25.pcs.csv\n", "\n", " --- phi-based termination criteria check --- \n", "...phiredstp: 0.01\n", "...nphistp: 3\n", "...nphinored (also used for consecutive bad lambda cycles): 3\n", "...best mean phi sequence: 1.60372e+14 , 2.60373e+11 , 2.60372e+11 , 2.60363e+11 , 2.60353e+11 , 2.60352e+11 , 2.60352e+11 , \n", " 2.60352e+11 , 2.60352e+11 , 2.60352e+11 , 2.60352e+11 , 2.60352e+11 , 2.60352e+11 , \n", " 2.60352e+11 , 2.60352e+11 , 2.60352e+11 , 2.60352e+11 , 2.60352e+11 , 2.60352e+11 , \n", " 2.60352e+11 , 2.60352e+11 , 2.60352e+11 , 2.60352e+11 , 2.60352e+11 , 2.60352e+11 , \n", " 2.60352e+11 , \n", "...best phi yet: 2.60352e+11\n", "...number of consecutive bad lambda testing cycles: 0\n", "...number of iterations satisfying phiredstp criteria: 1\n", "...number of iterations since best yet mean phi: 0\n", "\n", "\n", "pestpp-ies analysis complete...\n", "started at 09/30/25 16:39:40\n", "finished at 09/30/25 16:46:07\n", "took 6.13333 minutes\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "/home/vonkm/.local/share/uv/python/cpython-3.13.5-linux-x86_64-gnu/lib/python3.13/multiprocessing/popen_fork.py:67: DeprecationWarning: This process (pid=274580) is multi-threaded, use of fork() may lead to deadlocks in the child.\n" ] }, { "data": { "text/html": [ "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "
<xarray.Dataset> Size: 6MB\n",
       "Dimensions:       (iteration: 26, real_name: 251, pname: 2, oname: 101)\n",
       "Coordinates:\n",
       "  * iteration     (iteration) int64 208B 0 1 2 3 4 5 6 ... 19 20 21 22 23 24 25\n",
       "  * real_name     (real_name) object 2kB '0' '1' '2' '3' ... '248' '249' 'base'\n",
       "  * pname         (pname) <U3 24B 'p_0' 'p_1'\n",
       "  * oname         (oname) datetime64[ns] 808B 1970-01-01 ... 1970-01-01T00:00...\n",
       "Data variables:\n",
       "    par           (iteration, real_name, pname) float64 104kB 5.518 ... 0.9735\n",
       "    obs           (iteration, real_name, oname) float64 5MB 5.518 ... 5.989\n",
       "    phi           (iteration, real_name) float64 52kB 2.262e+13 ... 2.604e+11\n",
       "    observations  (real_name, oname) float64 203kB 5.012 5.038 ... 5.905 5.97\n",
       "    weights       (real_name, oname) float64 203kB 1e+06 1e+06 ... 1e+06 1e+06
" ], "text/plain": [ " Size: 6MB\n", "Dimensions: (iteration: 26, real_name: 251, pname: 2, oname: 101)\n", "Coordinates:\n", " * iteration (iteration) int64 208B 0 1 2 3 4 5 6 ... 19 20 21 22 23 24 25\n", " * real_name (real_name) object 2kB '0' '1' '2' '3' ... '248' '249' 'base'\n", " * pname (pname) " ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig, ax = plt.subplots(figsize=(6.75, 4.0))\n", "ax.plot(\n", " y_n.index,\n", " ds_nn[\"obs\"].isel(iteration=-1).values.T,\n", " color=\"C0\",\n", " alpha=0.1,\n", " label=\"iES\",\n", ")\n", "ax.plot(x, y_n, label=\"Observations\", color=\"k\", marker=\".\", linestyle=\"none\")\n", "ax.plot(\n", " x, ml_sp_n.simulate(), color=\"C1\", linestyle=\"--\", label=\"SciPy Linear Regression\"\n", ")\n", "lower_bound, upper_bound = ml_sp_n.solver.ci_sim()\n", "ax.fill_between(\n", " x,\n", " lower_bound,\n", " upper_bound,\n", " color=\"C1\",\n", " alpha=0.3,\n", " label=f\"{0.95:0.0%} Confidence Interval\",\n", " zorder=10,\n", ")\n", "handles, labels = ax.get_legend_handles_labels()\n", "ax.legend(handles[-4:], labels[-4:])\n", "ax.grid(True)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Parameter estimates" ] }, { "cell_type": "code", "execution_count": 25, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 25, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "mosaic = [[\"p_0\"], [\"p_1\"]]\n", "f, axd = plt.subplot_mosaic(\n", " mosaic,\n", " figsize=(7.0, 6.0),\n", " sharex=True,\n", " layout=\"tight\",\n", ")\n", "scipy_ci = ml_sp_n.solver.ci()\n", "for i, pname in enumerate(axd):\n", " par = ds_nn[\"par\"].sel(pname=pname)\n", " parq = par.quantile(\n", " [0.025, 0.975], dim=\"real_name\", skipna=True\n", " ) # .values.reshape(2, -1)\n", " axd[pname].fill_between(\n", " parq[\"iteration\"],\n", " parq.values[0],\n", " parq.values[1],\n", " color=\"C0\",\n", " label=\"iES 95% CI\",\n", " linewidth=2.0,\n", " )\n", "\n", " scipy_opt = ml_sp_n.parameters.at[pname, \"optimal\"]\n", " axd[pname].axhline(\n", " scipy_opt,\n", " color=\"C1\",\n", " alpha=1.0,\n", " linewidth=2.0,\n", " label=\"SciPy 95% CI\\n(no iterations)\",\n", " )\n", " axd[pname].fill_between(\n", " x=[0.0, ml_ies_pp_n.noptmax],\n", " y1=[scipy_opt - scipy_ci[i], scipy_opt - scipy_ci[i]],\n", " y2=[scipy_opt + scipy_ci[i], scipy_opt + scipy_ci[i]],\n", " color=\"C1\",\n", " alpha=0.5,\n", " )\n", " axd[pname].xaxis.set_major_locator(mpl.ticker.MultipleLocator(10.0))\n", " axd[pname].xaxis.set_minor_locator(mpl.ticker.MultipleLocator(1.0))\n", " axd[pname].set_ylim(parq.sel(iteration=1))\n", " axd[pname].set_ylabel(pname)\n", " axd[pname].set_xlabel(\"Iteration\") if \"p_1\" in pname else None\n", " axd[pname].set_xlim(0, ml_ies_pp_n.noptmax)\n", "axd[\"p_0\"].legend()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Response surface" ] }, { "cell_type": "code", "execution_count": 26, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 26, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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RwSn3N/sASb31Mf18IMHZllSw9fXF19fX9auXUujRo3w8PBIdoymabRr147IyEi++uorypUrx4kTJzCZTMLx7+Pl5YWmadhsNvr168egQYOYPXt24vm++uorihcvTsuWLVPsb7FYki21eXl5sWfPHqxWK25ubgBERUVRqlQpNE2jTp06TJs2jWrVqgFQo0YNzpw5w5UrV9B1nTNnzlC9enXOnz/P8uXL2b9/f5oey9dff02lSpV49tlnk7UpikJAQECar4skdyGTJolEInEESyTMKJH+/gsbpK/fqKvg6S88zGw2s2LFCvr378/ixYupU6cOzZo148UXX6RmzZoAbNiwgT179nDy5EkqVqwIQNmyZdMcytmzZ1m8eDH16tXDz8+PLl26MGjQIH7++We6desGJOiRevfunWQ57UHatGnDsmXL6NSpE3Xq1GH//v0sW7YMq9XKnTt3KFq0KJUqVeLzzz+nZs2ahIeH8+GHH/LYY49x/PhxAgMDqVKlCtOmTaNVq1YATJ8+nSpVqvDUU08xc+ZM1q1bx8SJE3Fzc+Ojjz7iiSeeSPXxVKpUKc2PX+I6yKRJIpFIHMHDLyGBSQ2jmaaFDeDNPeDhm7w9LTNNaeS5556jffv2bN26lV27dvHnn38yc+ZMli1bRu/evTl06BCBgYGJCVNaCA8Px9fXF03TiIuLo2nTpixbtgwAT09PXnnlFT7//HO6devGgQMHOHbsGL/88kuq440bN46QkBAaNWqErusULlyYXr16MXPmTFQ1Yc9S48aNady4cWKfxx57jCpVqvDpp58yZcoUAAYMGMCAAQMSj/niiy/w8/OjcePGVKpUib1793Lt2jVefPFFLl68mOLMm67rab4OEtdCJk0SiUTiCIqSphmfZMRFJPzfv2j6+j8inp6etGrVilatWjFu3Dj69evHhAkT6N27dzKRd1rw8/PjwIEDqKpK0aJFk43Rr18/ateuzbVr11i+fDktW7akVKlSqY7n5eXF559/zqeffsrNmzcpWrQoS5Yswc/Pj4IFC6bYx83NjaCgIM6dO5di+507d5g0aRJbtmxh9+7dVKxYkQoVKlChQgWsVitnzpyhRo0ayfpVrFiRU6dOPcLVkLgK0nJAIpFIXJCqVasSHR0NQM2aNbl27VoSWwERqqpSvnx5ypYtm2LSVaNGDerVq8fSpUv55ptv6Nu3b5rGdXNzIzAwEJPJxHfffUeHDh0SZ5oexm63c/ToUYoWLZpi+9ChQxk6dCiBgYHY7XasVmtim81mw263p9ivR48enDlzhp9//jlZm67rhIeHp+mxSHIfcqZJIpFIcjGhoaF07dqVvn37UrNmTfz8/Ni3bx8zZ85MFDo3a9aMJ554gueee445c+ZQvnx5Tp06haIotG3bNt3nvi8I9/HxoXPnzobHnjlzhj179tCwYUPu3bvHnDlzOHbsGF988UXiMZMnT6ZRo0aUL1+esLAwZs2axeXLl+nXr1+y8f7++2/OnDmT2L9+/fqcOnWKP//8k6tXr2IymVLVLXXr1o2ffvqJ7t27M3bsWFq3bk3BggU5evQoc+fOZfDgwdJywEWRSZNEIpHkYnx9fWnYsCFz587l/PnzWK1WSpQoQf/+/XnvvfcSj/vxxx8ZMWIE3bt3Jzo6mvLlyzNjxgyHzt29e3eGDBlC9+7dk+2Mexi73c7s2bM5ffo0bm5utGjRgh07dlC6dOnEY+7du0f//v0JCQkhb9681K1blx07dlC1atUkY8XGxjJo0CC+//77xFmqwMBAPvnkE/r06YOHhwdffPFFqsuSiqLwzTffsGTJEj7//HOmTp2K2WymQoUK9OzZkzZt2jh0XSQ5F0WXijeJRCLJeuIiEnbdpXEXXE7k0qVLlCtXjr1791KnTh1nhyOROIycaZJIJBJnYPaAZqMS/p/LsFqthIaGMnbsWBo1aiQTJkmuQc40SSQSiSRD2bx5My1atKBixYqsXr06xR1qEklORCZNEolEIpFIJGlAWg5IJBKJRCKRpAGZNEkkEolEIpGkAZk0SSQSiUQikaQBmTRJJBKJRCKRpAGZNEkkEokTsNjszP37DBZbyqU8JBJJ9kMmTRKJROIE4m0aH/1zlniblunnat68OUOGDMn080gkuR2ZNEkkEkkuZ82aNUyZMiXx7+bNm6MoSrLbgAEDEo/5999/admyJfny5cPb25sKFSrQq1cv4uPjUz3P+fPn6dy5MwULFsTf359u3bpx8+bNJMeULl062XkfLNdy6dIlnnjiCXx8fHjiiSe4dOlSkv4dOnTgxx9/TNPjPnfuHH369CEwMBAPDw/KlClD9+7d2bdvX+IxiqKwdu3aNI0nkcikSSKRSHI5+fLlw8/PL8l9/fv3Jzg4OMlt5syZAJw4cYK2bdtSr149tmzZwtGjR/nkk09wd3fHbk95OTE6OprWrVujKAobN25k+/btxMfH07FjRzQt6Wza5MmTk5x38ODBiW3Dhw+nePHiHDp0iKJFizJixIjEtvu15J577jnhY963bx9169blzJkzfPrpp5w4cYKffvqJypUrM3z48DRfO4nkQWQZFYlEIsnlNG/enNq1azNv3rzE+7y9vSlSpEiKx69fv54iRYokJlEA5cqVo23btqmeY/v27Vy6dImDBw/i759QS++LL74gb968bNy4kaeeeirxWD8/v1TPffLkSebMmUOFChXo3bt3YtIUFhbG2LFj2bhxo/Dx6rpO7969qVChAlu3bk0s2gtQu3Zt3n77beEYEklKyJkmiUQikSShSJEiBAcHs2XLljT3sVgsKIqCh8f/a+l5enqiqirbtm1LcuyMGTPInz8/QUFBzJo1C5vNlthWq1YtNmzYgKZprF+/npo1awLwzjvvMHDgQEqUKCGM5dChQxw/fpzhw4cnSZjukydPnjQ/LonkQWTSJMnRnD17ltatWxMQECC1CRKnoOs6kXHWVG+hURaCw2KT3W6GxwFwMzwuxfbQKIvhuI5WwFq4cCG+vr5Jbl9//TUAXbt2pXv37jRr1oyiRYvSuXNn5s+fT0RERKrjNWrUCB8fH959911iYmKIjo5mxIgR2O12goODE4976623+O6779i0aROvv/4606ZNY+TIkYntH374IadOnaJ06dKcPXuWDz/8kC1btnDo0CF69uxJt27dKFu2LAMGDEhVX3X27FkAKleu7NA1kkgexmVrz61YsYI+ffok/m0ymShcuDCtWrVi6tSpFC9e3InR5Vxu377N+++/z7p167h8+TJ+fn6ULl2aFi1aMG7cOHx9fTP0fI899hgXL15kzJgx5MmTh+bNmxMYGJih55BIjIiMs1Jj4vosP+/Ria3x83RL07EPL881b96cMmXKMGbMmCTHFS5cOIn26fr162zcuJHdu3ezZs0aTCYTe/bsoWjRoimeZ/369bzxxhtcvHgRVVXp3r07J06coEGDBixatCjFPp9//jmvv/46UVFRSWap7mOxWKhbty5ffPEFX3/9NeHh4SxevJi2bdvSqVOnJHqo+3z//fe8+OKLHDhwgKCgIMNroygKP/30E506dTI8TiIBqWli8uTJlClThri4OHbt2sWK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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "f, ax = plt.subplots(figsize=(6.75, 5.0))\n", "ax.set(\n", " xlim=(4.8, 5.2),\n", " ylim=(0.6, 1.4),\n", ")\n", "plot_response_surface(P0_n, P1_n, RSS_n, vmin=np.min(RSS_n), vmax=1e1, ax=ax)\n", "ax.axhline(a, color=\"k\", linewidth=0.5, linestyle=\"--\", label=\"True\")\n", "ax.axvline(b, color=\"k\", linewidth=0.5, linestyle=\"--\")\n", "\n", "traj_kwargs = {\n", " \"color\": \"w\",\n", " \"marker\": \".\",\n", " \"linewidth\": 0.5,\n", " \"markersize\": 2.0,\n", " \"alpha\": 0.2,\n", "}\n", "# for real in ds_n[\"par\"].real_name.values:\n", "# ax.plot(\n", "# ds_n[\"par\"].sel(pname=\"p_0\", real_name=real),\n", "# ds_n[\"par\"].sel(pname=\"p_1\", real_name=real),\n", "# **traj_kwargs,\n", "# )\n", "ax.plot(\n", " ds_nn[\"par\"].isel(iteration=-1).sel(pname=\"p_0\"),\n", " ds_nn[\"par\"].isel(iteration=-1).sel(pname=\"p_1\"),\n", " **traj_kwargs,\n", " linestyle=\"none\",\n", ")\n", "\n", "sp_ci = ml_sp_n.solver.ci()\n", "ax.errorbar(\n", " x=ml_sp_n.p_0,\n", " y=ml_sp_n.p_1,\n", " xerr=sp_ci[0],\n", " yerr=sp_ci[1],\n", " linewidth=0.8,\n", " color=\"C1\",\n", " label=\"SciPy 95% CI\",\n", ")\n", "\n", "ies_ci = ds_nn[\"par\"].isel(iteration=-1).quantile([0.025, 0.975], \"real_name\").values\n", "ies_base = ds_nn[\"par\"].isel(iteration=-1).sel(real_name=\"base\").values\n", "ax.errorbar(\n", " x=ies_base[0],\n", " y=ies_base[1],\n", " xerr=np.abs(ies_ci[:, [0]] - ies_base[0]),\n", " yerr=np.abs(ies_ci[:, [1]] - ies_base[1]),\n", " color=\"C0\",\n", " linewidth=0.8,\n", " label=\"iES 95% CI\",\n", ")\n", "ax.legend(loc=\"lower right\", bbox_to_anchor=(1.0, 1.0), frameon=False)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Loss function" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 27, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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depU/hNV6prIe8CyZctEkyZNhIeHh+jRo4f4/fffnd0lEkKMHDlShISECA8PD9GoUSMxcuRIce7cOWd3y6Xt2LFDACj2iImJEUIUlJR49913RVBQkFCpVKJfv37i9OnTzu20iynrPcrLyxOPPvqoaNCggXB3dxdNmzYVEyZMEBkZGc7utsso6b0BIFavXi3H5Ofni5dfflkEBAQItVothg4dKtLT053XaRdyt/fn4sWL4uGHHxaBgYFCpVKJVq1aif/7v/8TWq3WofNIt09GRERERNXMZdd4EREREdU0Jl5ERERENYSJFxEREVENYeJFREREVEOYeBERERHVECZeRERERDWEiRcRERFRDWHiRUS1XlRUFKZMmeLsbtiRJAmbNm1ydjeIqI5hAVUiqvVu3LgBd3d3+Pr6olmzZpgyZUqNJWIzZ87Epk2b5Huy2WRkZCAgIAAqlapG+kFE9waXvlcjEdUNgYGBVd6m0WiEh4dHhZ8fHBxchb0hIlfBqUYiqvVsU41RUVG4cOECXnvtNUiSBEmS5Jg9e/agd+/e8PLyQlhYGCZPngydTicfb9asGebMmYNnn30Wfn5+eOGFFwAAU6dORZs2baBWq9GiRQu8++67MJlMAIDExETMmjULR48elc+XmJgIoPhU4/Hjx9G3b194eXmhXr16eOGFF5CbmysfHzt2LIYMGYKFCxciJCQE9erVQ2xsrHwuInINTLyIqM749ttv0bhxY8yePRvp6elIT08HAKSmpmLAgAEYPnw4jh07hg0bNmDPnj2YNGmS3fMXLlyI8PBw/PHHH3j33XcBAL6+vkhMTERKSgr+9a9/ISEhAR999BEAYOTIkXj99dfRoUMH+XwjR44s1i+dTofo6GgEBATg4MGD2LhxI7Zt21bs/Dt27EBqaip27NiBzz//HImJiXIiR0SugVONRFRnBAYGQqlUwtfX126qb/78+Rg9erS87qt169ZYunQpIiMj8cknn8DT0xMA0LdvX7z++ut2bb7zzjvyz82aNcMbb7yBr776Cm+++Sa8vLzg4+MDNze3MqcW161bB71ejy+++ALe3t4AgOXLl2PQoEH44IMPEBQUBAAICAjA8uXLoVQqcd999+Hvf/87tm/fjgkTJlTJ74eIaj8mXkRU5x09ehTHjh3D2rVr5X1CCFitVqSlpaFdu3YAgG7duhV77oYNG7B06VKkpqYiNzcXZrMZfn5+Dp3/5MmTCA8Pl5MuAHjwwQdhtVpx+vRpOfHq0KEDlEqlHBMSEoLjx487dC4iqtuYeBFRnZebm4sXX3wRkydPLnasSZMm8s+FEyMA2LdvH0aPHo1Zs2YhOjoaGo0GX331FRYtWlQt/XR3d7fbliQJVqu1Ws5FRLUTEy8iqlM8PDxgsVjs9nXp0gUpKSlo1aqVQ2399ttvaNq0Kf75z3/K+y5cuHDX8xXVrl07JCYmQqfTycnd3r17oVAo0LZtW4f6RET3Ni6uJ6I6pVmzZkhKSsJff/2Fa9euASi4MvG3337DpEmTkJycjLNnz+L7778vtri9qNatW+PixYv46quvkJqaiqVLl+K7774rdr60tDQkJyfj2rVrMBgMxdoZPXo0PD09ERMTgxMnTmDHjh145ZVXMGbMGHmakYgIYOJFRHXM7Nmzcf78ebRs2RINGjQAAHTq1Am7du3CmTNn0Lt3b3Tu3BnTp09HaGhomW098cQTeO211zBp0iRERETgt99+k692tBk+fDgGDBiAPn36oEGDBli/fn2xdtRqNX766SfcuHED3bt3x5NPPol+/fph+fLlVffCieiewMr1RERERDWEI15ERERENYSJFxEREVENYeJFREREVEOYeBERERHVECZeRERERDWEiRcRERFRDWHiRURERFRDmHgRERER1RAmXkREREQ1hIkXERERUQ1h4kVERERUQ5h4EREREdWQ/w/M0na/xLqk6AAAAABJRU5ErkJggg==", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "f, ax = plt.subplots(figsize=(6.75, 3.0))\n", "ax.plot(ds_nn[\"phi\"].mean(\"real_name\") / weight**2, label=\"iES mean\")\n", "ax.fill_between(\n", " ds_nn[\"phi\"].iteration,\n", " ds_nn[\"phi\"].min(\"real_name\") / weight**2,\n", " ds_nn[\"phi\"].max(\"real_name\") / weight**2,\n", " color=\"C0\",\n", " alpha=0.2,\n", " label=\"iES min/max bounds\",\n", ")\n", "ax.axhline(ml_sp_n.rss(), color=\"C1\", linestyle=\"--\", label=\"SciPy RSS\")\n", "ax.semilogy()\n", "ax.set(\n", " xlim=(0, ml_ies_pp.noptmax),\n", " # ylim=(1e-4, 1e2),\n", " ylabel=\"Phi | RSS\",\n", " xlabel=\"iteration\",\n", ")\n", "ax.xaxis.set_major_locator(mpl.ticker.MultipleLocator(5.0))\n", "ax.xaxis.set_minor_locator(mpl.ticker.MultipleLocator(1.0))\n", "ax.legend()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "If no noise is added on the observations for each realizations. The confidence interval for PEST++ iES is too small and does not contain the true value anymore. " ] } ], "metadata": { "kernelspec": { "display_name": "pestas (3.13.5)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.13.5" } }, "nbformat": 4, "nbformat_minor": 2 }