Puntos equidistantes sobre una línea con R

En un post anterior se escribió sobre la utilidad de la generación de puntos igualmente espaciados para muestreo ráster y se presentó una alternativa expedita para tal fin. Sin embargo, si se quiere dividir esa misma línea en segmentos de igual longitud se observa que el algoritmo falla en los extremos de la línea.

Para obtener equidistancia entre todos los puntos generados, incluyendo los extremos, hay que recurrir al método equidistPoints de la librería OSMscale. Para ello, cargamos al intérprete de R la línea y extraemos las coordenadas de sus puntos con los comandos siguientes:

setwd('c:/Users/Usuario/pyqgis_data/')
library(raster)
n_line <- shapefile('new_line.shp')
coor <- coordinates(n_line)[[1]][[1]]

Después de cargar la librería OSMscale, invocamos al método equidistPoints para dividir la línea, por ejemplo, en 5 partes iguales. El objeto pts es un DataFrame que se tiene que convertir en un objeto espacial para poder ser visualizado simultáneamente con n_line.

library(OSMscale)
pts <- equidistPoints(coor[,1],coor[,2], n=5)
pts <- SpatialPoints(pts)
plot(n_line, axes=T)
plot(pts, add=T, col='blue', pch=19)

El resultado de la visualización, tal como se esperaba, se observa en la imagen a continuación:

R13

Esta entrada fue publicada en Lenguaje R. Guarda el enlace permanente.

Responder

Por favor, inicia sesión con uno de estos métodos para publicar tu comentario:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google photo

Estás comentando usando tu cuenta de Google. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s