Description
PSimPy
(Predictive and probabilistic simulation with Python) implements
a Gaussian process emulation-based framework that enables systematically and
efficiently inverstigating uncertainties associated with physics-based models
(i.e. simulators).
Installation
PSimPy
is a pure Python package and can be easily installed using pip
. All
Python-related dependencies are automatically taken care of. It should be noted
that some modules of PSimPy
rely on / take advantage of non-Python package and
software. More specifically, the emulator module robustgasp.py
relies on the R
package RobustGaSP
; the simulator module ravaflow24.py
relies on the open
source software r.avaflow 2.4
. If you want to use these modules or any other
modules relying on these modules, corresponding non-Python dependencies need to
be installed.
If the simulator module ravaflow.py
is desired, you may follow the official
documentation of r.avaflow 2.4
under https://www.landslidemodels.org/r.avaflow/
to install it. The installation of the R package RobustGaSP
is covered in
following steps.
We recommond you to install PSimPy
in a virtual environment such as a conda
environment. You may want to first install Anaconda
or Miniconda
if you
haven't. The steps afterwards are as follows:
- Create a conda environment with Python 3.9:
conda create --name your_env_name python=3.9
- Install
R
if you don't have it on your machine (if you haveR
, you can skip this step; alternatively, you can still follow this step to installR
in the conda environment):
conda activate your_env_name
conda install -c conda-forge r-base=3.6
- Install the R package
RobustGaSP
in the R terminal:
R
install.packages("RobustGaSP",repos="https://cran.r-project.org",version="0.6.4")
Try if it is successfully installed by
library("RobustGaSP")
- Configure the environment variable
R_HOME
so thatrpy2
knows where to findR
packages. You can find yourR_HOME
by typing the following command in the R terminal:
R.home()
q()
It is a path like ".../lib/R". Set the environment variable R_HOME
in your
conda environment by
conda env config vars set R_HOME=your_R_HOME
Afterwards reactivate your conda environment to make the change take effect by
conda deactivate
conda activate your_env_name
- Install
PSimPy
usingpip
in your conda environment by
conda install -c conda-forge pip
pip install psimpy
Now you should have PSimPy
and its dependencies successfully installed in your
conda environment. You can use it in the Python terminal or in your Python IDE.
If you would like to use it with Jupyter Notebook (iPython Notebook), there is one extra step needed to set your conda environment on your Notebook:
- Install
ipykernel
and install a kernel that points to your conda environment by
conda install -c conda-forge ipykernel
python -m ipykernel install --user --name=your_env_name
Now you can start your Notebook, change the kernel to your conda environment, and
use PSimPy
.
Usage
Examples are currently in preparation and will be available soon in coming
versions. You may want to have a look at the tests which are currently available
at https://git-ce.rwth-aachen.de/mbd/psimpy. They give a glimpse of how PSimPy
can be used. You may download the tests
folder onto your local machine, and run
any test using pytest
.
First install pytest
by
conda activate your_env_name
conda install pytest
Then navigate to the folder where tests
folder is located on your machine.
You may run all the tests by
pytest tests/
or a specific test like test_active_learning
by
pytest tests/test_active_learning.py
Some tests save results including plots into temporary folders. The temporary
folders will be deleted automatically if test_clear_temp_files
is called. If
you want to exclude a specific test such as test_clear_temp_files
, you may run
pytest tests/ --ignore=tests/test_clear_temp_files.py
Documentation
The source codes of PSimPy
contains detailed docstrings which explain how it
can be used. More documentation about the theories is currently in preparation
and will be available soon.
License
PSimPy
was created by Hu Zhao at the Chair of Methods for Model-based
Development in Computational Engineering. It is licensed under the terms of
the MIT license.