Refactoring mesa.space
@adamamer20 is already working on this.
Since Jan 10, 2024.
Assessment
This issue has not been assessed yet.
Description
Roadmap
- #39
- #40
- #41
- #34
- #35
- #36
- #37
- #38
- #47
Class Structure and Design
SpaceDF
- Base class for all spaces
- Defines a common interface for all spaces
- Stores agent positions in the
_agentsattribute in a DataFrame/GeoDataFrame. This approach avoids many missing values in the AgentSetDF and reduces confusion when multiple spaces of the same type are present (e.g., an agent in both a grid and in a social network) - TODO: Implement a
posproperty for AgentContainer that performs an instant join with the space_agentsDataFrame
MultiSpaceDF
- Stores the collection of spaces in a model, similar to AgentsDF
DiscreteSpaceDF
- Defines an interface for GridDF and NetworkDF
- Supports setting cell properties at both class level (setting an attribute of the class) and cell level (using the
set_cellsmethod) - In addition to
_agentsstores cell properties in the_cellsattribute in a DataFrame. The_cellsDataFrame explicitly stores only cells that have agents or have specific properties different from the class level
ContinousSpaceDF
- Stores agents in a GeoDataFrame (only geopandas in the future)
- Bridges mesa and mesa-geo
- All agents are geoagents and shapely objects
- Can be used as a continuous space in mesa without setting CRS, or as a geospace in mesa-geo by setting CRS
GridDF
- Implemented in both GridPolars and GridPandas versions
- Supports multiple dimensions
- The '_empty_grid' attribute stores the remaining capacity of the grid.
GeoGridDF
- Position in the class hierarchy still to be determined
- Is it possible to create a unique class or attempt to merge with GridDF? Probably not possible to merge as GridDF supports multiple dimensions, while shapely objects are limited to 2 dimensions.
- Dominant language
- Python
- Stars
- 43
- Forks
- 19
- Avg merge
- 1m
- Merged PRs (30d)
- 1
Getting set up
- No Dockerfile or Docker Compose file
- No pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from mesa/mesa-frames
-
Mesa-frames 0.2.0Open
Difficulty 5/5 Over a week Newbie friendliness 25/100
mesa/mesa-frames#186 · 10 comments ·
-
feature triage
Difficulty 3/5 1-2 days Newbie friendliness 45/100
mesa/mesa-frames#177 · 1 comment ·
-
[Bug]: Solving polars Deprecation warnings for `is_in`Possibly taken @adamamer20 claimed this 407 days ago. Openbug good first issue maintenance Sprints!
mesa/mesa-frames#174 · 2 comments · 1 assignee ·
-
[Enhancement] : agents selection in AgentsDf would be better if it returns agent_idx/name as keyOpenenhancement
Difficulty 3/5 1-2 days Newbie friendliness 40/100
mesa/mesa-frames#162 · 1 comment ·
-
[Feature]: Easy seed accessor across the entire codebaseMay be free again @falloficaruss claimed this 305 days ago, and no pull request is open. Openfeature good first issue Sprints!
Difficulty 4/5 3-5 days Newbie friendliness 35/100
mesa/mesa-frames#159 · 3 comments ·
All issues in mesa/mesa-frames
Similar issues
-
Difficulty 1/5 Under an hour Newbie friendliness 83/100
PedestrianDynamics/pyFDS-Evac#766 ·
Maintainers usually reply within 1 day
-
Difficulty 1/5 1-3 hours Newbie friendliness 91/100
alchaincyf/nuwa-skill#86 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
Maintainers usually reply within 2 days
-
Docs Needs Triage
Difficulty 1/5 Under an hour Newbie friendliness 88/100
pandas-dev/pandas#71055 ·
Maintainers usually reply within 1 day
-
[Bug]: graphify reads files that git's global ignore file hidesPossibly taken @smngvlkz claimed this today. Open
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
Graphify-Labs/graphify#4335 · 1 comment ·
Maintainers usually reply within 1 day