Skip to content

Commit

Permalink
use agent unique_id instead of object id in geospace
Browse files Browse the repository at this point in the history
  • Loading branch information
wang-boyu committed Sep 26, 2024
1 parent 489275e commit 397fa42
Showing 1 changed file with 8 additions and 6 deletions.
14 changes: 8 additions & 6 deletions mesa_geo/geospace.py
Original file line number Diff line number Diff line change
Expand Up @@ -319,7 +319,9 @@ def _recreate_rtree(self, new_agents=None):

if len(agents) > 0:
# Bulk insert agents
index_data = ((id(agent), agent.geometry.bounds, None) for agent in agents)
index_data = (
(agent.unique_id, agent.geometry.bounds, None) for agent in agents
)
self._idx = index.Index(index_data)

def add_agents(self, agents):
Expand All @@ -336,12 +338,12 @@ def add_agents(self, agents):

if isinstance(agents, GeoAgent):
agent = agents
self._id_to_agent[id(agent)] = agent
self._id_to_agent[agent.unique_id] = agent
if self._idx:
self._idx.insert(id(agent), agent.geometry.bounds, None)
self._idx.insert(agent.unique_id, agent.geometry.bounds, None)
else:
for agent in agents:
self._id_to_agent[id(agent)] = agent
self._id_to_agent[agent.unique_id] = agent
if self._idx:
self._recreate_rtree(agents)
self._total_bounds = None
Expand All @@ -351,9 +353,9 @@ def remove_agent(self, agent):
Remove an agent from the layer.
"""

del self._id_to_agent[id(agent)]
del self._id_to_agent[agent.unique_id]
if self._idx:
self._idx.delete(id(agent), agent.geometry.bounds)
self._idx.delete(agent.unique_id, agent.geometry.bounds)
self._total_bounds = None

def get_relation(self, agent, relation):
Expand Down

0 comments on commit 397fa42

Please sign in to comment.