PySD

PySD: System Dynamics Modeling in Python - Published in JOSS (2022)

https://github.com/sdxorg/pysd

Science Score: 100.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 4 DOI reference(s) in README and JOSS metadata
  • Academic publication links
    Links to: joss.theoj.org
  • Committers with academic emails
    2 of 21 committers (9.5%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
    Published in Journal of Open Source Software

Keywords from Contributors

mesh salib

Scientific Fields

Mathematics Computer Science - 84% confidence
Earth and Environmental Sciences Physical Sciences - 62% confidence
Last synced: 4 months ago · JSON representation ·

Repository

System Dynamics Modeling in Python

Basic Info
Statistics
  • Stars: 420
  • Watchers: 28
  • Forks: 91
  • Open Issues: 41
  • Releases: 58
Created about 12 years ago · Last pushed 4 months ago
Metadata Files
Readme License Citation

README.md

PySD

Maintained Coverage Status Anaconda-Server Badge PyPI version PyPI status Py version JOSS Contributions Docs

PySD Logo

This project is a library for running System Dynamics (SD) models in Python, with the purpose of improving integration of Big Data and Machine Learning into the SD workflow.

The current version needs to run at least Python 3.9.

Resources

See the project documentation for information about:

For standard methods for data analysis with SD models, see the PySD Cookbook, containing (for example):

Why create a new SD simulation engine?

There are a number of great SD programs out there (Vensim, iThink, AnyLogic, Insight Maker, and others). In order not to waste our effort, or fall victim to the Not-Invented-Here fallacy, we should have a very good reason for starting a new project.

That reason is this: There is a whole world of computational tools being developed in the larger data science community. System dynamicists should directly use the tools that other people are building, instead of replicating their functionality in SD specific software. The best way to do this is to bring specific SD functionality to the domain where those other tools are being developed.

This approach allows SD modelers to take advantage of the most recent developments in data science, and focus our efforts on improving the part of the stack that is unique to System Dynamics modeling.

Cloning this repository

If you'd like to work with this repository directly, you'll need to use a recursive git checkout in order to properly load the test suite (sorry..)

The command should be something like:

shell git clone --recursive https://github.com/SDXorg/pysd.git

Extensions

You can use PySD in R via the PySD2R package, also available on CRAN.

Contributing

PySD is currently a community-maintained project, any contribution is welcome.

Many people have contributed to developing this project - by submitting code, bug reports, and advice. Main historic changes in PySD are described in the About PySD section. The Developer Documentation could help new developers.

The code for this package is available at: https://github.com/SDXorg/pysd

Join our slack channel in sd-tools-and-methodology-community.

Owner

  • Name: SDXorg
  • Login: SDXorg
  • Kind: organization

Open source tools for system dynamics

JOSS Publication

PySD: System Dynamics Modeling in Python
Published
October 17, 2022
Volume 7, Issue 78, Page 4329
Authors
Eneko Martin-Martinez ORCID
CREAF, Centre de Recerca Ecològica i Aplicacions Forestals, E08193 Bellaterra (Cerdanyola del Vallès), Catalonia, Spain
Roger Samsó ORCID
CREAF, Centre de Recerca Ecològica i Aplicacions Forestals, E08193 Bellaterra (Cerdanyola del Vallès), Catalonia, Spain
James Houghton ORCID
Computational Social Science Lab, University of Pennsylvania, Philadelphia PA, 19104, United States of America
Jordi Solé ORCID
CREAF, Centre de Recerca Ecològica i Aplicacions Forestals, E08193 Bellaterra (Cerdanyola del Vallès), Catalonia, Spain, Departament de Dinàmica de la Terra i l'Oceà, Universitat de Barcelona (UB) E08007, Catalonia, Spain
Editor
Pierre de Buyl ORCID
Tags
System Dynamics Vensim Stella

Citation (citation.cff)

cff-version: 1.2.0
title: 'PySD: System Dynamics Modeling in Python'
message: 'If you use this software, please cite it as below.'
type: software
authors:
  - given-names: Eneko
    family-names: Martin-Martinez
    email: eneko.martin.martinez@gmail.com
    affiliation: >-
      Centre for Ecological Research and Forestry
      Applications (CREAF)
    orcid: 'https://orcid.org/0000-0002-9213-7818'
  - given-names: Roger
    family-names: Samsó
    affiliation: >-
      Centre for Ecological Research and Forestry
      Applications (CREAF)
    orcid: 'https://orcid.org/0000-0003-0348-3047'
  - family-names: Houghton
    given-names: James
    affiliation: >-
      Computational Social Science Lab, University of
      Pennsylvania
    email: james.p.houghton@gmail.com
  - given-names: Jordi
    family-names: Solé
    orcid: 'https://orcid.org/0000-0002-2371-1652'
    affiliation: >-
      Centre for Ecological Research and Forestry
      Applications (CREAF);
      Department of Earth and Ocean Dynamics,
      Faculty of Earth Sciences,
      University of Barcelona
version: 3.0.1
doi: 10.5281/zenodo.6583528
date-released: 2022-05-26
journal: "Journal of Open Source Software"
keywords:
  - System Dynamics
  - Vensim
  - XMILE
  - Python
license: MIT
repository: "https://github.com/JamesPHoughton/pysd"
url: "https://github.com/JamesPHoughton/pysd"
year: 2022
month: 6
references:
  - type: conference-paper
    scope: Cite alos the PySD introductory paper (conference-paper)
    authors:
    - family-names: Houghton
      given-names: James
    - family-names: Siegel
      given-names: Michael
    title: "Advanced data analytics for system dynamics models using PySD."
    year: 2015
    publisher: "System Dynamics Society"
    journal: "33rd International Conference of the System Dynamics Society 2015"
    isbn: 9781510815056
    url: "https://github.com/JamesPHoughton/pysd/blob/master/docs/PySD%20Intro%20Paper%20Preprint.pdf"

preferred-citation:
  type: article
  authors:
    - given-names: Eneko
      family-names: Martin-Martinez
      email: eneko.martin.martinez@gmail.com
      affiliation: >-
        Centre for Ecological Research and Forestry
        Applications (CREAF)
      orcid: 'https://orcid.org/0000-0002-9213-7818'
    - given-names: Roger
      family-names: Samsó
      affiliation: >-
        Centre for Ecological Research and Forestry
        Applications (CREAF)
      orcid: 'https://orcid.org/0000-0003-0348-3047'
    - family-names: Houghton
      given-names: James
      affiliation: >-
        Computational Social Science Lab, University of
        Pennsylvania
      email: james.p.houghton@gmail.com
    - given-names: Jordi
      family-names: Solé
      orcid: 'https://orcid.org/0000-0002-2371-1652'
      affiliation: >-
        Centre for Ecological Research and Forestry
        Applications (CREAF);
        Department of Earth and Ocean Dynamics,
        Faculty of Earth Sciences,
        University of Barcelona
  doi: 10.5281/zenodo.6583528
  title: 'PySD: System Dynamics Modeling in Python'
  journal: "Journal of Open Source Software"
  year: 2022
  url: "https://github.com/JamesPHoughton/pysd"

GitHub Events

Total
  • Create event: 11
  • Release event: 1
  • Issues event: 3
  • Watch event: 44
  • Delete event: 11
  • Issue comment event: 12
  • Push event: 21
  • Pull request event: 21
  • Fork event: 4
Last Year
  • Create event: 11
  • Release event: 1
  • Issues event: 3
  • Watch event: 44
  • Delete event: 11
  • Issue comment event: 12
  • Push event: 21
  • Pull request event: 21
  • Fork event: 4

Committers

Last synced: 5 months ago

All Time
  • Total Commits: 1,160
  • Total Committers: 21
  • Avg Commits per committer: 55.238
  • Development Distribution Score (DDS): 0.576
Past Year
  • Commits: 11
  • Committers: 3
  • Avg Commits per committer: 3.667
  • Development Distribution Score (DDS): 0.455
Top Committers
Name Email Commits
Eneko Martin Martinez e****z@g****m 492
James Houghton J****n@g****m 253
Roger Samsó r****o@g****m 138
Alexey Mulyukin a****n@a****u 87
Maria m****o@a****s 49
julienmalard j****d@m****a 41
sepiatone s****e@y****m 23
dependabot[bot] 4****] 18
SimonStrong s****t@g****m 15
ConnectedSystems t****i@g****m 11
pbreach p****h@u****a 7
Diego Rodrigo d****-@h****m 4
Aina Rasoldier a****r@h****r 4
Manuel Ruh m****e@g****m 3
Keith Citrenbaum k****m@s****m 3
Joona Tuovinen j****n@g****m 3
Ewout ter Hoeven E****n@s****l 3
Bruno P. Kinoshita k****w 2
mhy05 m****n@g****m 2
Ben Slavin b****n@b****m 1
Giorgos Drosos 5****s 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 4 months ago

