pyemu icon indicating copy to clipboard operation
pyemu copied to clipboard

Implement pilot points without flopy

Open BJEANNOT0 opened this issue 3 years ago • 2 comments

Hello,

I want to do a parameter estimation with Pest++ and would like to use pilot points in order to reduce the number of parameters. I was thinking about using pyemu for pilot points interpolation.

However, reading the documentation of pyemu, it seems that the use of pyemu for pilot points has been thought in a workflow that contains flopy==>modflow==>pest++. As far as I am concerned, the model I want to use pest++ on is not modflow, therefore I do not use flopy.

Therefore, my question is the following. Is it possible for me to use pyemu for pilot point interpolation although i am not using flopy nor modflow ? In detail, my problem is a the following : Considering a mesh with nn nodes and ne elements, with a mesh file that enables me to access to coordinates of center of elements, i want npp = 200 pilot points to be defined on the domain (which is not a square but a real domain). Among them, there are nkpp = 3 pilot points i want at specific locations.

Then, I want to be able to use the value of parameters at these 200 locations in order to interpolate values of parameters at each element.

I provide sample code below and attach sample inputs (a mesh file and a file containing locations whee i absolutely want a pilot point to be located). Could you please get me started on the way to use pyemu for this purpose ? I would like -to define pilot points uniformly on the domain, with 3 of them at specific locations -to use the value of parameters at the pilot points in order to interpolate the value of parameters at each elment of my mesh.

Thanks in advance for your help ! Here is the file containing the code :

Pilot_points.txt

Here are the inputs : mesh.txt known_pilot_points.txt

BJEANNOT0 avatar Nov 30 '21 12:11 BJEANNOT0

If you are using thePstFrom class, it can do unstructured pilot points. the key is you need to pass the spatial reference as a dict of node-tuple(xy) pairs so that it look up the location of nodes as needed. Then you can pass pp_space as a dataframe of pilot point name-xy info. There is an example of using a unstructured modflow model here:

https://github.com/pypest/pyemu/blob/a474ebd76d6822fed895957aaa52110bf0ab866c/autotest/pst_from_tests.py#L3020

admittedly Im no good with unstructured models but hopefully that will help you get going. There is likely better unstructured grid support in PEST groundwater utilities...

jtwhite79 avatar Dec 03 '21 01:12 jtwhite79

Thank you ! I will look into it. As you say, I also investigated PEST groundwater utilities and I may end up using PLPROC as well. I will post again when i manage to provide satisfactory results.

Bets regards,

BJEANNOT0 avatar Dec 03 '21 08:12 BJEANNOT0

Hi @BJEANNOT0, did this issue get sorted? @rhugman-intera, recently implemented some functionality for DISV grids in MF6 (#393 and #387) with a suggestion that DISU might support might not be too painful. If you were heading down the MF6 path.

briochh avatar Jan 18 '23 22:01 briochh