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
- @u3ks made their first contribution in #572
- @anastassiavybornova made their first contribution in #632
Full Changelog: v0.7.2...v0.8.0