Estoy buscando una manera de implementar la visibilidad (también conocida como cuenca visual). Encontré una pregunta anterior de GIS SE que sugería algunas aplicaciones SIG (no lo que necesito, estoy tratando de integrar los cálculos), y también SAGA. SAGA se parece más a lo que estoy buscando (clases C ++, Java, C #), pero no puedo entender lo suficiente de la documentación de la API para descubrir qué clases necesito incluso para instanciar (o subclase).
No estoy atado a la idea de SAGA: solo estoy buscando una biblioteca / motor que pueda hacer cálculos de intervisibilidad.
Las restricciones son que debe ser:
- razonablemente "ligero" (ya que me gustaría poder cubrir incrustado / móvil)
- razonablemente de código abierto (ya que mi aplicación será de código abierto, aunque soy flexible sobre exactamente qué licencia siempre que sea compatible con (L) GPL).
¿Alguien puede recomendar una biblioteca o motor de este tipo y proporcionar una descripción o un enlace a qué parte de la biblioteca o motor necesito usar para los cálculos de la cuenca visual?
Alternativamente / además, también agradecería referencias a documentos o tutoriales que explican cómo hacer estos cálculos de manera eficiente (según corresponda a dispositivos integrados / móviles, por lo que una implementación basada en GPU puede no ser tan útil como algo que es más general, y maneja dispositivos de baja potencia)
Mi preferencia es una implementación existente, en lugar de crear algo yo mismo (que es una opción de respaldo).
Editar: C ++ no es un requisito firme: cualquier cosa razonablemente portátil (C #, C ++, Java) servirá. Estoy intentando una biblioteca o plantillas en lugar de incrustar una aplicación grande.
Respuestas:
Como habrás visto en la pregunta GIS SE a la que se hace referencia , no parece haber mucho en la forma de paquetes independientes de cuenca visual al menos en el mercado de código abierto más allá de SAGA y GRASS GIS. Además de escribir una envoltura alrededor del código para estos algoritmos, puede terminar implementando usted mismo viewhed desafortunadamente. (Aunque me gustaría ser corregido en esto).
Si lee la documentación para la función GRASS r.viewshed , proporciona una descripción amplia del algoritmo y una referencia al siguiente documento que analiza a fondo un algoritmo de cuenca visual :
Alternativamente, el artículo de Wikipedia sobre Viewshed proporciona referencias:
fuente
Hay un paquete gratuito llamado RadioMobile que está diseñado para estudios de comunicación por radio que genera un cobertizo de vista. La salida se basa en una entrada DEM y puede ser un vector (archivo de puntos) o Ráster. He podido usar el archivo de puntos vectoriales para crear polígonos a través de algunas secuencias de comandos que estaré encantado de compartir con ustedes. Como puede establecer una paleta en la salida de ráster, también puede convertir el ráster en vector usando gdal.
El programa tiene una interfaz gráfica de usuario, pero también se puede ejecutar en modo por lotes para que pueda incorporarlo fácilmente en un programa. Si bien hay muchas más opciones de las necesarias para una cuenca visual tradicional, puede configurarlas como nulas para que no se incluyan los efectos como la potencia del transmisor; consulte http://www.g3tvu.co.uk/RM_Batch_Files.htm
El programa está en http://www.cplus.org/rmw/rme.html El autor también es muy útil.
Espero que esto ayude,
fuente