[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