mdtopx.io.raster
Formatos de rejillas de cotas (modelos digitales de elevaciones en malla regular). Leen a
scene.grids (la rejilla está en scene.grids[0].grid, un Grid) y
escriben la primera rejilla de la escena. Todos siguen la
interfaz común (info, read, write).
| Módulo | Formato | Lee | Escribe | Opciones |
|---|---|---|---|---|
geotiff |
GeoTIFF de cotas (.tif) |
✔ | ✔ | — |
grdasc |
ESRI ASCII Grid (.grdasc) |
✔ | ✔ | write: decimals (3) |
gtopo30 |
USGS GTOPO30 (.dem + .hdr) |
✔ | ✔ | read: razon (1); write: little_endian (False) |
mtn25 |
IGN MDT25 (.mtn25) |
✔ | ✔ | — |
sge |
Servicio Geográfico del Ejército | ✔ | ✔ | write: decimals (3) |
socetset |
LH Socet Set | ✔ | ✔ | write: decimals (3) |
arcinfo |
ArcInfo Grid / Lattice (.grd) |
✔ | ✔ | — |
ingr |
Intergraph INGR / MGE Terrain (.grd) |
✔ | — | — |
Detalles por formato:
- GeoTIFF: rejilla de una sola banda en
float32. Las imágenes TIFF en color son otro formato:mdtopx.io.image.tiff. - GTOPO30: cotas enteras en 16 bits, con un archivo de cabecera
.hdral lado. Al leer,razontoma una de cada N filas y columnas; al escribir, las cotas se redondean a metros ylittle_endian=Falseescribe en el orden de bytes original del USGS. - MTN25: malla de 25 m del IGN. Las cotas -999 y 0 se leen como huecos.
- ArcInfo e INGR comparten la extensión
.grd; cada módulo reconoce el suyo por el contenido.
Ejemplo
Leer un MDE, consultar una cota y guardarlo en otro formato:
from mdtopx.io.raster import grdasc, geotiff
escena = grdasc.read(r"C:\datos\mde.grdasc")
g = escena.grids[0].grid
print(f"{g.rows} x {g.cols} celdas de {g.step_x} m, origen ({g.origin_x}, {g.origin_y})")
fila, col = g.rows // 2, g.cols // 2
z = g.at(fila, col)
if z > g.no_data:
x = g.origin_x + col * g.step_x
y = g.origin_y + fila * g.step_y
print(f"Cota en ({x}, {y}): {z:.2f}")
geotiff.write(r"C:\datos\mde.tif", escena)