Superficie de interpolación spline 3D con los módulos scipy y visvis de Python

Con base en el artículo de Martin Laloux intitulado “QGIS, visualización 3D de capas vectoriales con Python” me decidí, por fin, a abordar el tema de la visualización 3D con Python. A pesar de que Martín critica a los responsables de comunicar sus conocimientos en esta área mediante el empleo de manuales complicados, tengo que reconocer que me costó un poco descifrar su trabajo porque no tenía a la mano muestras de datos propios (me carcomía la impaciencia :)) y porque, además, hace mucho énfasis en la cónsola de Python; con la cual no me siento cómodo.

No obstante, después de analizar el código me decidí a “inventar” unos datos y ejecutarlo a ver que pasaba. Sin embargo, antes hay que cerciorarse de tener todas las librerías necesarias. Con numpy y scipy no hay problema porque se instalan a partir de los repositorios en Debian. Para visvis hay que bajarla de aquí:

http://code.google.com/p/visvis/downloads/list

desempaquetarla y en el directorio que se crea, como root, ejecutar python setup.py install (además, verifiqué que no daba error al cargarla en el intérprete de Python con import visvis).

El código que preparé se encuentra a continuación:

#!/usr/bin/env python
#-* coding: utf-8

#Librerías
from scipy import interpolate
import numpy as np
import visvis

#Arreglos de puntos: sólo 6!
x=[1,2,3,4,5,6]
y=[1,2,3,4,5,6]
z=[2,3,5,3,7,10]

# construcción de la grilla
spline = interpolate.Rbf(x,y,z,function='thin-plate')
xi = np.linspace(min(x), max(x))
yi = np.linspace(min(y), max(y))
X, Y = np.meshgrid(xi, yi)

# interpolación
Z = spline(X,Y)

#Visualización con visvis
f = visvis.gca()
m = visvis.surf(xi,yi,Z)
m.colormap = visvis.CM_JET 
f.axis.visible = False

# Necesario para que la vista no se cierre
app = visvis.use() 
app.Run()

Al ejecutarlo produce la siguiente superficie de interpolación spline (menuda sorpresa que me llevé con este “invento” :)) que puede ser visualizada y rotada en 3D mediante visvis.

spline

Ahora que sé que funciona con un ejemplo simple restaría probarlo entonces con datos reales; tema de próximos posts.

Esta entrada fue publicada en Código Python, SIG, Software Libre. Guarda el enlace permanente.

5 respuestas a Superficie de interpolación spline 3D con los módulos scipy y visvis de Python

  1. Pingback: Superficie de interpolación TIN 3D con los módulos numpy, matplotlib y visvis de Python |

  2. Pingback: Cómo extraer las coordenadas x, y, z de un ráster *.tif para visualización 3D con Python |

  3. Pingback: Visualización 3D con Python (gdal, numpy y matplotlib) en Windows | El Blog de José Guerrero

  4. david arturomendez matute dijo:

    muchas gracia envia el porgrama completo para aprender DIVAS.GIS

  5. Pingback: Paquete ‘rgl’ para la visualización 3D en lenguaje R | El Blog de José Guerrero

Responder

Por favor, inicia sesión con uno de estos métodos para publicar tu comentario:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s