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/