Releases: pysal/momepy
v0.9.0
What's Changed
Enhancements
- ENH: add Streetscape class by @martinfleis in #658 and #667
- ENH: do not fail with 3d nodes -
preprocess.remove_false_nodes()
by @jGaboardi in #661
Documentation
- DOC: clear the installation instructions by @martinfleis in #660
Other Changes
- handling edge cases in
preprocessing.FaceArtifacts
by @jGaboardi in #666
Full Changelog: v0.8.1...v0.9.0
v0.8.1
What's Changed
Documentation
- DOC: reflect changes in RTD by @martinfleis in #651
Other Changes
- let COINS run even if there's overlapping geometry by @martinfleis in #652
- CI: pin fiona by @martinfleis in #654
Full Changelog: v0.8.0...v0.8.1
v0.8.0
What's Changed
API Changes
Momepy brings completely new reimplementation of core measurement classes. These are now available as functions and depend on libpysal.Graph implementation of spatial matrices. Please see the migration guide and updated user guide for more.
- API: allow silencing of FutureWarnings from legacy API by @martinfleis in #617
Enhancements
- ENH: first bits of refactored dimension by @martinfleis in #532
- ENH: always store x, y as node attributes in gdf_to_nx, optionally cast node labels to integers by @martinfleis in #546
- REF: functional implementation of shape module by @martinfleis in #550
- ENH: add orientation and shared_walls functional versions by @martinfleis in #553
- ENH: add alignment to the new API by @martinfleis in #554
- ENH: neighbor_distance using Graph and new API by @martinfleis in #555
- ENH: mean_interbuilding_distance and building_adjacency by @martinfleis in #556
- ENH: add neighbors by @martinfleis in #557
- ENH: refactor tessellation by @martinfleis in #559
- ENH: street_alignment and get_nearest_street by @martinfleis in #566
- ENH: describe as a replacement of AverageCharacter by @martinfleis in #570
- functional courtyards calculation by @u3ks in #572
- functional reached calculations by @u3ks in #575
- functional node_density implementation by @u3ks in #576
- ENH: adaptive buffer as a tessellation limit by @martinfleis in #590
- Functional blocks by @u3ks in #580
- Functional percentiles by @u3ks in #589
- Functional density by @u3ks in #586
- Functional distribution by @u3ks in #588
- Functional dimension by @u3ks in #587
- Functional diversity by @u3ks in #581
- _describe API refactoring by @u3ks in #584
- Functional arearatio by @u3ks in #583
- Street profile by @u3ks in #593
- ENH: add get_nearest_node by @martinfleis in #600
- API: return morphological tessellation as a GeoDataFrame by @martinfleis in #602
- Faster node density by @u3ks in #609
- ENH: add mean_deviation by @u3ks in #620
- ENH: add preserve_index keyword to gdf_to_nx to allow preservation of index and order by @martinfleis in #641
- ENH: add flow mode to COINS by @martinfleis in #644
- ENH: allow extraction of coins ends in COINS.stroke_attribute by @martinfleis in #646
- Approximate shared walls by @u3ks in #643
- expose buffer variable by @u3ks in #649
Bug Fixes
- support strings in
elements.get_node_id()
by @jGaboardi in #522 - BUG: fix enclosed tessellation index allocation when threshold eliminates buildings by @martinfleis in #568
- BUG/ENH: support custom enclosure index is in tessellation and GeoDataFrame as enclosure input by @martinfleis in #582
- BUG: fix describe_ function when count is not present by @u3ks in #608
- BUG: fix a case when there's only a single building to be passed to voronoi_frames by @u3ks in #621
- BUG: refactor computation of angles in COINS by @anastassiavybornova in #632
- BUG: fix ordering of closed loops in remove_false_nodes by @martinfleis in #645
- BUG: check loops in remove_false_nodes against any node degree by @martinfleis in #647
Deprecations
- API: deprecate legacy API in favour of Graph-based functional implementation by @martinfleis in #619
Documentation
- DOC: fix clustering example by @martinfleis in #521
- DOC: add links to discord by @martinfleis in #535
- DOC: update dev installation instructions by @martinfleis in #544
- DOC: add citation.cff by @martinfleis in #592
- DOC: rework API docs around the new functional stuff by @martinfleis in #597
- DOC: note on a precision issue in enclosed_tessellation by @martinfleis in #598
- DOC: User guide refresh by @martinfleis in #599
- DOC: create usable env on RTD, update clustering by @martinfleis in #601
- DOC: execute notebooks and ensure they're tested by @martinfleis in #603
- DOC: add first batch of examples + testing by @martinfleis in #611
- DOC: remaining examples in the new API by @martinfleis in #615
- DOC: expose get_nearest_node, fix fmt by @martinfleis in #616
- DOC: update docstrings to match numpy2 outputs by @martinfleis in #624
- DOC: User guide fixes for elements examples by @u3ks in #628
- DOC: update rest of the guide by @martinfleis in #631
- DOC: update face artifacts bibtex by @martinfleis in #636
- DOC: add migration guide to new API by @martinfleis in #637
Other Changes
- CI: fix action creating issue from pytest by @martinfleis in #530
- CI/TST: fix test, rm log action, ruff-format by @martinfleis in #533
- TYP: add type hints to functional._dimension by @martinfleis in #534
- ENH: improved node consolidation functions by @gsagostini in #377
- CI: test on Apple Silicon by @martinfleis in #542
- COMPAT: geopandas 1.0 compatibility by @martinfleis in #551
- GHA: move user guide testing to separate action, add workflow dispatch by @martinfleis in #561
- TYP: consistency in typing by @martinfleis in #567
- notes on plans with the rest of dimension classes by @martinfleis in #536
- REF: speed-up describe using numba by @martinfleis in #571
- MAINT: compatibility, warning cleanup, test lint by @martinfleis in #574
- linting & formatting for
benchmarks/*
anddocs/*
by @jGaboardi in #578 - API: deprecation decorators for transition to functional API by @martinfleis in #406
- DEP: bump libpysal minimum to 4.11 by @martinfleis in #594
- COMPAT: numpy 2.0 compatibility by @martinfleis in #596
- gha for release notes - #543 by @jGaboardi in #604
- Update
release.yml
- troubleshoot release action failure by @jGaboardi in #607 - DOC: ruff user guide by @martinfleis in #613
- update precommit to ruff docs dir by @jGaboardi in #614
- minor type hinting fix by @martinfleis in #618
- TYP: add type hints to the graph module by @martinfleis in #623
- ENH: either support MultiIndex or raise an error when one is given by @u3ks in #622
- REF: do not return building_id from generate_blocks by @u3ks in #627
- REF: remove result_index attribute from describe_agg by @u3ks in #626
- CI: bump minimal requirements as per SPEC 0 by @martinfleis in #634
- TST: update for changes in GEOS by @martinfleis in #638
- REF: refactor remove_false_nodes by @martinfleis in #642
- bump libpysal requirement to 4.12 by @martinfleis in #650
- TST: Fix expected test values when using higher_order by @u3ks in #648
New Contributors
- @dependabot made their first contribution in #524
- @gsagostini made their first contribution in #377
- @u3k...
Version v0.7.2
Minor patch bringing numpy 2 compatibility.
Full Changelog: v0.7.1...v0.7.2
Version v0.7.1
Minor patch release ensuring compatibility with GeoPandas 1.0.
Full Changelog: v0.7.0...v0.7.1
v0.8.0-alpha2
What's Changed
Enhancements
- ENH: first bits of refactored dimension by @martinfleis in #532
- ENH: always store x, y as node attributes in gdf_to_nx, optionally cast node labels to integers by @martinfleis in #546
- REF: functional implementation of shape module by @martinfleis in #550
- ENH: add orientation and shared_walls functional versions by @martinfleis in #553
- ENH: add alignment to the new API by @martinfleis in #554
- ENH: neighbor_distance using Graph and new API by @martinfleis in #555
- ENH: mean_interbuilding_distance and building_adjacency by @martinfleis in #556
- ENH: street_alignment and get_nearest_street by @martinfleis in #566
- ENH: describe as a replacement of AverageCharacter by @martinfleis in #570
- DOC: add citation.cff by @martinfleis in #592
- API: return morphological tessellation as a GeoDataFrame by @martinfleis in #602
Bug Fixes
- support strings in
elements.get_node_id()
by @jGaboardi in #522 - BUG: fix enclosed tessellation index allocation when threshold eliminates buildings by @martinfleis in #568
Documentation
- DOC: fix clustering example by @martinfleis in #521
- DOC: add links to discord by @martinfleis in #535
- DOC: rework API docs around the new functional stuff by @martinfleis in #597
- DOC: note on a precision issue in enclosed_tessellation by @martinfleis in #598
- DOC: User guide refresh by @martinfleis in #599
- DOC: create usable env on RTD, update clustering by @martinfleis in #601
- DOC: execute notebooks and ensure they're tested by @martinfleis in #603
Other Changes
- CI: fix action creating issue from pytest by @martinfleis in #530
- CI/TST: fix test, rm log action, ruff-format by @martinfleis in #533
- TYP: add type hints to functional._dimension by @martinfleis in #534
- ENH: improved node consolidation functions by @gsagostini in #377
- CI: test on Apple Silicon by @martinfleis in #542
- DOC: update dev installation instructions by @martinfleis in #544
- COMPAT: geopandas 1.0 compatibility by @martinfleis in #551
- ENH: add neighbors by @martinfleis in #557
- ENH: refactor tessellation by @martinfleis in #559
- GHA: move user guide testing to separate action, add workflow dispatch by @martinfleis in #561
- TYP: consistency in typing by @martinfleis in #567
- notes on plans with the rest of dimension classes by @martinfleis in #536
- REF: speed-up describe using numba by @martinfleis in #571
- functional courtyards calculation by @u3ks in #572
- MAINT: compatibility, warning cleanup, test lint by @martinfleis in #574
- linting & formatting for
benchmarks/*
anddocs/*
by @jGaboardi in #578 - functional reached calculations by @u3ks in #575
- functional node_density implementation by @u3ks in #576
- BUG/ENH: support custom enclosure index is in tessellation and GeoDataFrame as enclosure input by @martinfleis in #582
- ENH: adaptive buffer as a tessellation limit by @martinfleis in #590
- API: deprecation decorators for transition to functional API by @martinfleis in #406
- Functional blocks by @u3ks in #580
- Functional percentiles by @u3ks in #589
- DEP: bump libpysal minimum to 4.11 by @martinfleis in #594
- Functional density by @u3ks in #586
- Functional distribution by @u3ks in #588
- Functional dimension by @u3ks in #587
- Functional diversity by @u3ks in #581
- _describe API refactoring by @u3ks in #584
- Functional arearatio by @u3ks in #583
- Street profile by @u3ks in #593
- COMPAT: numpy 2.0 compatibility by @martinfleis in #596
- ENH: add get_nearest_node by @martinfleis in #600
- gha for release notes - #543 by @jGaboardi in #604
- Update
release.yml
- troubleshoot release action failure by @jGaboardi in #607
New Contributors
- @dependabot made their first contribution in #524
- @gsagostini made their first contribution in #377
- @u3ks made their first contribution in #572
Full Changelog: v0.7.0...v0.8.0-alpha2
Version v0.7.0
Version v0.6.0
Momepy now requires shapely 2.0 or newer to run and no longer depends on PyGEOS. The
highlights of the release:
Enhancements
- ENH: support bi-directional roads in
gdf_to_nx
(#357) - ENH: geometry-based simplification of roundabouts (#371, #392)
- REF: update for shapely 2.0 (#479)
Bug fixes
- resolves bug in
Percentiles
append. (#427)
New Contributors
- @phuismann made their first contribution in #360
- @kopytjuk made their first contribution in #357
- @Thaulino made their first contribution in #379
- @gregmaya made their first contribution in #371
Full Changelog: v0.5.3...v0.6.0
Version v0.5.4
Minor patch bringing some bug fixes and ensuring the full compatibility with the recent
versions of dependencies.
Fixes:
- BUG: return itself when no change possible in remove_false_nodes (#365)
- BUG: make COINS independent of the GeoDataFrame index (#378)
- Added warning for gdp_to_nx if geometries are not LineStrings (#379)
- REF: remove deprecated pandas append (#382, #384)
- MAINT: address numpy.nanpercintle warning (#387)
- MAINT: handle scenarios leading to dimensions.StreetProfile() warnings (#389)
- handle All NaN slice warning (#395)
- Fix various warnings (#398)
- BUG: get_network_ratio non-interescting joins fix (#409)