PySD

Simulating System Dynamics Models in Python

Sphinx博士制作 JOSS 保持 PyPI许可证 Conda包装 PyPI包 PyPI状态 PyPI变态 贡献

该项目是一个用于在Python中运行系统动力学模型的简单库,旨在改善大数据和机器学习与SD工作流程的集成。

PySD转换 VensimXMILE 模型文件到Python模块中,并提供修改、模拟和观察这些转换后的模型的方法。转换是通过中间体完成的 Abstract Syntax Tree representation ,这使得可以以更简单的方式添加其他语言的构建器

为什么要创建新的SD模拟引擎?

有很多很棒的SD程序 (Vensim , iThink , AnyLogic , Insight Maker ,而且 others ).为了不浪费我们的努力,或者成为受害者 Not-Invented-Here 谬论,我们应该有一个非常好的理由开始一个新项目。

原因是这样的:更大的数据科学社区正在开发整个世界的计算工具。 System dynamicists should directly use the tools that other people are building, instead of replicating their functionality in SD specific software. 最好的方法是将特定的SD功能引入正在开发这些其他工具的领域。

这种方法使SD建模人员能够利用数据科学的最新发展,并集中精力改进系统动力学建模所独有的堆栈部分。

限制

目前PySD并未实现Vensim和XMILE的所有功能和特性。这可能意味着某些模型无法使用Python转换版本运行,或者只能部分运行。在大多数情况下,未实现的功能将被转换为 pysd.py_backend.functions.not_implemented_function() .然而,最常用的功能和特性是在PySD中实现的,并且大多数模型都可以正常运行。

有关更多信息,请参阅 supported Vensim functions , supported Xmile functions ,而且 supported Python builder functions .如果您想添加任何新功能,请按照中的提示操作 development section .的示例 adding functions section 可能会帮助你。

额外资源

PySD手册

一本包含使用PySD进行高级数据分析的简单手册的手册,请访问:http://pysd-cookbook.readthedocs.org/

该手册包括模型、示例数据和iPython笔记本形式的代码,它们演示了各种数据集成和分析任务。这些模型可以在您的本地机器上执行,并进行修改以适应您的特定分析要求。

贡献

贡献

PySD目前是一个社区维护的项目,欢迎任何贡献。

此软件包的代码可访问:https://github.com/SDXorg/pysd

如果您发现任何错误或对特定功能感兴趣,请参阅 reporting bugs .

如果您有兴趣参与PySD的开发,请参阅 developer documentation 上面列出了。

加入我们的松弛渠道 sd-tools-and-methodology-community .

援引

如果您在任何已发表的作品中使用PySD,请考虑引用 PySD Paper (2022) :

JOSS

Martin-Martinez et al., (2022). PySD: System Dynamics Modeling in Python. Journal of Open Source Software, 7(78), 4329, https://doi.org/10.21105/joss.04329
@article{Martin-Martinez2022,
   doi = {10.21105/joss.04329},
   url = {https://doi.org/10.21105/joss.04329},
   year = {2022},
   publisher = {The Open Journal},
   volume = {7},
   number = {78},
   pages = {4329},
   author = {Eneko Martin-Martinez and Roger Samsó and James Houghton and Jordi Solé},
   title = {PySD: System Dynamics Modeling in Python},
   journal = {Journal of Open Source Software}
}

请同时添加 PySD Introductory Paper (2015) :

Houghton, J. P., & Siegel, M. (2015). Advanced data analytics for system dynamics models using PySD. Proceedings of the 33rd International Conference of the System Dynamics Society, 2, 1436–1462. ISBN: 9781510815056
@inproceedings{Houghton_PySD_2015,
   author = {Houghton, James P and Siegel, Michael},
   booktitle = {{Proceedings of the 33rd International Conference of the System Dynamics Society}},
   publisher = {{System Dynamics Society}},
   title = {{Advanced data analytics for system dynamics models using PySD}},
   url = {https://www.proceedings.com/28517.html},
   isbn = {9781510815056},
   volume = {2},
   pages = {1436-1462},
   eventdate = {2015-07-19/2015-07-23},
   location = {Cambridge, Massachusetts, USA},
   year = {2015},
   month = {7},
   keywords = {System Dynamics, Vensim, Python}
}

您还可以使用引用该库 DOI provided by Zenodo .可以指定使用的PySD版本及其相应的DOI。如果您想引用所有版本,则可以使用PySD的通用DOI:

DOI

支持

如需额外帮助或咨询,请加入我们的闲置渠道 sd-tools-and-methodology-community .

备注

构建时间: 2025 年 06 月 05 日

备注

构建时间: 2025 年 06 月 05 日

备注

构建时间: 2025 年 06 月 05 日

备注

构建时间: 2025 年 06 月 05 日

备注

构建时间: 2025 年 06 月 05 日

备注

构建时间: 2025 年 06 月 05 日

备注

构建时间: 2025 年 06 月 05 日

备注

构建时间: 2025 年 06 月 05 日