[QGIS-es] trasladar posición de un punto en base a azimuth y distancia

Jorge Tornero - Listas jtorlistas en gmail.com
Mie Sep 16 00:07:00 PDT 2015


Buenos días, Natalia:

Se me ocurre una solución relativamente sencilla, aunque fuera de QGIS 
(aunque desde luego, creo que sería relativamente fácil y sencillo 
hacerlo a través de la consola python, que los expertos hablen)

La cosa es utilizar la fórmula directa de Vincenty para calcular el 
punto final a partir del inicial, un rumbo y una distancia.

Una implementación en Python de esa fórmula de Vincenty la tomé prestada 
en su momento para hacer el plugin Transectizer. Puedes tomarla del 
plugin (función vinc_pt del archivo transectizer.py), o del sitio 
original del código (hay un enlace en mi código). Yo he puesto una 
versión 'lista para usar' de la función en un gist:

https://gist.github.com/jtornero/9f3ddabc6a89f8292bb2

Sin perjuicio de que puedes obtener otra fuente (en javascript) muy bien 
explicada en:

http://www.movable-type.co.uk/scripts/latlong-vincenty.html

Lo primero te guardas tus puntos en un csv con: Lat_origen, lon_origen, 
rumbo_destino, distancia_destino (OJO, Vincenty asume coordenadas en 
lat/lon y es preciso que te asegures de usar valores de radio de 
elipsoide y achatamiento apropiados) Y que el uso de Vincenty es 
apropiado para tu aplicación, en esto otra gente de la lista podría ayudar

Ahora la cosa sería elaborar un script python para:

1) Cargar los datos csv (o cargar un shp con shapely, desde una base de 
datos...)
2) Crear una capa shp de puntos (modulo shapely, por ejemplo)
3) para cada punto de tu csv, obtener las nuevas coordenadas del punto 
de destino usando la función vinc_pt y añadirlo como nuevo punto a la 
capa que has creado.

Estoy seguro que estos 3 pasos se pueden hacer desde la consola de 
python de QGIS sin mayor problema, tomando directamente los puntos desde 
tu capa.

Y todo esto sin prejuicio de que, si las distancias que vas a mover los 
puntos son pequeñas y tus requerimientos lo permiten, lo mismo puedes 
olvidarte de Vincenty y echar mano de cálculos sencillos y listo. 
También puedes mirar dentro del código del plugin 'Azimuth and distance' 
y ver qué funciones usa para hacer los cálculos y tratar de aprovechar 
ese código para el cálculo de la posición final.

Espero te vaya dando una idea

Saludos


Jorge Tornero



El 16/09/15 a las 01:00, Schroeder Natalia escribió:
> Hola,
> Mi consulta es la siguiente.
> Necesito re-posicionar puntos en un mapa, es decir, para cada punto 
> tengo la distancia desde la posición inicial hacia la nueva posición 
> final (una linea) y el ángulo al Norte (Azimuth) de esa linea, y lo 
> que quiero es conocer las coordenadas X e Y de esa nueva posición, 
> para poder llevar ese punto a su nueva posición. Y son muchos puntos 
> (mas de 1000) como para hacerlo manualmente.
> ¿Se entiende?
> Este es el esquema:
>
>
>
> Según entiendo la herramienta Azimuth and Distance va 'dibujando' 
> puntos partiendo de azimuths and distances, pero guiándose por el 
> punto inmediatamente anterior como referencia. Y no me sirve, porque 
> yo necesito que me tome los puntos intependientemente, no en relación 
> al inmediatamente anterior, porque mis puntos son observaciones 
> independientes. ¿Es así o estoy entendiendo mal la herramienta?
> ¿Alguna idea para solucionar este problema?
> Desde ya muchas gracias
> Saludos
> Natalia
> -- 
> Natalia M. Schroeder
> Laboratorio de Interacciones Ecológicas (LIE)
> Instituto Argentino de Investigaciones de las Zonas Áridas (IADIZA), CONICET
> CC 507, CP 5500, Mendoza, Argentina.
> TE: +54-261-5244166
> http://personal.mendoza-conicet.gob.ar/natalias/
>
>
> _______________________________________________
> QGIS-es mailing list
> QGIS-es en lists.osgeo.org
> http://lists.osgeo.org/cgi-bin/mailman/listinfo/qgis-es

------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://lists.osgeo.org/pipermail/qgis-es/attachments/20150916/1bdc2333/attachment-0002.html>
------------ próxima parte ------------
A non-text attachment was scrubbed...
Name: no disponible
Type: image/png
Size: 4138 bytes
Desc: no disponible
URL: <http://lists.osgeo.org/pipermail/qgis-es/attachments/20150916/1bdc2333/attachment-0002.png>


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