This small pre-release fixes a bug in the RasterLayer rendering and deprecated the old GeoJupyterViz, in favor of the new SolaraViz.
- fix raster layer rendering in solaraviz by @wang-boyu in #254
- Deprecate geojupyterviz and update intro tutorial by @wang-boyu in #255
Full Changelog: https://github.com/projectmesa/mesa-geo/compare/v0.9.0a0...v0.9.0a1
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"]),
]
)
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.
- add method to make geospace as a solara component by @wang-boyu in #246
- raster_layer: Don't pass unique_id to Agent in Cell by @EwoutH in #249
- 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: https://github.com/projectmesa/mesa-geo/compare/v0.8.1...v0.9.0a0
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.
- Expose rasterio's opener argument in Rasterlayer.from_file by @EwoutH in #237
- add model parameter in RasterLayer class method by @wang-boyu in #240
- Update intro_tutorial.ipynb by @tpike3 in #234
- Add test script for GIS examples and run that in CI by @EwoutH in #241
Full Changelog: https://github.com/projectmesa/mesa-geo/compare/v0.8.0...v0.8.1
- 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+.
- Update mesa-geo to sync with mesa >=2.3.0 by @tpike3 in #212
- Update tutorial and viz by @tpike3 in #217
- 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
- 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: https://github.com/projectmesa/mesa-geo/compare/v0.7.1...v0.8.0
- fix: remove old map layers before rendering new layers by @wang-boyu in #194 (thanks @rw73mg for reporting)
Full Changelog: https://github.com/projectmesa/mesa-geo/compare/v0.7.0...v0.7.1
- 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.
- create and update rtree spatial index only when needed by @wang-boyu in #179
- 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
- @Holzhauer made their first contribution in #175
Full Changelog: https://github.com/projectmesa/mesa-geo/compare/v0.6.0...v0.7.0
- update mesa dependency to v2.1
-
use Pathlib #149 (thanks @catherinedevlin for contributing)
-
Docs updates
-
Example updates
- remove examples and their tests #163
- fix AttributeError in GeoSpace.agents_at() #165 (thanks @SongshGeo for reporting)
-
Docs updates
-
Front-end updates
-
CI updates
- fix WMSWebTile.to_dict() method #140
-
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
- replace BuildCommand & DevelopCommand with BuildPyCommand during setup #106
- BREAKING: rename model.grid to model.space #40
- BREAKING: rename GeoAgent's shape attribute to geometry #57
-
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
- 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