All Time
  • Total issues: 84
  • Total pull requests: 80
  • Average time to close issues: over 1 year
  • Average time to close pull requests: about 2 months
  • Total issue authors: 33
  • Total pull request authors: 11
  • Average comments per issue: 3.45
  • Average comments per pull request: 2.53
  • Merged pull requests: 72
  • Bot issues: 0
  • Bot pull requests: 21
Past Year
  • Issues: 4
  • Pull requests: 20
  • Average time to close issues: about 2 months
  • Average time to close pull requests: 8 days
  • Issue authors: 4
  • Pull request authors: 3
  • Average comments per issue: 1.5
  • Average comments per pull request: 0.1
  • Merged pull requests: 18
  • Bot issues: 0
  • Bot pull requests: 10
Top Authors
Issue Authors
  • enekomartinmartinez (25)
  • rogersamso (11)
  • JamesPHoughton (10)
  • marrobl (4)
  • lionel42 (4)
  • blsqr (2)
  • hyunjimoon (2)
  • sanketme (2)
  • rachieg2 (1)
  • akuptel (1)
  • universmile (1)
  • prasri92 (1)
  • marika-kac (1)
  • alexprey (1)
  • pbreach (1)
Pull Request Authors
  • enekomartinmartinez (36)
  • dependabot[bot] (28)
  • rogersamso (16)
  • EwoutH (3)
  • benslavin (2)
  • kinow (2)
  • hyunjimoon (1)
  • lionel42 (1)
  • equihuam (1)
  • gdrosos (1)
  • JamesPHoughton (1)
