[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