This paper describes the first version (v1.0) of PyOED, a highly extensible scientific package that enables developing and testing model-constrained optimal experimental design (OED) for inverse problems. Specifically, PyOED aims to be a comprehensive Python toolkit for model-constrained OED. The package targets scientists and researchers interested in understanding the details of OED formulations and approaches. It is also meant to enable researchers to experiment with standard and innovative OED technologies with a wide range of test problems (e.g., simulation models). Thus, PyOED is continuously being expanded with a plethora of Bayesian inversion, DA, and OED methods as well as new scientific simulation models, observation error models, and observation operators. These pieces are added such that they can be permuted to enable testing OED methods in various settings of varying complexities. The PyOED core is completely written in Python and utilizes the inherent object-oriented capabilities; however, the current version of PyOED is meant to be extensible rather than scalable. Specifically, PyOED is developed to ``enable rapid development and benchmarking of OED methods with minimal coding effort and to maximize code reutilization.'' This paper provides a brief description of the PyOED layout and philosophy and provides a set of exemplary test cases and tutorials to demonstrate how the package can be utilized.
翻译:本文介绍了PyOED的首个版本(v1.0),这是一个高度可扩展的科学软件包,用于开发和测试面向反问题的模型约束实验最优设计(OED)。具体而言,PyOED旨在成为面向模型约束OED的综合性Python工具包。该软件包面向对OED公式与方法的细节感兴趣的科研人员及学者,旨在帮助研究者利用广泛的测试问题(如仿真模型)开展标准及创新OED技术的实验。因此,PyOED持续扩展大量贝叶斯反演、数据同化(DA)及OED方法,以及新的科学仿真模型、观测误差模型和观测算子。这些模块被设计为可自由组合,以便在不同复杂度的场景中测试OED方法。PyOED内核完全采用Python编写,并充分利用其面向对象特性;但当前版本的PyOED侧重于可扩展性而非可扩展性(注:此处疑为原文笔误,根据后文应强调可扩展性优于可伸缩性)。具体而言,PyOED的开发目标是“以最小化编码工作量实现OED方法的快速开发与基准测试,并最大化代码复用性”。本文简要描述了PyOED的架构设计与设计理念,并通过一系列示例测试案例和教程演示该软件包的使用方法。