Top Labels
Issue Labels
vensim (22) bug (15) python builder (9) performance (8) enhancement (7) xmile (2) partially implemented (2) good first issue (2) wontfix (1) contributions are welcome (1)
Pull Request Labels
dependencies (28) bug (6) vensim (6) github_actions (5) python builder (4) performance (1)

Packages

  • Total packages: 2
  • Total downloads:
    • pypi 1,723 last-month
  • Total dependent packages: 6
    (may contain duplicates)
  • Total dependent repositories: 18
    (may contain duplicates)
  • Total versions: 97
  • Total maintainers: 2
pypi.org: pysd

System Dynamics Modeling in Python

  • Versions: 70
  • Dependent Packages: 5
  • Dependent Repositories: 17
  • Downloads: 1,723 Last month
Rankings
Dependent packages count: 1.6%
Dependent repos count: 3.5%
Stargazers count: 3.6%
Average: 4.2%
Forks count: 4.9%
Downloads: 7.4%
Maintainers (2)
Last synced: 4 months ago
conda-forge.org: pysd
  • Versions: 27
  • Dependent Packages: 1
  • Dependent Repositories: 1
Rankings
Forks count: 20.3%
Stargazers count: 23.0%
Average: 24.2%
Dependent repos count: 24.4%
Dependent packages count: 29.0%
Last synced: 4 months ago

Dependencies

docs/requirements.txt pypi
  • jinja2 ==3.0.0
  • readthedocs-sphinx-search ==0.1.1
  • sphinx ==4.2.0
  • sphinx_rtd_theme ==1.0.0
requirements.txt pypi
  • black *
  • chardet *
  • lxml *
  • openpyxl *
  • pandas *
  • parsimonious *
  • portion *
  • progressbar2 *
  • regex *
  • scipy *
  • xarray *
  • xlrd *
tests/requirements.txt pypi
  • coverage *
  • coveralls *
  • psutil *
  • pytest *
  • pytest-cov *
  • pytest-mock *
.github/workflows/build-docs.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
.github/workflows/ci.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
.github/workflows/link-check.yml actions
  • actions/checkout v3 composite
  • lycheeverse/lychee-action v1.5.4 composite
.github/workflows/python-publish.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
setup.py pypi