Sobre este proyecto
it-programming / desktop-apps
Abierto
Trabajo con diseño CAD, en particular diseñando curvas de nivel. Pero la herramienta que me interesaría desarrollar también me serviría si corriera sobre una plataforma GIS (QGis por ejemplo).
Punto 1 – Referente al Suavizado:
Me gustaría contar con una herramienta que cree polilíneas de nivel (con un intervalo altimétrico configurable) lo más "suaves posible", es decir que la sucesión de puntos que las determinan definan curvas con el radio máximo posible sin dejar ángulos menores en las transiciones entre curvas con curvatura opuesta, dentro de un margen de error altimétrico determinado y buscando que los segmentos definidos entre puntos consecutivos tengan la mayor longitud posible no bajando de un mínimo a definir (por ejemplo 2.5 metros).
En otras palabras, los ángulos definidos en cada vértice de las polilíneas de nivel deberán ser lo más amplios posibles respetando el largo mínimo definido para los segmentos (Un ángulo bueno para segmentos de 2.5 m es de 156 grados).
Tal vez se pueda utilizar la idea de hacer máxima la sumatoria de los ángulos de cada uno de los vértices de una polilínea y además como paso previo incorporar un proceso de Kriging que de por si suaviza las curvas de nivel, obtenidas de una muestra de puntos discreta, sin perder coherencia con la realidad. En caso que el ángulo en algunos de los vértices quede menor que un valor definible, resaltarlo de alguna manera como para poder resolver el caso manualmente.
Punto 2 – Referente al Recorte:
Además las curvas de nivel generadas no deben quedar demasiado próximas horizontalmente entre si. La herramienta debe determinar, en los diferentes sectores, con qué intervalo altimétrico debe hacer cada curva de nivel para cumplir con la distancia horizontal mínima requerida. Teniendo en cuenta además el intervalo mínimo vertical indicado y que los saltos deben ser múltiplos de dicho intervalo y definibles, por ejemplo poder elegir si hacer polilíneas de nivel con intervalos en cms 3, 6, 12, 15, 18, 21,24 o 3, 6, 12, 24.
Un detalle relacionado con esto último, a tener en cuenta, es que las mismas polilíneas de nivel en algunos lugares se acercan (cuando la pendiente del terreno aumenta) y en otros se alejan (cuando la pendiente disminuye), por este motivo la misma polilínea de nivel en algunos tramos debe quedar visible y en otros oculta (Pero que pueda verse de ser necesario, por ejemplo quedando en una capa diferente).
Se deben poder cargar un límite exterior, hasta donde llegarán las polilíneas de nivel generadas, y límites internos, donde no deberán generarse polilíneas.
En resumen, los parámetros de los cuales debe partir la herramienta para realizar el proceso son los siguientes:
1- Intervalo vertical mínimo entre curvas de nivel (Ejemplo 3 cms).
2- Margen de tolerancia vertical (Ejemplo +-1.5 cms).
3- Distancia horizontal mínima.
4- Longitud mínima de segmentos.
5- Ángulo mínimo a partir del cual resaltar los vértices “problemáticos”.
6- Secuencia de saltos verticales para selección de curvas de nivel en los casos que las mismas estén demasiado cerca horizontalmente.
Todo esto partiendo de una nube de puntos con coordenadas cartesianas X,Y,Z., Que pueda ser cargada en formatos .csv o .las/.laz. En el caso de los archivos .csv debe admitir la siguiente configuración: separados por coma y que cuenten con 5 “columnas” - Nombre de punto, coordenada X, coordenada Y, altura, descripción.
Se adjunta archivo como ejemplo. Son polilíneas de nivel suavizadas y recortadas Manualmente utilizando un software CAD (Las mismas se ilustran en color rojo).
En la imagen los números indican el intervalo vertical en cms en el que se encuentran las polilíneas en cada sector.
Las líneas negras se conservaron en el informe a modo de indicar en qué lugares cambia la altura a la que están diseñadas las polilíneas de nivel, no está dentro de los requisitos que la herramienta las diseñe. IDEM para el fondo de colores que indica la altura del terreno según la tonalidad, se conservó simplemente a modo de facilitar la interpretación de las polilíneas de nivel.
Categoría Programación y Tecnología
Subcategoría Aplicaciones de escritorio
¿Cuál es el alcance del proyecto? Crear una aplicación nueva
¿Es un proyecto o una posición? Un proyecto
Actualmente tengo Tengo las especificaciones
Disponibilidad requerida Según se necesite
Plataformas requeridas Windows
Plazo de Entrega: No definido
Habilidades necesarias