Skip to content

Conversation

@wkitlasten
Copy link
Collaborator

Some utilities to perform log-Euclidean interpolation of anisotropic variance tensors from conceptual points to a regular grid. Also performs spatial convolution to create non-stationary geostatistical fields from variance tensors. Uses pypestutils where possible, with fallback to python implementation of moving average if needed (e.g., pypestutils fieldgen2d_sva does not accept external iid fields).

…tensor and changed the config_func_str in pst_from to use it instead of value interpolation. this avoids issues with interpolating angles and I believe is more propa.
Copy link
Collaborator

@briochh briochh left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A lot of new stuff here @wkitlasten, it may sit better in its own module at some point (or in ppu). For now I would support bringing it into pyemu under a prototypes sub-module while under development and getting tests sorted out. I think you could create a new prototypes dir under pyemu:

prototypes/
|--tests/
|  nsaf_tests.py
|--src/
|  |--nsaf/
|     nsaf_utils.py
|     nsaf_helpers.py
|--examples/
|  |--Wairau/
|  |--HBHP/
|  pstfrom_mf6_ppu_tensor.ipynb

we can then add some specific GitHub Actions triggers (or just trigger requests) to run a specific suite over these without compromising the existing tests

# self.extra_py_imports.append("pypestutils")
print(config_df_filename)
config_func_str = "pyemu.utils.pp_utils.apply_ppu_hyperpars('{0}')".\
config_func_str = "pyemu.utils.pp_utils.apply_ppu_hyperpars_tensor('{0}')".\
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

breaks current non-stationary hyper par implementation... I think best to option "tensor" (at least until it is proven)

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

wondering if these nsaf funcs would fit better within pypestutils or a stand alone library (or submodule here). For now might be good to move into a prototypes submodule here. That way you we can keep reasonably contained (incl. dependancies) while refined and testing funcs better targeted.

import os
import matplotlib as mpl

mpl.use('Tkagg')
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this will cause failure on some CI platform (on import)

"import numpy as np\n",
"import pandas as pd\n",
"import matplotlib\n",
"matplotlib.use('Qt5Agg')\n",
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

CI might not like this line

Comment on lines +403 to +404
"shutil.copy(r'C:\\bin\\modflow\\mf6.6.2_win64\\bin\\mf6.exe', os.path.join(tmp_model_ws,'mf6.exe'))\n",
"shutil.copy(r'C:\\bin\\pestpp\\pestpp-ies.exe', os.path.join(tmp_model_ws,'pestpp-ies.exe'))\n",
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Will need to be smarter here with bin/exe definition for x-platform and CI

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

much safer to clean notebook outputs before adding to git!

@briochh briochh marked this pull request as draft December 15, 2025 22:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants