4 votos

Operaciones vectoriales y geométricas en 3D en SIG de código abierto

Hay algunos programas de código abierto realmente buenos para trabajar con vectores 2D. Por ejemplo QGIS tiene operaciones como buffer / clip / dissolve / select by location / join attributes by location... Pero ¿hay algo que permita estas operaciones en 3D ?

Lo más parecido por lo que he probado hasta ahora parece ser HIERBA . Maneja Puntos 3D , Líneas 3D y... Posiblemente áreas 3D como ¿Los límites? Hay Caras 3D pero según el manual de GRASS no parece estar soportado por v.select etc. Y según http://grasswiki.osgeo.org/wiki/Help_with_3D el volúmenes no parece estar soportado en absoluto en este momento.

Para las operaciones con superficies (áreas 3d) se ha demostrado que los raster son una alternativa razonablemente buena y están bien soportados. Pero para los volúmenes ni siquiera puedo encontrar una manera de convertir la malla de la cara cerrada / volumen a la trama 3D + el tiempo de procesamiento y la cantidad de datos.

Concretamente, ¿existe alguna herramienta de código abierto capaz de realizar la operación "puntos 3d dentro del volumen"? (volumen definido por caras en formato DXF)

¿Tal vez PostGis o algunas bibliotecas de Python capaces de cargar volúmenes?

Pero además, ¿una herramienta capaz de hacer superposiciones de volumen, topes, unir atributos por ubicación, recortar por plano, recortar líneas / puntos / áreas por volumen, etc.?

0 votos

Lo último que supe es que el 3D en QGIS estaba todavía en desarrollo. Sería bueno tener buenas herramientas SIG 3d (código abierto sería agradable) como últimamente estoy viendo más solicitudes de datos 3d y las herramientas (incluyendo Esri) son un poco torpe para la edición de 3d..

3voto

hernan43 Puntos 566

Debería consultar SFCGAL que es una biblioteca de C++ que envuelve a CGAL con el objetivo de apoyar la norma ISO 19107:2013 y OGC Simple Features Access 1.2 para las operaciones en 3D.

Se puede utilizar desde una versión especializada de PostGIS, Aquí están las funciones para PostGIS 2.1 . Además, comprueba las funciones existentes que coinciden con \df ST_3D* que no requiere SFCGAL.

Sin embargo, todo es bastante vanguardista y no está completo al 100% (todavía). Por ejemplo, veo SFCGAL::algoritmo::volumen para calcular el volumen de una geometría en la API pública de C++, pero no lo veo en la API pública en C o como una función de PostGIS (que utiliza la API de C). Estoy seguro de que llegará en algún momento.

Además, consulte el Vídeo y taller de PostGIS 3D de FOSS4G.

0 votos

Mientras tanto he encontrado esta pregunta relacionada con PostGIS: gis.stackexchange.com/questions/147744/ - parece que todavía no funciona bien, pero es estupendo que lo consiga...

0voto

Wartin Puntos 854

Echa un vistazo a elegante y Pyshp

Estas son dos bibliotecas de python que pueden tratar con datos 3d.

También deberías usar matplotlib para la visualización

0 votos

He probado el shapely y no se acerca ni de lejos al 3D. Apenas puede definir puntos 3D, líneas y polígonos por vértices 3D y ya está. Operaciones como punto_a.intersect(line_a) se ejecutan sólo en 2D y da True incluso cuando se prueba el punto (1,1,0) a la línea [(0,0,0),(2,2,2)]. Pyshp es sólo la biblioteca para leer / escribir shapefiles. Nada sobre 3D.

0 votos

Shapely y GEOS se denominan a veces "2,5D", ya que hay muy pocas operaciones que utilicen la dimensión Z. La mayoría de las operaciones son 2D, con un simple almacenamiento de la tercera. Sólo "interpolar" y algunas otras tratan adecuadamente los datos 3D reales.

0voto

s1d Puntos 91

Empecé a sumergirme en VTK - El kit de herramientas de visualización (VTK) es un sistema de software de código abierto y de libre acceso para gráficos por ordenador en 3D. Es una herramienta bastante potente y robusta, parece ser capaz de hacer todas las operaciones que le pedí aunque todavía no puedo confirmarlo todo. Por otro lado no soporta datum y proyección como se espera de un software GIS.

http://www.vtk.org/Wiki/VTK

Por mi comodidad lo estoy usando como instalación Python de Anaconda - http://continuum.io/downloads - portátil, ampliable fácilmente con el paquete VTK y muchos otros paquetes útiles como shapely, fiona, gdal...

Aquí se pueden encontrar muchos ejemplos:

http://www.vtk.org/Wiki/VTK/Examples/Python - uno de ellos: Calcula la intersección de dos esferas - http://www.vtk.org/Wiki/VTK/Examples/Python/PolyData/BooleanOperationPolyDataFilter

También hay una interfaz gráfica de usuario de código abierto muy agradable para la visualización llamada Paraview :

http://www.vtk.org/Wiki/ParaView - también puede ayudar a escribir scripts de python porque los estados de la escena se pueden guardar como archivo de python

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