2 votos

¿Cómo crear una "línea de techo" para un área poligonal general?

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?

2voto

Ethan Puntos 16

Tal vez quiera consultar este hilo. Es un método para derivar la línea central de los polígonos, y para mí el producto se parece a los tejados.

1voto

Mat Puntos 196

Creo que lo que pides es la esqueletización

Ver Wikipedia en esqueleto recto y esqueleto topológico

Esto dará el efecto de un techo inclinado, incluso en polígonos de forma irregular (no estoy seguro de lo bien que funciona con donuts, por ejemplo, atrios). Se basa en mallas voronoi.

No lo he probado, pero la hierba tiene un algoritmo llamado v.voronoi con la opción -s para producir esqueletos aunque parece que sólo funciona con capas puntuales. SAGA tiene un módulo similar pero para rásters.

ver también esta pregunta para otras opciones (por ejemplo, creo que extensión postgis sf-gcal puede hacerlo)

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X