[Python-es] Interpolacion varios Puntos.

Juan Camilo Hernandez D camilo.hernandez en gmail.com
Mar Sep 13 18:39:33 CEST 2011


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 <kikocorreoso en gmail.com>

>
>
> El 13 de septiembre de 2011 16:27, Juan Camilo Hernandez D <
> camilo.hernandez en 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 en 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
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://mail.python.org/pipermail/python-es/attachments/20110913/536c3be7/attachment.html>


Más información sobre la lista de distribución Python-es