CoFI (Common Framework for Inference) is an open-source initiative for interfacing between generic inference algorithms and specific geoscience problems.
With a mission to bridge the gap between the domain expertise and the inference expertise, this Python package provides an interface across a wide range of inference algorithms from different sources, as well as ways of defining inverse problems with examples included here.
This project and documentation are under initial development stage. Please feel free to contact us for feedback or issues!
It's optional, but recommended to use a virtual environment:
conda create -n cofi_env python=3.8 scipy
conda activate cofi_env
Install cofi
with:
pip install cofi
CoFI API has flexible ways of defining an inversion problem. For instance:
from cofi import BaseProblem
inv_problem = BaseProblem()
inv_problem.set_objective(my_objective_func)
Once a problem is defined, cofi
can tell you what inference solvers you can use based on what level of
information you've provided:
inv_problem.suggest_solvers() # a list will be printed
Run an inversion with these lines:
from cofi import InversionOptions, Inversion
inv_options = InversionOptions()
inv_options.set_solving_method("optimisation")
inv_options.set_iteration_limit(100)
inv = Inversion(inv_problem, inv_options)
result = inv.run()
print(result.ok)
print(result.model)
And now an inversion is completed! Check out our example gallery and tutorial pages for more advanced usages.
Interested in contributing? Please check out our contributor's guide.
This project is distributed under a 2-clause BSD license. A copy of this license is provided with distributions of the software.