<br><br><div class="gmail_quote">El 13 de septiembre de 2011 16:27, Juan Camilo Hernandez D <span dir="ltr"><<a href="mailto:camilo.hernandez@gmail.com">camilo.hernandez@gmail.com</a>></span> escribió:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
Hola.<div><br></div><div>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.</div>
<div><br></div><div>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:</div><div><br></div><div>1. Como identificar los cuatro puntos que rodean mi punto de interés.</div>
<div>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.</div><div><br></div><div>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.</div>
<br></blockquote><div> <br>Viendo tus datos, te puedes ahorrar una dimension para la lat y otra para la lon, así consumirás menos memoria.<br><br>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):<br>
<i><br>import numpy as np<br>lat = np.arange(-90,90,0.1)<br>lon = np.arange(-180,180,0.1)<br>step = 0.1</i><br><br>Tu latitud de interés y tu longitud de interés son:<br><i><br>mi_lat = 27.47<br>mi_lon = -2.14<br></i><br>
Los índices dentro del vector/matriz latitud los podrás obtener como:<br><i><br>j1 = <a href="http://np.int">np.int</a>((lat[0] + mi_lat)/step)<br>j2 = j1 + 1<br></i><br>Para la longitud lo mismo.<br><i><br>
i1 = <a href="http://np.int">np.int</a>((lon[0] + mi_lon)/step)<br>
i2 = i1 + 1<br></i><br>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).<br><br>
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.<br><br>No se si se entenderá pero lo he intentado poner paso a paso. En esencia, es lo mismo que te ha puesto <span class="gD" style="color:#cc0060">Daπid <span style="color: rgb(0, 0, 0);">pero en versión larga.</span></span><br>
<br>Saludos.<br></div></div>