Estoy tratando de encontrar un algoritmo que pueda determinar los polígonos más pequeños posibles para cubrir varios puntos.
Sé cómo obtener el casco convexo alrededor de todos los puntos, pero digamos que los puntos están ubicados en diferentes islas, ¿es posible determinar que hay una brecha entre los diferentes grupos y obtener polígonos separados para cada grupo?
Respuestas:
Parece que primero necesita un algoritmo de agrupación (p. Ej., K-significa agrupación), seguido de un casco (casco convexo, pero un casco cóncavo puede tener un área más pequeña pero más difícil de implementar).
fuente
La herramienta "Clustr" que utilizamos (d) en Flickr para generar los archivos de forma derivados de fotos geoetiquetadas podría ser útil:
https://github.com/straup/Clustr
(Stackexchange me impide agregar más de 2 enlaces en esta publicación. Si busca "la forma de alfa", puede encontrar la publicación de blog code.flickr que hicimos cuando anunciamos los archivos de forma).
Fue diseñado para tratar de generar el contorno a partir de una bolsa de puntos en constante cambio (también conocido como fotos). Los bits matemáticos reales están aquí:
http://www.cgal.org/Manual/3.2/doc_html/cgal_manual/Alpha_shapes_3/Chapter_main.html
Clustr tiene algunos errores conocidos, pero en su mayoría funciona, la mayoría de las veces ...
fuente
desde la perspectiva de una base de datos, parece que quiere agrupar los puntos en las islas y hacer un casco convexo en cada grupo.
en postgis se vería algo así como:
/ Nicklas
fuente
arcpy.AggregatePoints_cartography (pntGeometryList, outAppendFeatureClass, buffer_radius)
Donde pntGeometryList es su lista de puntos, outAppendFeatureClass la clase de entidad que creará la agregación y buffer_radius que determinará los enlaces entre cada punto 'orientado externamente'.
fuente
Al principio pensé que la sugerencia de Dan para k-means tenía sentido, pero después de mirar los resultados del conjunto de datos del mouse en la página de wikipedia para k-means , parece que la agrupación de Expectation-Maximization está más cerca de lo que quieres.
fuente