PySAL 2.5.0 represents 6 months of enhancements, bug-fixes, widening of test coverage, and improved documentation. All users are encouraged to upgrade to this version as there are numerous optimizations as well as new features (see below) that have been implemented.
Overall, there were 543 commits that closed 190 issues, together with 33 pull requests since our last release on 2021-01-31.
Package Highlights
esda
This version merges two large new sets of functionalities:
- map correspondence measures in [`esda.map_comparison`](https://github.com/pysal/esda/blob/master/esda/map_comparison.py)
- shape statistics in [`esda.shape`](https://github.com/pysal/esda/blob/master/esda/shape.py)
segregation
Version 2.0 of the `segregation` package brings a new API, a massive code restructuring, and dozens of new features, enhancements, and bug fixes. For a complete overview of the new API, please see the documentation page at <https://pysal.org/segregation/api>. The new version does away with the distinction between spatial and aspatial segregation indices and instead partitions the functions based on single-group and multi-group measures. The spatial/aspatial distinction is echewed in version 2.0 because *all* aspatial indices can be generalized into spatial versions, following the logic of Reardon and O'Sullivan (see a description in [this example notebook](https://nbviewer.jupyter.org/github/knaaptime/segregation/blob/2.0/notebooks/01_singlegroup_indices.ipynb)). Furthermore, "space" can be incorporated into the index calculation using either Euclidean distance or the shortest path along a travel network. With this logic, the package now offers multiscalar segregation profiles for 23 different segregation indices (a first in any software package).
tobler
Added [pychnophylactic interpolation](https://www.tandfonline.com/doi/abs/10.1080/01621459.1979.10481647).
spaghetti
The highlights of this release include functionality to [split network arcs by count](https://pysal.org/spaghetti/generated/spaghetti.Network.html#spaghetti.Network.split_arcs), which compliments the previously available distance splitting, and a [paper](https://doi.org/10.21105/joss.02826) in the Journal of Open Source Software. Also, Python 3.6 is no longer supported.
spopt
This release includes another model to add to the suite: RandomRegions. RandomRegions, originally written by David C. Folch (dfolch) and Serge Rey, builds regions based on an initial random seed while considering user-defined specifications such as: region count, cardinality, contiguity, and compactness (citation?). Also, we have improved the testing coverage for the models inlcuded in the initial release: AZP, Max-*p*-regions, Region-*k*-means, Skater, Spenc, and WardSpatial.
<a name="changes-by-package"></a>
Detailed Changes by Package
<a name="libpysal"></a>
libpysal
* [412:](https://github.com/pysal/libpysal/pull/412) Add missing endianness in WK1 reader.
* [413:](https://github.com/pysal/libpysal/pull/413) Update unittests, etc
* [415:](https://github.com/pysal/libpysal/pull/415) classify repo as Python
* [389:](https://github.com/pysal/libpysal/pull/389) add docs action workflow
* [411:](https://github.com/pysal/libpysal/pull/411) Return a dataframe with info on available datasets
* [409:](https://github.com/pysal/libpysal/issues/409) Do not fetch examples on import
* [410:](https://github.com/pysal/libpysal/pull/410) Do not poll remotes on init.
* [400:](https://github.com/pysal/libpysal/pull/400) Fixed `index2da` causing inverted output
* [399:](https://github.com/pysal/libpysal/issues/399) Raster weights `w2da` failing on 3.6
* [408:](https://github.com/pysal/libpysal/issues/408) Correct way to compute spatial weights in libpysal