Muchas gracias a todos, ya mismo me he puesto en la tarea de agregar estos pasos a mi programa. Para verificar que un punto no quede un vertice he implementado un funcion de Haversine para estimar la distancia
2011/9/13 Kiko <kikocorre...@gmail.com> > > > El 13 de septiembre de 2011 16:27, Juan Camilo Hernandez D < > camilo.hernan...@gmail.com> escribió: > > 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. >> >> > Viendo tus datos, te puedes ahorrar una dimension para la lat y otra para > la lon, así consumirás menos memoria. > > Supón que la distancia entre dos latitudes o longitudes consecutivas es > 0.1º (paso de la malla) y que tus latitudes varían entre -90º y 90º y tus > longitudes entre -180º y 180º (un caso que abarque todo el planeta): > * > import numpy as np > lat = np.arange(-90,90,0.1) > lon = np.arange(-180,180,0.1) > step = 0.1* > > Tu latitud de interés y tu longitud de interés son: > * > mi_lat = 27.47 > mi_lon = -2.14 > * > Los índices dentro del vector/matriz latitud los podrás obtener como: > * > j1 = np.int((lat[0] + mi_lat)/step) > j2 = j1 + 1 > * > Para la longitud lo mismo. > * > i1 = np.int((lon[0] + mi_lon)/step) > i2 = i1 + 1 > * > T[i1,j1], T[i1,j2], T[i2,j1], T[i2,j2] Serán los valores de temperatura > alrededor de tu punto (la i y la j pueden cambiar de orden dependiendo de > como definas filas o columnas en tus datos). > > Podría ser que tu punto coincida con un punto del grid, deberías de poner > algo en el programa para comprobarlo previamente. y no hacer el cálculo de > los 4 puntos alrededor de tu punto. > > No se si se entenderá pero lo he intentado poner paso a paso. En esencia, > es lo mismo que te ha puesto Daπid pero en versión larga. > > Saludos. > > _______________________________________________ > Python-es mailing list > Python-es@python.org > http://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > > -- 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/