I have 50m X 200m polygon which has several small polygons inside. I would like to define how scattered small polygons inside a big polygon. I was wondering if there is a tool which can calculate some index based on the distribution of polygons across a big polygon. For example, if polygons are gathered it would give index 0 and if they are scattered well index would be 1. Is there any tool that I can use? ArcGIS or QGIS would be good.
ArcGIS's Spatial Analyst toolset has
- Spatial Auto-correlation tool
Measures spatial autocorrelation based on feature locations and attribute values using the Global Moran's I statistic.
Determines whether features, or the values associated with features, exhibit statistically significant clustering or dispersion over a range of distances.
I don't see any tool in QGIS that definitely does the same thing. Here are a few things that look like they might do something relevant.
Spatial point pattern analysistool provides "a simple indication of the spatial distribution of points." This tool has a tutorial here. The
centroidstool will convert your polygons to points so you can run the spatial point pattern analysis tool.
QGIS also has various cluster analysis tools. Most of them just divide points up into clusters without providing any measure of "clustered-ness" (ie spatial homo/heterogeneity).
The Visualist plugin has the tag
spatial autocorrelation map.
Per user30184's comment, you could try to implement the spatial homogeneity measures (Ripley's K and L functions) explained in this Wikipedia article. Ripley's K function is explained in more detail in this article. Here are a few tips/suggestions:
- As above, convert the small polygons to points.
- Use the
distance matrixtool to calculate the distance between each pair of points (this will provide the dij values).