[R-es] generacion aleatoria de coordenadas

Carlos J. Gil Bellosta cgb en datanalytics.com
Mar Dic 24 18:10:01 CET 2013


Hola, ¿qué tal?

Me ha intrigado el problema y he tratado de darle una solución sin
necesidad de recurrir a terceros paquetes. Supongo, eso sí, que la
tierra es una esfera perfecta.

El quid de la cuestión es la fórmula para el área de una zona esférica
(véase http://es.wikipedia.org/wiki/Zona_esf%C3%A9rica) que,
curiosamente, depende de h (su "grosor") pero no de dónde (o a qué
altura) esté situada.

Aque se puede muestrear aleatoriamente (y uniformemente) la longitud
(dentro del "bounding box", bb). Para la latitud, se puede muestrear
uniformemente sobre h y luego reconvertir la h en una latitud (h = 0
serían 0 grados, h = 1 serían 90 grados) usando el arcoseno. Por
supuesto, habría que muestrear h sobre el intervalo [h0,h1]
determinado por el bb.

El código R (y aplicado a un bb que cubre la península Ibérica) sería
el siguiente:

lat.lims <- c(36, 44)
lon.lims <- c(-10, 4)

n <- 1000

lon.sample <- runif(n, min = min(lon.lims), max = max(lon.lims))

lat.lims.rads <- lat.lims / 360 * 2 * pi
h.lims <- sin(lat.lims.rads)
h.sample <- runif(n, min = min(h.lims), max = max(h.lims))

lat.sample <- asin(h.sample) / 2 / pi * 360

plot(lon.sample, lat.sample)

Un saludo,

Carlos J. Gil Bellosta
http://www.datanalytics.com




El día 22 de diciembre de 2013, 14:07, "Eloy Ortiz Hernández"
<eortiz en finlay.cmw.sld.cu> escribió:
> Hola a todos
>
> He estado trabajando con el paquete osmar y funciona muy bien.Puede alguien decirme donde encontrar informacion o algun script para generar una lista con N pares de puntos (longitud/latitud) aleatorios o siguiendo una funcion determinada dentro del marco de coordenadas definido por  corner_bbox(left, bottom, right, top) para despues plotearlos.
>
> saludos
>
> eloy ortiz
>
>
>
> --
>
> Este mensaje le ha llegado mediante el servicio de correo electronico que ofrece Infomed para respaldar el cumplimiento de las misiones del Sistema Nacional de Salud. La persona que envia este correo asume el compromiso de usar el servicio a tales fines y cumplir con las regulaciones establecidas
>
> Infomed: http://www.sld.cu/
>
>
>
>
>         [[alternative HTML version deleted]]
>
> _______________________________________________
> R-help-es mailing list
> R-help-es en r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-help-es



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