From 397fa420abddddb5e690755a741a1cbb1898c445 Mon Sep 17 00:00:00 2001 From: Wang Boyu Date: Thu, 26 Sep 2024 14:53:02 -0400 Subject: [PATCH] use agent unique_id instead of object id in geospace --- mesa_geo/geospace.py | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/mesa_geo/geospace.py b/mesa_geo/geospace.py index d0a0f7dd..b2908fa3 100644 --- a/mesa_geo/geospace.py +++ b/mesa_geo/geospace.py @@ -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): @@ -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 @@ -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):