We introduce our own highly flexible, language-agnostic, BO and model wrapping library Bayesian Optimization for Anything (BOA) thatincorporates multiple sources of data easily to build constraints, reduces optimization setup time, and eases advanced use cases such as High-Performance Computing (HPC) parallelization and optimization restarting. As an example case, we parameterize FETCH3.14, a multispecies, canopy-level, hydrodynamic transpiration model which builds upon the previous versions of the Finite-difference Ecosystem-scale Tree Crown Hydrodynamics model (FETCH). Multi-source data assimilation using evapotranspiration (ET) observations, soil and stem water potential observations, and carbon flux observations provide insights about species-specific hydraulic traits. We use flux data from representative model trees that get scaled to the plot level based on the composition of species and structure of the canopy in the plot, which allows parameterization using tree level observations (sap flux, stem water storage) and plot level observations (eddy covariance evapotranspiration). We use BOA to set up a multi-objective optimization (MOO) inverse problem with little overhead or extra boilerplate code. This approach allows us to utilize multi-scale observations to resolve information about species-specific hydraulic parameters, including parameters that are difficult or impossible to measure in the field.
Typically, BO hyperparameter tuning packages require the users to have a medium to high amount of BO domain knowledge, write a non-insignificant amount of boilerplate code to run your optimization, and are locked into the language that the package is written in (if the BO package is an R package, then your boilerplate code will also need to be in R). BOA is written to address many of these hurdles, while maintaining a robust BO package that gives users the ability to quickly and easily set up their optimization with sensible defaults or configure it extensively.

