Skip to content

Releases: projectmesa/mesa-geo

v0.9.0 alpha 1

17 Oct 04:08
1b3e2a7
Compare
Choose a tag to compare
v0.9.0 alpha 1 Pre-release
Pre-release

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

📜 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

27 Sep 22:49
3c4f884
Compare
Choose a tag to compare
v0.9.0 alpha 0 Pre-release
Pre-release

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

  • raster_layer: Don't pass unique_id to Agent in Cell by @EwoutH in #249

📜 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

03 Sep 20:20
af7f82d
Compare
Choose a tag to compare

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

  • Expose rasterio's opener argument in Rasterlayer.from_file by @EwoutH in #237

🐛 Bugs fixed

  • add model parameter in RasterLayer class method by @wang-boyu in #240

📜 Documentation improvements

🔧 Maintenance

  • Add test script for GIS examples and run that in CI by @EwoutH in #241

Full Changelog: v0.8.0...v0.8.1

v0.8.0

22 Aug 12:26
Compare
Choose a tag to compare

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

  • Update mesa-geo to sync with mesa >=2.3.0 by @tpike3 in #212

🛠 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

28 Mar 02:24
Compare
Choose a tag to compare

🐛 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

17 Jan 11:21
Compare
Choose a tag to compare

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

Full Changelog: v0.6.0...v0.7.0

v0.6.0

14 Sep 00:41
Compare
Choose a tag to compare

Special Notes

  • update mesa dependency to v2.1

Improvements

  • use Pathlib #149 (thanks @catherinedevlin for contributing)

  • Docs updates

    • docs: use pydata theme #152
    • docs: use myst-nb to compile notebooks at build time #159
  • Example updates

    • remove examples and their tests #163

Fixes

  • fix AttributeError in GeoSpace.agents_at() #165 (thanks @SongshGeo for reporting)

v0.5.0

10 Mar 01:58
Compare
Choose a tag to compare

Improvements

  • Docs updates

    • add citation information about mesa-geo #117
    • add citation info to readthedocs #118
    • docs: update docstrings on how to use providers requiring registration #141
  • Front-end updates

    • add scale to Leaflet map #123
    • allow basemap tiles configuration #127
  • CI updates

    • add testing for python 3.11 #122
    • ci: replace flake8 with ruff #132
    • ci: update os, python versions, and dependabot configurations #142
    • ci: pin ruff version to v0.0.254 #144

Fixes

  • fix WMSWebTile.to_dict() method #140

v0.4.0

19 Oct 02:03
Compare
Choose a tag to compare

Improvements

  • export geoagents and raster cells #98

  • use ModularServer from Mesa #109

  • implement simpler Mesa-Geo namespace #115

  • Docs updates

    • create Read the Docs #99
    • update README with badges and matrix chat link #100
  • 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

    • link example models to readthedocs #101
    • fix spatial variation of water level in rainfall example #108
    • fix youtube links in geo_schelling examples #113

Fixes

  • replace BuildCommand & DevelopCommand with BuildPyCommand during setup #106

v0.3.0

28 Jul 03:30
@rht rht
Compare
Choose a tag to compare

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

    • ci: Replace Travis with GH Actions #47
    • ci: Disable PyPy tests for now #56
  • 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
  • Example updates

    • update examples #74
      • change examples folder structure
      • add test for examples
      • add geo_schelling_points example
    • add rainfall and urban growth examples #80
    • add uganda example #90
  • Other improvements

    • add github issue templates #38
    • apply Black to all Python files #50
    • add code of conduct and contributing guide #69
    • update license with year and contributors #86
    • rename master branch to main #89

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