Skip to content

Commit

Permalink
adding statement of need
Browse files Browse the repository at this point in the history
  • Loading branch information
adamamer20 committed Oct 1, 2024
1 parent 346babe commit 5a839f5
Show file tree
Hide file tree
Showing 2 changed files with 56 additions and 100 deletions.
124 changes: 44 additions & 80 deletions paper/paper.bib
Original file line number Diff line number Diff line change
@@ -1,83 +1,47 @@

@article{Pearson:2017,
Adsnote = {Provided by the SAO/NASA Astrophysics Data System},
Adsurl = {http://adsabs.harvard.edu/abs/2017arXiv170304627P},
Archiveprefix = {arXiv},
Author = {{Pearson}, S. and {Price-Whelan}, A.~M. and {Johnston}, K.~V.},
Eprint = {1703.04627},
Journal = {ArXiv e-prints},
Keywords = {Astrophysics - Astrophysics of Galaxies},
Month = mar,
Title = {{Gaps in Globular Cluster Streams: Pal 5 and the Galactic Bar}},
Year = 2017}

@book{Binney:2008,
Adsnote = {Provided by the SAO/NASA Astrophysics Data System},
Adsurl = {http://adsabs.harvard.edu/abs/2008gady.book.....B},
Author = {{Binney}, J. and {Tremaine}, S.},
Booktitle = {Galactic Dynamics: Second Edition, by James Binney and Scott Tremaine.~ISBN 978-0-691-13026-2 (HB).~Published by Princeton University Press, Princeton, NJ USA, 2008.},
Publisher = {Princeton University Press},
Title = {{Galactic Dynamics: Second Edition}},
Year = 2008}

@article{zenodo,
Abstractnote = {<p>Gala is a Python package for Galactic astronomy and gravitational dynamics. The bulk of the package centers around implementations of gravitational potentials, numerical integration, and nonlinear dynamics.</p>},
Author = {Adrian Price-Whelan and Brigitta Sipocz and Syrtis Major and Semyeong Oh},
Date-Modified = {2017-08-13 14:14:18 +0000},
Doi = {10.5281/zenodo.833339},
Month = {Jul},
Publisher = {Zenodo},
Title = {adrn/gala: v0.2.1},
Year = {2017},
Bdsk-Url-1 = {http://dx.doi.org/10.5281/zenodo.833339}}

@ARTICLE{gaia,
author = {{Gaia Collaboration} and {Prusti}, T. and {de Bruijne}, J.~H.~J. and
{Brown}, A.~G.~A. and {Vallenari}, A. and {Babusiaux}, C. and
{Bailer-Jones}, C.~A.~L. and {Bastian}, U. and {Biermann}, M. and
{Evans}, D.~W. and et al.},
title = "{The Gaia mission}",
journal = {\aap},
archivePrefix = "arXiv",
eprint = {1609.04153},
primaryClass = "astro-ph.IM",
keywords = {space vehicles: instruments, Galaxy: structure, astrometry, parallaxes, proper motions, telescopes},
year = 2016,
month = nov,
volume = 595,
eid = {A1},
pages = {A1},
doi = {10.1051/0004-6361/201629272},
adsurl = {http://adsabs.harvard.edu/abs/2016A%26A...595A...1G},
adsnote = {Provided by the SAO/NASA Astrophysics Data System}
@InProceedings{python-mesa-2020,
author="Kazil, Jackie
and Masad, David
and Crooks, Andrew",
editor="Thomson, Robert
and Bisgin, Halil
and Dancy, Christopher
and Hyder, Ayaz
and Hussain, Muhammad",
title="Utilizing Python for Agent-Based Modeling: The Mesa Framework",
booktitle="Social, Cultural, and Behavioral Modeling",
year="2020",
publisher="Springer International Publishing",
address="Cham",
pages="308--317",
abstract="Mesa is an agent-based modeling framework written in Python. Originally started in 2013, it was created to be the go-to tool in for researchers wishing to build agent-based models with Python. Within this paper we present Mesa's design goals, along with its underlying architecture. This includes its core components: 1) the model (Model, Agent, Schedule, and Space), 2) analysis (Data Collector and Batch Runner) and the visualization (Visualization Server and Visualization Browser Page). We then discuss how agent-based models can be created in Mesa. This is followed by a discussion of applications and extensions by other researchers to demonstrate how Mesa design is decoupled and extensible and thus creating the opportunity for a larger decentralized ecosystem of packages that people can share and reuse for their own needs. Finally, the paper concludes with a summary and discussion of future development areas for Mesa.",
isbn="978-3-030-61255-9"
}

@ARTICLE{astropy,
author = {{Astropy Collaboration} and {Robitaille}, T.~P. and {Tollerud}, E.~J. and
{Greenfield}, P. and {Droettboom}, M. and {Bray}, E. and {Aldcroft}, T. and
{Davis}, M. and {Ginsburg}, A. and {Price-Whelan}, A.~M. and
{Kerzendorf}, W.~E. and {Conley}, A. and {Crighton}, N. and
{Barbary}, K. and {Muna}, D. and {Ferguson}, H. and {Grollier}, F. and
{Parikh}, M.~M. and {Nair}, P.~H. and {Unther}, H.~M. and {Deil}, C. and
{Woillez}, J. and {Conseil}, S. and {Kramer}, R. and {Turner}, J.~E.~H. and
{Singer}, L. and {Fox}, R. and {Weaver}, B.~A. and {Zabalza}, V. and
{Edwards}, Z.~I. and {Azalee Bostroem}, K. and {Burke}, D.~J. and
{Casey}, A.~R. and {Crawford}, S.~M. and {Dencheva}, N. and
{Ely}, J. and {Jenness}, T. and {Labrie}, K. and {Lim}, P.~L. and
{Pierfederici}, F. and {Pontzen}, A. and {Ptak}, A. and {Refsdal}, B. and
{Servillat}, M. and {Streicher}, O.},
title = "{Astropy: A community Python package for astronomy}",
journal = {\aap},
archivePrefix = "arXiv",
eprint = {1307.6212},
primaryClass = "astro-ph.IM",
keywords = {methods: data analysis, methods: miscellaneous, virtual observatory tools},
year = 2013,
month = oct,
volume = 558,
eid = {A33},
pages = {A33},
doi = {10.1051/0004-6361/201322068},
adsurl = {http://adsabs.harvard.edu/abs/2013A%26A...558A..33A},
adsnote = {Provided by the SAO/NASA Astrophysics Data System}
@article{Agents.jl,
doi = {10.1177/00375497211068820},
url = {https://doi.org/10.1177/00375497211068820},
year = {2022},
month = jan,
publisher = {{SAGE} Publications},
pages = {003754972110688},
author = {George Datseris and Ali R. Vahdati and Timothy C. DuBois},
title = {Agents.jl: a performant and feature-full agent-based modeling software of minimal code complexity},
journal = {{SIMULATION}},
volume = {0},
number = {0},
}


@Article{app13010013,
AUTHOR = {Antelmi, Alessia and Cordasco, Gennaro and D’Ambrosio, Giuseppe and De Vinco, Daniele and Spagnuolo, Carmine},
TITLE = {Experimenting with Agent-Based Model Simulation Tools},
JOURNAL = {Applied Sciences},
VOLUME = {13},
YEAR = {2023},
NUMBER = {1},
ARTICLE-NUMBER = {13},
URL = {https://www.mdpi.com/2076-3417/13/1/13},
ISSN = {2076-3417},
ABSTRACT = {Agent-based models (ABMs) are one of the most effective and successful methods for analyzing real-world complex systems by investigating how modeling interactions on the individual level (i.e., micro-level) leads to the understanding of emergent phenomena on the system level (i.e., macro-level). ABMs represent an interdisciplinary approach to examining complex systems, and the heterogeneous background of ABM users demands comprehensive, easy-to-use, and efficient environments to develop ABM simulations. Currently, many tools, frameworks, and libraries exist, each with its characteristics and objectives. This article aims to guide newcomers in the jungle of ABM tools toward choosing the right tool for their skills and needs. This work proposes a thorough overview of open-source general-purpose ABM tools and offers a comparison from a two-fold perspective. We first describe an off-the-shelf evaluation by considering each ABM tool’s features, ease of use, and efficiency according to its authors. Then, we provide a hands-on evaluation of some ABM tools by judging the effort required in developing and running four ABM models and the obtained performance.},
DOI = {10.3390/app13010013}
}
32 changes: 12 additions & 20 deletions paper/paper.md
Original file line number Diff line number Diff line change
Expand Up @@ -52,25 +52,17 @@ performing numerical orbit integration).

# Statement of need

`Gala` is an Astropy-affiliated Python package for galactic dynamics. Python
enables wrapping low-level languages (e.g., C) for speed without losing
flexibility or ease-of-use in the user-interface. The API for `Gala` was
designed to provide a class-based and user-friendly interface to fast (C or
Cython-optimized) implementations of common operations such as gravitational
potential and force evaluation, orbit integration, dynamical transformations,
and chaos indicators for nonlinear dynamics. `Gala` also relies heavily on and
interfaces well with the implementations of physical units and astronomical
coordinate systems in the `Astropy` package [@astropy] (`astropy.units` and
`astropy.coordinates`).

`Gala` was designed to be used by both astronomical researchers and by
students in courses on gravitational dynamics or astronomy. It has already been
used in a number of scientific publications [@Pearson:2017] and has also been
used in graduate courses on Galactic dynamics to, e.g., provide interactive
visualizations of textbook material [@Binney:2008]. The combination of speed,
design, and support for Astropy functionality in `Gala` will enable exciting
scientific explorations of forthcoming data releases from the *Gaia* mission
[@gaia] by students and experts alike.
`mesa-frames` is an extension to the `mesa` [@python-mesa-2020] agent-based modeling framework in Python, designed to enhance performance and scalability for complex simulations involving millions of agents.

`mesa` has become the most widely used framework for agent-based modeling in Python thanks to its easy-to-use API and object-oriented philosophy. However, iterating through each agent's behavior becomes computationally expensive when the number of agents reaches thousands [@app13010013]. This has led to the development of other frameworks like Agents.jl [@Agents.jl], which requires developing in another language, Julia. mesa-frames aims to achieve performance similar to that of Agents.jl (NOTE: this needs to be proved) but with a much simpler syntax in Python.

By storing agents in tabular structures, with agents as rows and attributes as columns, mesa-frames can leverage vectorized operations implemented with speed in mind in lower-level languages. This is achieved through the Ibis library, while maintaining a familiar syntax for existing `mesa` users and providing an easy-to-use, expressive API thanks to many out-of-the-box functions implemented in this data manipulation library.

This approach is particularly beneficial for models where agents can "act" simultaneously, a common scenario in fields such as economics, ecology, and social sciences.

Thanks to Ibis being backend-agnostic, even if new, faster DataFrame backends are implemented in the future, changes to the code will be minimal because the API will remain largely unchanged. Additionally, the choice of backends allows very large models to be run in a distributed manner on clusters or using GPUs for acceleration.

The framework's ability to handle large numbers of agents efficiently opens up new possibilities for studying complex systems, from financial markets to epidemiological models, at scales previously challenging with standard `mesa` implementations. This is achieved without requiring efforts to reimplement the code in a lower-level language with more optimizations.

# Mathematics

Expand Down Expand Up @@ -117,4 +109,4 @@ Figure sizes can be customized by adding an optional second parameter:
We acknowledge contributions from Brigitta Sipocz, Syrtis Major, and Semyeong
Oh, and support from Kathryn Johnston during the genesis of this project.

# References
# References

0 comments on commit 5a839f5

Please sign in to comment.