En esencia, tienes dos arrays unidimensionales, el de latitudes y el
de longitudes. Ahora sólo tienes que buscar en una lista ordenada
cuales son los elementos inmediatamente siguiente y anterior. Pero
como además, están a intervalos regulares, sabiendo el valor del
índice 0 y del paso (diferencias entre uno y el siguiente), puedes
saber todos los puntos.

lat[n]=lat[0]+n*step

n=(lat[n]-lat[0])/step

donde lat[n] es la latitud del punto arbitrario. Floor(n) y Roof(n) te
darán los índices de los puntos de tu malla buscas. Análogamente, lo
mismo para longitud.



2011/9/13 Juan Camilo Hernandez D <camilo.hernan...@gmail.com>:
> Hola.
> Les voy a aclarar un poco el tipó de información que contiene mis datos.
> La información de latitud y longitud esta espaciada de forma regular, es
> decir que en el caso del array de longitud los valores de cada columna son
> iguales entre ellos; en el caso del array de latitud sucede algo similar
> pero en las filas.
> Ahora he considerado utilizar el método de interpolacion bilineal y
> el método de crosman (correcion por distancias); mi dificultad radica en dos
> puntos:
> 1. Como identificar los cuatro puntos que rodean mi punto de interés.
> 2. Como obtener los indices de estos cuatro puntos para realizar la
> interpolacion, es decir ubicar mis puntos de entrada a los algoritmos de
> interpolacion en el array de temperaturas.
> Algunos me han manifestado la trivialidad del problema, realmente les pido
> excusas, he buscado la forma y no veo como hacerlo. Si me pueden colaborar
> con un ejemplo se los agradecería enormemente.
> Estoy adjuntando un pequeño ejemplo de mis datos para mejorar
> mi explicación.
>
> 2011/9/13 Daπid <davidmen...@gmail.com>
>>
>> 2011/9/13 Ricardo Cárdenes <ricardo.carde...@gmail.com>:
>> > En caso de que la información no sea regular, supongo que te bastaría
>> > calcular la norma de todos los puntos de la matriz respecto al tuyo y
>> > escoger los N más cercanos.
>>
>> Eso funciona si los puntos están distribuídos irregularmente "pero no
>> demasiado". Si tienes clústeres de gran densidad de datos y áreas más
>> dispersas acabarás haciendo una extrapolación, que puede dar
>> resultados feos.
>>
>> En este caso, lo mejor es encontrar un polígono pequeño que englobe a
>> tu punto. Una opción es a partir de los ángulos de los N puntos más
>> cercanos (con N suficientemente grande), tomar puntos en todas
>> direcciones, y de ahí encoger hasta quedarte con el triángulo óptimo.
>>
>> Si tienes que hacer esto muchas veces, quizá te interese reasimilar
>> los datos a una rejilla regular a altura estándar, desde donde es
>> mucho más fácil y rápido interpolar (quizá a costa de perder algo de
>> precisión, tendrías que comparar con los datos originales).
>
>
>
> --
> JUAN CAMILO HERNÁNDEZ DÍAZ
> Ingeniero de Proyectos
> http://www.jkoyo.net
>
> _______________________________________________
> Python-es mailing list
> Python-es@python.org
> http://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
>
>
_______________________________________________
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