Releases: projectmesa/mesa-geo
v0.9.0 alpha 1
Highlights
This small pre-release fixes a bug in the RasterLayer rendering and deprecated the old GeoJupyterViz, in favor of the new SolaraViz.
What's Changed
🐛 Bugs fixed
- fix raster layer rendering in solaraviz by @wang-boyu in #254
📜 Documentation improvements
- Deprecate geojupyterviz and update intro tutorial by @wang-boyu in #255
Full Changelog: v0.9.0a0...v0.9.0a1
v0.9.0 alpha 0
Highlights
The Mesa-geo v0.9.0a0
pre-release is the first Mesa-geo version compatible with Mesa 3.0.
One of the most notable changes is the automatic assignment of unique IDs to agents. This eliminates the need for manual ID specification, simplifying agent creation. For example, where you previously might have initialized an agent with:
agent = MyGeoAgent(unique_id=1, model=model, geometry=point, crs="EPSG:4326")
You now simply omit the unique_id
:
agent = MyGeoAgent(model=model, geometry=point, crs="EPSG:4326")
Mesa-geo can now directly use Mesa 3.0's SolaraViz visualisation, with an additional make_geospace_leaflet
method to support geospaces. The new visualization can be used like:
from mesa.visualization import SolaraViz
import mesa_geo.visualization as mgv
model = GeoSIR()
SolaraViz(
model,
name="GeoSIR",
components=[
mgv.make_geospace_leaflet(SIR_draw, zoom=12, scroll_wheel_zoom=False),
mesa.visualization.make_plot_measure(["infected", "susceptible", "recovered", "dead"]),
mesa.visualization.make_plot_measure(["safe", "hotspot"]),
]
)
Finally, all GIS example models in mesa-examples have been updated to be fully compatible with the latest Mesa 3.0 alpha and this pre-release.
The v0.9.0a0
pre-release is a snapshot release to allow starting testing against Mesa 3.0, and might introduce new breaking changes in upcoming (pre-)releases.
Install with:
pip install -U --pre mesa-geo
What's Changed
⚠️ Breaking changes
🛠 Enhancements made
- add method to make geospace as a solara component by @wang-boyu in #246
🐛 Bugs fixed
📜 Documentation improvements
- Readthedocs: Don't let notebook failures pass silently by @EwoutH in #250
- intro tutorial: Remove unique_id from Agent init by @EwoutH in #251
Full Changelog: v0.8.1...v0.9.0a0
v0.8.1
Highlights
Mesa-Geo 0.8.1 is a small patch release containing a single feature, a documentation update and a bug fixed.
The real novelty is that from now on, all GIS examples on Mesa-examples are tested in CI against Mesa-Geo. We fixed 16 bugs in the 7 GIS example models (mesa-examples#172), which are now available on two branches:
- On the
main
branch GIS examples can be found will keep being updated for the latest Mesa and Mesa-Geo versions. - On the
mesa-2.x
branch GIS examples examples can be found that keep working with Mesa 2.x and Mesa-Geo 0.8.x.
The Mesa-Geo 0.8.x. series is compatible with Mesa 2.3.x. The next Mesa-Geo release series, 0.9.x, will be compatible with with Mesa 3.0.
What's Changed
🎉 New features added
🐛 Bugs fixed
- add model parameter in RasterLayer class method by @wang-boyu in #240
📜 Documentation improvements
🔧 Maintenance
Full Changelog: v0.8.0...v0.8.1
v0.8.0
Highlights
- The Tornado visualization server is removed and replaced with SolaraViz, which also works within Jupyter notebooks (#212). This is in line with Mesa's recent changes to use Solara for visualization.
- The Introductory Tutorial has been fully rewritten for Mesa-Geo 0.8.0
- The 0.8.x series are the releases compatible with Mesa 2.3.x. The next major release will be compatible with Mesa 3.0+.
🎉 New features added
🛠 Enhancements made
📜 Documentation improvements
- fix links and installation instructions in README file by @wang-boyu in #213
- .readthedocs.yaml: Use latest Ubuntu and Python versions by @EwoutH in #221
- docs: update conf.py to be in sync with mesa by @wang-boyu in #223
- docs: remove api docs entry for removed visualization module by @wang-boyu in #224
- Fix kernel issue by @tpike3 in #229
- Remove cell output by @tpike3 in #231
🔧 Maintenance
- Update configuration, metadata and tests by @tpike3 in #208
- fix: Use correct package name for Pip by @rht in #214
- pyproject.toml: Always use latest ruff by @EwoutH in #219
- pyproject.toml: Use mesa version smaller than 3 for now by @EwoutH in #220
- CI: Add job to test with pre-release dependencies, including Mesa by @EwoutH in #218
Full Changelog: v0.7.1...v0.8.0
v0.7.1
🐛 Bugs fixed
- fix: remove old map layers before rendering new layers by @wang-boyu in #194 (thanks @rw73mg for reporting)
Full Changelog: v0.7.0...v0.7.1
v0.7.0
Special Notes
- Update Mesa dependency to v2.2
- The pinning of Mesa is now on the major version, instead of the minor version. This means that Mesa-Geo v0.7.0 will work with Mesa v2.2, v2.3, v2.4, etc. but not with Mesa v3.0 or later.
🛠 Enhancements made
- create and update rtree spatial index only when needed by @wang-boyu in #179
🔧 Maintenance
- fix link to examples by @wang-boyu in #167
- Correct link to GeoSchelling example and update copyright string by @Holzhauer in #175
- fix rtd build error and upgrade to python 3.9 by @wang-boyu in #176
- update pre-commit and ga workflows to be consistent with mesa by @wang-boyu in #181
- add config file to automatically generate release notes by @wang-boyu in #184
- update ga workflows to be consistent with mesa by @wang-boyu in #185
New Contributors
- @Holzhauer made their first contribution in #175
Full Changelog: v0.6.0...v0.7.0
v0.6.0
Special Notes
- update mesa dependency to v2.1
Improvements
-
use Pathlib #149 (thanks @catherinedevlin for contributing)
-
Docs updates
-
Example updates
- remove examples and their tests #163
Fixes
- fix AttributeError in GeoSpace.agents_at() #165 (thanks @SongshGeo for reporting)
v0.5.0
v0.4.0
Improvements
-
export geoagents and raster cells #98
-
use ModularServer from Mesa #109
-
implement simpler Mesa-Geo namespace #115
-
Docs updates
-
Front-end updates
- auto zoom to geospace when view & zoom are missing #103
-
CI updates
- add pre-commit config and run it on all files #107
-
Example updates
Fixes
- replace BuildCommand & DevelopCommand with BuildPyCommand during setup #106
v0.3.0
Special Notes
- BREAKING: rename model.grid to model.space #40
- BREAKING: rename GeoAgent's shape attribute to geometry #57
Improvements
-
feat/crs #58
- add GeoAgent.crs attribute
- update GeoSpace with GeoAgent.crs
-
extract an _AgentLayer from GeoSpace #62
-
add layers into geospace #67
-
implement RasterLayer #75
-
create raster layer from file #92
-
Front-end updates
- implement LeafletPortrayal dataclass for GeoAgent portrayal #84
-
CI updates
-
Dependency updates
- Frontend dependencies #54
- remove all frontend dependencies available from mesa
- create setup.cfg and pyproject.toml from setup.py
- download leaflet during install #59
- remove version number from leaflet filenames #61
- update for Mesa v1.0.0 #78
- specify mesa 1.x dependency
- update for mesa css includes
- remove jQuery usage in MapModule.js
- use Slider instead of UserSettableParameter in examples
- Frontend dependencies #54
-
Example updates
-
Other improvements
Fixes
- fix remove_agent in GeoSpace #34
- remove deprecated skip_equivalent from pyproj #43
- flake8: Fix errors #51
- rename InstallCommand to BuildCommand #55
- fix codecov and README.md #71
- use shape.centroid instead of shape.center() #73
- fix unique id exception for raster cells #83
- fix total_bounds check in GeoSpace #88