[Python-es] Interpolacion varios Puntos.
Juan Camilo Hernandez D
camilo.hernandez en gmail.com
Mar Sep 13 16:27:31 CEST 2011
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 <davidmenhur en gmail.com>
> 2011/9/13 Ricardo Cárdenes <ricardo.cardenes en 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
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://mail.python.org/pipermail/python-es/attachments/20110913/047f48a7/attachment.html>
------------ próxima parte ------------
LAT
5.544175 5.544175 5.544175 5.544175 5.544175 5.544175 5.544175 5.544175 5.544175 5.544175 5.544175 5.544175
5.553170 5.553170 5.553170 5.553170 5.553170 5.553170 5.553170 5.553170 5.553170 5.553170 5.553170 5.553170
5.562164 5.562164 5.562164 5.562164 5.562164 5.562164 5.562164 5.562164 5.562164 5.562164 5.562164 5.562164
5.571159 5.571159 5.571159 5.571159 5.571159 5.571159 5.571159 5.571159 5.571159 5.571159 5.571159 5.571159
5.580153 5.580153 5.580153 5.580153 5.580153 5.580153 5.580153 5.580153 5.580153 5.580153 5.580153 5.580153
5.589148 5.589148 5.589148 5.589148 5.589148 5.589148 5.589148 5.589148 5.589148 5.589148 5.589148 5.589148
5.598143 5.598143 5.598143 5.598143 5.598143 5.598143 5.598143 5.598143 5.598143 5.598143 5.598143 5.598143
5.607138 5.607138 5.607138 5.607138 5.607138 5.607138 5.607138 5.607138 5.607138 5.607138 5.607138 5.607138
5.616132 5.616132 5.616132 5.616132 5.616132 5.616132 5.616132 5.616132 5.616132 5.616132 5.616132 5.616132
5.625127 5.625127 5.625127 5.625127 5.625127 5.625127 5.625127 5.625127 5.625127 5.625127 5.625127 5.625127
5.634121 5.634121 5.634121 5.634121 5.634121 5.634121 5.634121 5.634121 5.634121 5.634121 5.634121 5.634121
5.643116 5.643116 5.643116 5.643116 5.643116 5.643116 5.643116 5.643116 5.643116 5.643116 5.643116 5.643116
LONG
-76.25476 -76.24576 -76.23676 -76.22775 -76.21878 -76.20978 -76.20078 -76.19180 -76.18280 -76.17380 -76.16479 -76.15582
-76.25476 -76.24576 -76.23676 -76.22775 -76.21878 -76.20978 -76.20078 -76.19180 -76.18280 -76.17380 -76.16479 -76.15582
-76.25476 -76.24576 -76.23676 -76.22775 -76.21878 -76.20978 -76.20078 -76.19180 -76.18280 -76.17380 -76.16479 -76.15582
-76.25476 -76.24576 -76.23676 -76.22775 -76.21878 -76.20978 -76.20078 -76.19180 -76.18280 -76.17380 -76.16479 -76.15582
-76.25476 -76.24576 -76.23676 -76.22775 -76.21878 -76.20978 -76.20078 -76.19180 -76.18280 -76.17380 -76.16479 -76.15582
-76.25476 -76.24576 -76.23676 -76.22775 -76.21878 -76.20978 -76.20078 -76.19180 -76.18280 -76.17380 -76.16479 -76.15582
-76.25476 -76.24576 -76.23676 -76.22775 -76.21878 -76.20978 -76.20078 -76.19180 -76.18280 -76.17380 -76.16479 -76.15582
-76.25476 -76.24576 -76.23676 -76.22775 -76.21878 -76.20978 -76.20078 -76.19180 -76.18280 -76.17380 -76.16479 -76.15582
-76.25476 -76.24576 -76.23676 -76.22775 -76.21878 -76.20978 -76.20078 -76.19180 -76.18280 -76.17380 -76.16479 -76.15582
-76.25476 -76.24576 -76.23676 -76.22775 -76.21878 -76.20978 -76.20078 -76.19180 -76.18280 -76.17380 -76.16479 -76.15582
-76.25476 -76.24576 -76.23676 -76.22775 -76.21878 -76.20978 -76.20078 -76.19180 -76.18280 -76.17380 -76.16479 -76.15582
-76.25476 -76.24576 -76.23676 -76.22775 -76.21878 -76.20978 -76.20078 -76.19180 -76.18280 -76.17380 -76.16479 -76.15582
TEMP
296.25101 295.56412 294.07043 293.59222 293.83469 293.38226 292.84055 292.40747 291.81662 291.38889 291.28784 291.28244
295.66034 293.83069 293.32584 292.77896 291.94312 291.11984 290.44626 290.00320 289.70859 289.95160 289.54846 289.71460
295.15897 293.17468 292.56097 291.90060 290.98093 290.12039 289.40527 288.87775 288.91559 288.91428 288.48343 288.46918
294.55646 293.63284 292.90198 292.53894 291.72137 290.44626 288.48288 287.85651 287.34784 287.09048 287.01648 287.19052
293.93353 293.27866 292.61688 291.91702 291.11679 290.57617 287.74265 287.03857 286.40564 286.03177 286.53818 286.00565
293.47461 292.78351 292.05475 291.25720 290.37485 289.87915 289.26559 286.35617 285.79459 285.33694 285.18750 285.14932
293.12872 292.49643 291.72195 290.88278 289.98514 289.22214 288.68976 285.77472 285.26157 284.78940 284.49707 284.28409
292.89151 292.27316 291.45892 290.58350 289.66763 288.61789 288.03210 285.02689 284.52930 284.05185 283.74173 283.43451
292.90546 292.11612 291.25955 290.34332 289.38040 288.26340 287.32101 284.20370 283.66495 283.18616 282.91953 282.49994
292.89621 292.04346 291.16125 290.21317 289.15253 288.01379 286.96701 283.84247 283.33890 282.73224 282.28168 281.72769
292.92862 292.04996 291.16217 290.19821 289.10376 288.04990 287.06122 284.10867 283.59778 282.90424 282.50308 282.31198
293.00253 292.10059 291.23718 290.31079 289.31436 288.32983 287.39291 284.91412 284.61755 283.99359 283.67896 284.06723
Más información sobre la lista de distribución Python-es