Python
El paquete de Python mdtopx da acceso, desde programas de Python normales (fuera de MDTopX),
al mismo motor que usa MDTopX:
- Leer y escribir archivos de nubes de puntos, dibujo, rejillas (MDE), mallas, imágenes y modelos BIM con los mismos plugins de importación y exportación que carga MDTopX.
- Procesar la geometría: triangular, tetraedrizar, generar mapas de pendientes o de sombreado, filtrar y trocear nubes, cubicar…
Versión de Python: 3.11 (x64). Toda la API está en inglés: clases en
PascalCase; funciones, propiedades y argumentos ensnake_case. Las coordenadas son siempre coordenadas terreno endouble(por ejemplo UTM, en metros).
El panel de Python que hay dentro de MDTopX tiene su propio módulo, que también se llama
mdtopx. Este paquete es para programas de Python externos; no lo importes desde ese panel.
Paquetes
| Paquete | Contenido |
|---|---|
mdtopx |
El motor: la escena (Scene) y sus entidades, triangulación y volúmenes, modelos digitales de elevaciones, nubes de puntos y cubicación de acopios. |
mdtopx.io |
Carga de plugins, interfaz común de lectura y escritura, troceado de nubes. |
mdtopx.io.pointcloud |
Nubes de puntos: LAS/LAZ, E57, PTS, PTX, PCD, XYZ, PCAP y trayectorias. |
mdtopx.io.vector |
Dibujo: BIN, BIND, ASCII DIGI, DGN, DWG, DXF, Shapefile, GeoPackage, KML, GeoMedia. |
mdtopx.io.raster |
Rejillas de cotas (MDE): GeoTIFF, ESRI ASCII Grid, GTOPO30, MTN25, SGE, Socet Set, ArcInfo, INGR. |
mdtopx.io.malla |
Mallas trianguladas: STL y el MDT nativo de MDTopX (.mdt). |
mdtopx.io.image |
Imágenes en color: BMP, TIFF, JPEG, ECW/JPEG2000. |
mdtopx.io.model |
Modelos BIM: IFC 4.3. |
Instalación
El paquete es una carpeta mdtopx que contiene el motor compilado (_core) y, en
mdtopx/io/plugins, las DLL de los plugins. Para usarlo, añade la carpeta que contiene a mdtopx
a la ruta de búsqueda de Python, con la variable de entorno PYTHONPATH o desde el propio programa:
import sys
sys.path.insert(0, r"C:\ruta\a\la\carpeta\que\contiene\mdtopx")
import mdtopx
Los plugins se buscan en mdtopx/io/plugins. Para usar otra carpeta, indícala en la variable de
entorno MDTOPX_PLUGINS.
Primer programa
Lee un modelo digital de MDTopX y muestra su tamaño:
from mdtopx.io.malla import mdt
escena = mdt.read(r"C:\datos\Terreno.mdt")
terreno = escena.meshes[0]
print(len(terreno.mesh.vertices), "puntos,", len(terreno.mesh.triangles), "triángulos")
Todos los formatos siguen el mismo esquema: se lee el archivo a una Scene
(una colección de puntos, polilíneas, textos, nubes, mallas, rejillas e imágenes), se trabaja con
ella y, si hace falta, se escribe en otro formato:
from mdtopx.io.pointcloud import las, xyz
escena = las.read(r"C:\datos\vuelo.laz")
xyz.write(r"C:\datos\vuelo.xyz", escena, write_intensity=True)