momepy.shape_index#
- momepy.shape_index(geometry, longest_axis_length=None)[source]#
Calculates the shape index of each object given its geometry.
\[{\sqrt{{area} \over {\pi}}} \over {0.5 * \textit{longest axis}}\]- Parameters:
- geometryGeoDataFrame | GeoSeries
A GeoDataFrame or GeoSeries containing polygons to analyse.
- longest_axis_lengthNDArray[np.float64] | Series | None, optional
array of longest axis lengths. If None, it will be calculated, by default None
- Returns:
- Series
Examples
>>> path = momepy.datasets.get_path("bubenec") >>> buildings = geopandas.read_file(path, layer="buildings") >>> momepy.shape_index(buildings) 0 0.756403 1 0.624834 2 0.767028 3 0.721395 4 0.768958 ... 139 0.750622 140 0.725074 141 0.636296 142 0.728289 143 0.797739 Length: 144, dtype: float64
If you know the longest axis length, you can pass it to skip the computation step.
>>> lal = momepy.longest_axis_length(buildings) >>> momepy.shape_index(buildings, longest_axis_length=lal) 0 0.756403 1 0.624834 2 0.767028 3 0.721395 4 0.768958 ... 139 0.750622 140 0.725074 141 0.636296 142 0.728289 143 0.797739 Length: 144, dtype: float64