Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Jacobian matrix - Pest GLM #229

Open
Kumbaka opened this issue Jan 23, 2023 · 3 comments
Open

Jacobian matrix - Pest GLM #229

Kumbaka opened this issue Jan 23, 2023 · 3 comments

Comments

@Kumbaka
Copy link

Kumbaka commented Jan 23, 2023

Hi everybody !

I have a question about the construction of the Jacobian matrix.

The Jacobian matrix is not being filled, (the .jcb file is pretty much in blank!) so the calibration/inversion process of the model cannot go through due to that error.
The jacobian is all zeros and since store and write only non-zero entries (compressed storage), there is nothing to write.

I checked my input data, still didn’t find what is wrong.
I read that usually this kind of issue means something is up with my pest interface files. I tried more simpler parameter types like constant with all properties and boundary conditions and performed a
Simple prior based Monte Carlo to understand how changing the inputs results in changes in outputs.

image

I obtained this for 300 runs (phi plot), it seems that the PEST input files are not updated with the new values.
I built the model on ModelMuse, so I had to use external_path to write the input files by time_steps and layer.
Do you have any leads for me to explore?

Best regards,
Kadija KANE

@wkitlasten
Copy link
Contributor

Hi,

It looks like either your parameter values don't vary (check par bounds), or results of the forward model runs are not being updated.

Can you make a histogram for a few parameters from your ensemble to make sure you are getting distributions?

Check the instruction file section of the pest control file and make sure the instruction files are properly aligned with the model output files. I believe PEST deletes the obs files that correspond to the .ins files before each run, but you can do that manually as a test.

Make sure any scripts that process data from the forward run are accurately reflecting the forward run results. For example, the processing script may be writing the observation values rather than the simulation results.

@Kumbaka
Copy link
Author

Kumbaka commented Jan 26, 2023

HI !
So I generated a set of "priority parameters" (about 50) and printed some of them :
image
image

I get a lot of different parameter sets. I think the problem is that I am using an irregular structured grid, hence I can't use spectral simulation for grid-scale pars.
image

I had to refine an area so the structured grid is now irregular. and I can't do without this refinement, do you have a suggestion?

@wkitlasten
Copy link
Contributor

Hi, do you need the .values() when you are assigning parval1? I think I usually assign it with something like:

par=pst.parameter_data
par.loc[:, 'parval1'] = pe.loc[0,:].T

Which I believe ensures the index of par (parnme) and the columns of pe (also parnme) remain aligned. If you list them with par.loc[:,'parval1'] you can make sure the values are aligned with the parameters you think they should be aligned with.

If you can upload the model I will take a quick look.

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

No branches or pull requests

2 participants