¿Es posible crear dxf 3D con OGR?

8

¿Alguien sabe si es posible crear un dxf 3D con OGR? Me gustaría asignar un valor Z a las curvas de nivel y luego exportarlas a dxf para un trabajo cad.

PD. Sé que FME puede hacer esto, sin embargo, me gustaría intentar encontrar una solución gratuita y, si es posible, hacerlo en QGIS.

Nathan W
fuente
Autocad map3d hace esto fácilmente.
Brad Nesom
2
Sí, pero el mapa de Autocad no es realmente gratuito
Nathan W

Respuestas:

9

Más fácil de lo que pensaba (gracias a BenjaminGolder por el consejo):

ogr2ogr -f "DXF" Contours.dxf Contours.TAB -zfield Height

Contours.TAB es el archivo de entrada de la pestaña MapInfo.

Nathan W
fuente
1
Por lo que puedo decir, esto funcionará para las líneas de contorno, pero no para las líneas 3d verdaderas, que tienen una coordenada (x, y, z) para cada punto, y no un valor z para cada punto de la línea
johanvdw
He estado intentando esto en FWTools (2.4.7) sin suerte. ¿Alguien ha tenido suerte? ¿No estoy seguro de si me falta algo en mi GDAL?
Ryan Garnett
3

En aras de la exhaustividad.

Creo que esto debería ser un comentario sobre la respuesta de Regan. Pero como no tengo suficiente reputación, lo dejaré como respuesta.

El escritor DXF admite capas 2.5D y, con una entrada de línea, debería generar una cadena lineal 3D en dxf.

En el caso de los POLÍGONOS de entrada, debe ser más cuidadoso, ya que el controlador predeterminado genera un HATCH dxf con una Polilínea. Y por especificación de formato, esa línea no admite coordenadas Z, solo X, Y.

Si ingresa polígonos, ogr puede exportar dxf con cadenas de líneas 3D que representan esos polígonos. Para eso, debe configurar la opción de configuración DXF_WRITE_HATCH en NO.

//Bash
export DXF_WRITE_HATCH=NO
ogr2ogr -f "DXF" Contours.dxf Contours.TAB

//Windows
set NEWVAR=SOMETHING
ogr2ogr -f "DXF" Contours.dxf Contours.TAB

Hasta donde sé, esto no está documentado ni explicado en ningún lado, se agregó en la revisión 24991

kxtells
fuente
1

Nunca lo he intentado, pero debería ser posible. El código fuente para el controlador DXF escribe valores Z en dxf si la geometría es 2.5D, que (de acuerdo con la fuente del lector de archivos de forma ) es lo que tendrá si la forma de entrada tiene valores Z.

Regan Sarwas
fuente
Eso suena bien. Siguiente pregunta, ¿cómo se crea un shapefile con valores Z? Digamos que tengo una columna llamada Altura, ¿hay alguna manera fácil de hacer que este sea el valor Z?
Nathan W
Siempre que el shapefile sea compatible con Z, con ArcGIS, puede usar un bloque de código en la calculadora de campo. No sé cómo lo harías en Qgis.
Regan Sarwas
1
en la documentación de ogr2ogr, parece que puede crear un archivo de forma 3D utilizando el -zfieldargumento y luego especificando un nombre de campo que contenga valores z. gdal.org/ogr2ogr.html
BenjaminGolder
@BenjaminGolder Eso suena bien. Lo intentaré.
Nathan W