论文部分内容阅读
NumPy 和 SciPy 这两个 Python 库是十分强大的数值处理和分析工具,适用于多种应用程序。我们开发了一个 Python 库 ObsPy(http://obspy.org),目的是使地震学软件包和工作流程的发展更为便利,也利用这些功能为地震学进入更大的科学 Python 生态系统建桥铺路。许多领域的科学家希望转化他们现有的工具和程序,以便能够利用 Py-thon 所提供的这类平台环境,但是经常遇到下述困扰,例如特殊的文件格式、未知的专业术语,以及找不到合适的办法来替代软件中的某一个重要功能。我们提出一种方案,即在科学的 NumPy 包上层实现特定领域的时间序列库。据此,我们显示了一个时间序列数据的内部抽象表现的具体化实现,它能支持各种不同文件格式的读写。随后我们仔细描述了已充分发挥作用的旧代码的集成与改造,使它们能够在 Python 编写的现代工作流程之中继续发挥作用。最后我们举例研究如何将科研代码整合到 ObsPy 中,使其受众更为广泛。虽然本文给出的例子针对的是地震学,但是其中许多概念和抽象方法都可以直接应用于其他学科,特别是那些重点放在时间序列分析上的学科。