momepy.Simpson

class momepy.Simpson(gdf, values, spatial_weights, unique_id, binning='HeadTailBreaks', gini_simpson=False, inverse=False, categorical=False, categories=None, verbose=True, **classification_kwds)[source]

Calculates the Simpson’s diversity index of values within neighbours defined in spatial_weights.

Uses mapclassify.classifiers under the hood for binning. Requires mapclassify>=.2.1.0 dependency.

\[\lambda=\sum_{i=1}^{R} p_{i}^{2}\]

Adapted from [Fel18].

Parameters
gdfGeoDataFrame

GeoDataFrame containing morphological tessellation

valuesstr, list, np.array, pd.Series

the name of the dataframe column, np.array, or pd.Series where is stored character value.

spatial_weightslibpysal.weights, optional

spatial weights matrix - If None, Queen contiguity matrix of set order will be calculated based on objects.

unique_idstr

name of the column with unique id used as spatial_weights index

binningstr (default ‘HeadTailBreaks’)

One of mapclassify classification schemes. For details see mapclassify API documentation.

gini_simpsonbool (default False)

return Gini-Simpson index instead of Simpson index (1 - λ)

inversebool (default False)

return Inverse Simpson index instead of Simpson index (1 / λ)

categoricalbool (default False)

treat values as categories (will not use binning)

categorieslist-like (default None)

list of categories. If None values.unique() is used.

verbosebool (default True)

if True, shows progress bars in loops and indication of steps

**classification_kwdsdict

Keyword arguments for classification scheme For details see mapclassify documentation.

See also

momepy.simpson_diversity

Calculates the Simpson’s diversity index of data

Examples

>>> sw = momepy.sw_high(k=3, gdf=tessellation_df, ids='uID')
>>> tessellation_df['area_Simpson'] = mm.Simpson(tessellation_df,
...                                              'area',
...                                              sw,
...                                              'uID').series
100%|██████████| 144/144 [00:00<00:00, 455.83it/s]
Attributes
seriesSeries

Series containing resulting values

gdfGeoDataFrame

original GeoDataFrame

valuesSeries

Series containing used values

swlibpysal.weights

spatial weights matrix

idSeries

Series containing used unique ID

binningstr

binning method

binsmapclassify.classifiers.Classifier

generated bins

classification_kwdsdict

classification_kwds

__init__(gdf, values, spatial_weights, unique_id, binning='HeadTailBreaks', gini_simpson=False, inverse=False, categorical=False, categories=None, verbose=True, **classification_kwds)[source]

Initialize self. See help(type(self)) for accurate signature.

Methods

__init__(gdf, values, spatial_weights, unique_id)

Initialize self.