El Martes, 13 de Septiembre de 2011 a las 09:56,  Kiko escribió:
> > Básicamente mi programa parte de tres array, dos de los cuales
> > representan información espacial regular (Latitud y Longitud) y un
> > tercero que representa un campo de temperaturas. Cada celda de esta
> > ultimo array tiene una coordenada espacial que se encuentra en los dos
> > primeros arrays. Existe alguna funcion en python (estoy trabajando con
> > SciPy/Numpy) que me permita identificar los elementos de este array
> > que rodean mi punto de interes?
>
> ¿Tu tercera matriz tiene la forma (lon, lat, T)?, ¿las coordenadas lon,
> lat están equiespaciadas?, ¿los valores lon, lat están ordenados?
>
> Si la distancia entre los puntos de tu matriz es regular (conoces la
> distancia entre puntos al N-S y entre puntos al E-W) y están ordenados
> es sencillo sacar los índices de los cuatro puntos alrededor de tu punto
> de interés.
>

Como dice Kiko si el grid es regular debería ser trivial obtener los puntos 
mas cercanos. Si no lo es puedes interpolar a otro grid regular como 
indica por ejemplo aquí:

http://www.scipy.org/Cookbook/Matplotlib/Gridding_irregularly_spaced_data

En el ejemplo 3 también muestra cómo sacar los índices del grid regular 
para luego poder interpolar directamente.


> Luego, para obtener la T en tu punto genérico puedes usar interpolación
> bilineal [1], que tiene en cuenta la distancia de tu punto genérico a
> los cuatro puntos de alrededor. Aunque hay que ir con cuidado puesto que
> la T depende mucho de la altitud de tu punto. Si la altitud de los
> cuatro puntos de alrededor no es la misma necesitarás hacer una
> corrección usando alguna fórmula que tenga en cuenta el perfil vertical
> de la T.
>
> [1] http://en.wikipedia.org/wiki/Bilinear_interpolation


_______________________________________________
Python-es mailing list
Python-es@python.org
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/

Responder a