gmdsi / GMDSI_notebooks

python-based predictive groundwater modeling workflow examples
GNU General Public License v3.0
48 stars 31 forks source link

Confirmation on the action of the `standard_deviation` column on drawing ensembles #118

Open Paszka1 opened 5 months ago

Paszka1 commented 5 months ago

I would like to get a confirmation about my understanding of how the method ObservationEnsemble.from_gaussian_draw() behaves. The description of the method in the online pyEMU documentation doesn't mention about the optional standard_deviation column in the 'observation data external' file. It only states that the draw will be based on weights if cov is missing. However, I understand based on section 9.1.6 of the PEST++ manual, on demo exercises and videos, that if a covariance matrix is not provided for this method and if the standard_deviation column is present, then weights will only be used for history matching purposes, and the standard_deviation column is used for all other purposes involving uncertainties (including drawing ensembles). Is this correct?

jtwhite79 commented 5 months ago

You are correct - the standard_deviation column in the external observation data is just a simple way to separate the weights and the noise. So if you dont provide a cov matrix (or noise realizations), both pest++ and pyemu will look for non-zero weighted observations that have a non-null standard_deviation values and use those in the noise draw. Here is where pyemu checks for it:

https://github.com/pypest/pyemu/blob/28549741a844c9b6d31a0415df862a7920328669/pyemu/mat/mat_handler.py#L3125