All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
0.10.2 - 2025-11-04
- Move torch import inside
s2vecrelated functions to avoid import errors when torch is not installed
0.10.1 - 2025-10-22
- S2Regionalizer failing with geopandas >= 1.0.0 #558
0.10.0 - 2025-10-07
- Open Benchmark for Spatial Representations (OBSR) - added benchmark module with 7 public datasets, implemented by the Kraina AI team (@mskaa3, @Repcak00, @Kubson900, @SzymonLeszkiewicz, @ofurman)
- New optional dependency group:
datasets - Weight-based examples sorting in documentation with
mkdocs-nav-weightplugin
- Reduced line-length in example notebooks from 100 to 88
- Improved typing in the codebase
0.9.9 - 2025-09-26
S2Vecmodel as anS2VecEmbedderimplemented by @hubkrieb, proposed by Google Research team (Choudhury et al.)timmto optional dependencies forS2VecEmbedder
- Locked
gtfs-kitversion to0.6.*
- Added
__all__const to spatial split module
0.9.8 - 2025-09-04
- New spatial splitting logic for machine learning model training
- Bumped minimal
overturemaestroversion to0.5.0
- Enabled
CountEmbedderto parse dataframes with indexes other than string type #537
0.9.7 - 2025-05-21
- Option to pass
trainer_kwargstoGtfs2VecEmbedder'sfitandfit_transformfunctions
- Change CRS setting for GeoDataFrame in
OSMPbfLoader
0.9.6 - 2025-04-06
- Functions
convert_to_regions_gdfandconvert_to_features_gdfto transform any existing geo input to an object with the correct index name
0.9.5 - 2025-02-23
- Catched OSMnx
InsufficientResponseErrorinOSMOnlineLoader
0.9.4 - 2025-02-16
- Saving expected target features in
GeoVexEmbedder
0.9.3 - 2025-02-10
- Option to change default aggregation in
ContextualCountEmbedderfromaveragetomedian,sum,minormax
0.9.2 - 2025-02-03
- Option to change inherited parameter
count_subcategoriesinHex2VecEmbedderandGeoVexEmbedder
OvertureMapsLoaderdocstring with regards tocount_subcategoriesparameter- Reduced memory footprint in
CountEmbedderby using Arrow's zero-copy protocol
0.9.1 - 2025-01-27
- Refactored
ContextualCountEmbedderprogress bar and multiprocessing implementation
0.9.0 - 2025-01-26
OvertureMapsLoaderfor loading features from Overture Maps datasets
- Replaced all
union_allcalls withunary_union()in GeoPandas context - Transform logic in
CountEmbedderto work with new boolean based features dataframes from Overture Maps Loader - Changed
IntersetionJoinerlogic to useSTRTreeindex instead ofsjoinfunction - Refactored
CountEmbedderto work on the lazy execution engine from thepolarslibrary
0.8.4 - 2025-01-04
- Option to pass
verbosity_modetoOsmPbfLoader
- Default OSM download source from Geofabrik to
any - Replaced deprecated function calls from the
QuackOSMlibrary
0.8.3 - 2025-01-01
- Removed GTFS feed validation for
gtfs-kitversions >=10.0.0
0.8.2 - 2024-12-30
- Changed polygon creation in spherical voronoi algorithm to avoid rounding error on vertices
0.8.1 - 2024-12-30
- Made code compliant with
osmnx's new2.0.0release inOsmOnlineLoader
0.8.0 - 2024-12-28
Warning
This release was yanked. Please use the 0.8.1 release instead.
- Made code compliant with
osmnx's new2.0.0release #473 - Made code compliant with
h3ronpy's new0.22.0release #471
0.7.8 - 2024-12-28
- Set max
h3ronpyversion to<0.22.0(implemented by @bouzaghrane) - Set max
osmnxversion to<2.0.0
- Removed a list comprehension in geometry related operations (implemented by @ebonnal)
0.7.7 - 2024-09-25
- Bumped minimal QuackOSM version to
0.11.0
0.7.6 - 2024-08-29
- Changed a typo in the
BASE_OSM_GROUPS_FILTER(implemented by @starsep)
- Added methods for saving and loading fittable
GeoVexEmbedder(implemented by @sabman and @mhassanch) #457
0.7.5 - 2024-06-04
- Changed H3 regionalization logic from
IntersectsBoundarytoCoversto properly assign H3 regions to geometries smaller than an H3 cell
0.7.4 - 2024-05-05
- Support for Python 3.12 after upgrading QuackOSM to
0.7.0and DuckDB to0.10.2
- Refactored
ContextualCountEmbedderby adding multiprocessing for faster transformations
0.7.3 - 2024-04-21
- Make geofabrik the default download source for OSMPbfLoader
0.7.2 - 2024-04-20
- Update tooling
- Remove Black in favour of Ruff format
- Conform to PEP 561
0.7.1 - 2024-04-17
- Issue caused by the change in the
h3-pylibrary 4.0.0b3 #431
0.7.0 - 2024-02-02
- Support for
BBBikedownload service. - Option to merge a list of OSM tags filters into a single one.
- Refactored
PbfFileHandlerto useQuackOSMlibrary instead ofosmiumandGDAL#405 - Changed the default pbf download source from
protomapsdownload service toany.
PbfFileLoaderand moved its logic toQuackOSMlibrary.- Support for
protomapsdownload service. PbfFileClipper(unnecessary after geospatial filtering has been incorporated into refactoredPbfFileHandler) #405.PbfFileHandler(unnecessary after moving away fromosmiumimplementation).
- Bugs in GTFS Loader: missing index name and NaN handling (implemented by @zackAemmer).
0.6.2 - 2023-12-28
- CI release via GitHub Actions
- Set up docs style for having code examples from docstrings.
- Automatic warnings filtering inside
VoronoiRegionalizer.
- Added option to parse
MultiPolygongeometries insrai.geometry.remove_interiorsfunction.
0.6.1 - 2023-11-12
- Start writing examples in docstrings.
- Change documentation rendering style.
- Expose functions in
h3module.
0.6.0 - 2023-11-02
- Update code to use Python 3.9 syntax.
- Support for Python 3.8.
0.5.2 - 2023-10-29
- Geofabrik and OSM Fr index caching and reading from cache to avoid reloading.
- Tests for Windows OS.
PbfFileClippertemporary files operations moved to working directory.
0.5.1 - 2023-10-27
- Option for
CountEmbedderand every other descendant embedder to useOsmTagsFilterandGroupedOsmTagsFilteras input toexpected_output_featuresparameter.
- Modified
GEOFABRIK_LAYERSdefinition to make more precisebuildingtag values list by applying all accepted and popular tag values fromtagsinfo.
0.5.0 - 2023-10-26
GeoVexmodel as aGeoVexEmbedderimplemented by @mschrader15, proposed by @ddonghi & @annemorvan- Buffer geometries using
H3cells by @mschrader15 - Option for
OSMLoadersto parse any Shapely geometry, not onlyGeoDataFrames.
0.4.1 - 2023-10-23
- Added more verbosity to the
AdministrativeBoundaryRegionalizer.
- Added automatic features count clearing in
PbfFileHandlerafter operation. - Added directory creation before saving OSM extracts index file.
0.4.0 - 2023-10-21
PbfFileClipperfor cutting biggerosm.pbffiles into smaller sizes for faster operations. Included clipping insidePbfFileDownloaderfor new bigger extracts sources. #369
- Bumped
h3ronpylibrary to0.18.0with added support for MacOS. Removed override with check for H3 operations if system isdarwin. Changed internal API to useContainmentMode. - Refactored
OSMLoader'sGroupedOsmTagsFilterfeatures grouping to be faster by refactoring pandas operations #354 - Sped up
VoronoiRegionalizerby removing redundant intersection operations and vectorizing ecdf2geodetic calculations #351 - Sped up
ContextualCountEmbedderby removing iteration over dataframe rows and vectorizing operations to work at a wholenumpyarray at once #359 - Added Geofabrik and OpenStreetMap.fr PBF extracts download services. Added automatic switch from default
protomapsdownload service togeofabrikon error. #158 #366
0.3.3 - 2023-08-13
- Modified
OSMPbfLoaderintersection logic. - Changed default tiles style for
plotting.plot_numeric_datafunction.
0.3.2 - 2023-08-12
- Migrated the repository ownership from
srai-labtokraina-ai. - Improved speed of
OSMPbfLoaderby moving intersection step to the end. - Changed API and improved
plotting.plot_numeric_datafunction. - Changed
AdministrativeBoundaryRegionalizerloading speed.
- Added checks for
osmnx1.5.0version with deprecatedgeometrymodule.
0.3.1 - 2023-08-09
- Repaired bug with
VoronoiRegionalizerand wrong polygon orientation.
0.3.0 - 2023-08-08
include_centerparameter to Neighbourhoods #288__version__entry to library API. #305srai.h3module with functions for translating list of h3 cells into shapely polygons and calculating local ij coordinates.
- Refactored H3Regionalizer to be faster using h3ronpy library #311
- BREAKING! Renamed NetworkType to OSMNetworkType and made it importable directly from
srai.loaders#227 - BREAKING! Renamed osm_filter_type and grouped_osm_filter_type into OsmTagsFilter and GroupedOsmTagsFilter #261
- Removed osmnx dependency version cap #303
- BREAKING! Removed
utilsmodule #128srai.utils._optionalmoved tosrai._optionalsrai.utils._pytorch_stubsmoved tosrai.embedders._pytorch_stubssrai.utils.downloadmoved tosrai.loaders.download(and can be imported withfrom srai.loaders import download_file)srai.utils.geocodemoved tosrai.regionalizers.geocode(and can be imported withfrom srai.regionalizers import geocode_to_region_gdf)srai.utils.geometryandsrai.utils.mergemoved tosrai.geometrysrai.utils.typingmoved tosrai._typing
- Improved simplification and buffering of polygons for Protomaps extracts #309
- Eliminated some occasional errors in large scale executions of VoronoiRegionalizer #313
0.2.0 - 2023-07-05
- Loading and saving fittable embedders
- BREAKING: renamed Regionizer to Regionalizer #282
- Freeze osmnx version to <=1.4.0, as 1.5.0 is not compatible with our code #303
0.1.1 - 2023-04-27
- SlippyMapRegionizer
- OSMTileLoader
- GTFS Loader from gtfs2vec paper
- GTFS2Vec Model from gtfs2vec paper
- GTFS2Vec Embedder using gtfs2vec model
- Hex2Vec Model from hex2vec paper
- Hex2Vec Embedder using hex2vec model
- Highway2Vec Model from highway2vec paper
- Highway2Vec Embedder using highway2vec model
- OSMOnlineLoader
- OSMPbfLoader
- OSMWayLoader
- Neighbourhood
- H3Neighbourhood
- AdjacencyNeighbourhood
- CountEmbedder
- ContextualCountEmbedder
- (CI) Changelog Enforcer
- Utility plotting module based on Folium and Plotly
- Project README
- Documentation for srai library
- Citation information
- Change embedders and joiners interface to have
.transformmethod - Change linter to Ruff and removed flake8, isort, pydocstyle
- Change default value inside
transformfunction of IntersectionJoiner to not return geometry. - Make torch and pytorch-lightning as optional dependencies (#210)
- IntersectionJoiner incorrectly returned feature columns when
return_geom=False(#208) - Tests for pandas >=2
0.0.1 - 2022-11-23
- PDM as a dependency management tool
- black, flake8, isort, mypy, pytest-cov
- pre-commit configuration
- Apache 2.0 license
- mkdocs for documentation
- GitHub pages to host documentation
- initial requirements
- H3 Regionizer
- Voronoi Regionizer
- Administrative Boundary Regionizer
- Intersection Joiner
- Geoparquet Loader