Tengo un polígono con una forma arbitraria (asumiendo que está bien formado, sin auto-intersección, sin puntos duplicados, etc.), y necesito subdividir el polígono en sub-polígonos como se definiría el techo en la parte superior de un edificio. ¿Cómo puedo hacer eso en cualquier software GIS, o a través de cualquier biblioteca de código abierto, o a través de cualquier algoritmo?
La razón por la que pregunto esto es porque para mi terreno plano (con forma 2D desconocida obviamente), tengo que aplicar manualmente gradientes artificiales en lugares apropiados Para que el agua pueda fluir a las celdas vecinas correctamente cuando estoy aplicando la implementación D8 para calcular la acumulación de flujo. Así que los lugares más intuitivos para la subdivisión serían los lugares donde las líneas de techo están tomando a lo largo.
Me interesaría saber si hay algún algoritmo que se pueda usar para esto, y también si hay alguna implementación de bibliotecas de código abierto C++ para esto (no quiero reinventar la rueda); ¿es GDAL o CGAL o algún algoritmo geométrico que ya tenga esta implementación?