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/