trasladar posición de un punto en base a azimuth y distancia

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

trasladar posición de un punto en base a azimuth y distancia

Schroeder Natalia
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
[hidden email]
http://lists.osgeo.org/cgi-bin/mailman/listinfo/qgis-es
Reply | Threaded
Open this post in threaded view
|

Re: trasladar posición de un punto en base a azimuth y distancia

Jorge Tornero - Listas
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
[hidden email]
http://lists.osgeo.org/cgi-bin/mailman/listinfo/qgis-es


_______________________________________________
QGIS-es mailing list
[hidden email]
http://lists.osgeo.org/cgi-bin/mailman/listinfo/qgis-es
Reply | Threaded
Open this post in threaded view
|

Re: trasladar posición de un punto en base a azimuth y distancia

Schroeder Natalia
Muchas gracias Jorge!
Voy a explorar tus ideas, suenan muy bien
un saludo!
Natalia

El 16/09/2015 a las 04:07 a.m., Jorge Tornero - Listas escribió:
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
[hidden email]
http://lists.osgeo.org/cgi-bin/mailman/listinfo/qgis-es



_______________________________________________
QGIS-es mailing list
[hidden email]
http://lists.osgeo.org/cgi-bin/mailman/listinfo/qgis-es

-- 
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
[hidden email]
http://lists.osgeo.org/cgi-bin/mailman/listinfo/qgis-es
Reply | Threaded
Open this post in threaded view
|

Re: trasladar posición de un punto en base a azimuth y distancia

Jorge Tornero - Listas
Es en la línea de lo sugerido por A. Neumann en la otra lista (QGIS-users)

Ya nos cuentas la solución!!

Saludos, Jorge

El 16/09/15 a las 13:56, Schroeder Natalia escribió:
Muchas gracias Jorge!
Voy a explorar tus ideas, suenan muy bien
un saludo!
Natalia

El 16/09/2015 a las 04:07 a.m., Jorge Tornero - Listas escribió:
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
[hidden email]
http://lists.osgeo.org/cgi-bin/mailman/listinfo/qgis-es



_______________________________________________
QGIS-es mailing list
[hidden email]
http://lists.osgeo.org/cgi-bin/mailman/listinfo/qgis-es

-- 
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
[hidden email]
http://lists.osgeo.org/cgi-bin/mailman/listinfo/qgis-es


_______________________________________________
QGIS-es mailing list
[hidden email]
http://lists.osgeo.org/cgi-bin/mailman/listinfo/qgis-es
Reply | Threaded
Open this post in threaded view
|

Re: trasladar posición de un punto en base a azimuth y distancia

Schroeder Natalia
Si, escribi a esa lista también, y recibi otras ideas tambien, además de la de A Neuman
Voy a explorar y les cuento
Saludos y gracias por la ayuda!
Natalia

El 16/09/2015 a las 08:57 a.m., Jorge Tornero - Listas escribió:
Es en la línea de lo sugerido por A. Neumann en la otra lista (QGIS-users)

Ya nos cuentas la solución!!

Saludos, Jorge

El 16/09/15 a las 13:56, Schroeder Natalia escribió:
Muchas gracias Jorge!
Voy a explorar tus ideas, suenan muy bien
un saludo!
Natalia

El 16/09/2015 a las 04:07 a.m., Jorge Tornero - Listas escribió:
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
[hidden email]
http://lists.osgeo.org/cgi-bin/mailman/listinfo/qgis-es



_______________________________________________
QGIS-es mailing list
[hidden email]
http://lists.osgeo.org/cgi-bin/mailman/listinfo/qgis-es

-- 
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
[hidden email]
http://lists.osgeo.org/cgi-bin/mailman/listinfo/qgis-es



_______________________________________________
QGIS-es mailing list
[hidden email]
http://lists.osgeo.org/cgi-bin/mailman/listinfo/qgis-es

-- 
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
[hidden email]
http://lists.osgeo.org/cgi-bin/mailman/listinfo/qgis-es