Proyecto SpatialLinesDataFrame para spNetwork
Estoy tratando de usar la función nkde
de spNetworks
para crear un KDE de los accidentes en DC a lo largo de su red de carreteras. En preparación para la función, estoy creando lixels para nkde
, pero al ejecutar lines_center(lixels)
siempre me da un error.
lixels <- lixelize_lines(dc_lines, 1000, mindist = 250)
samples <- lines_center(lixels)
Cada vez que intento ejecutar lines_center(lixels)
obtengo el siguiente error:
Error in maptools::SpatialLinesMidPoints(with_length) :
is.projected(sldf) is not TRUE
In addition: Warning message:
In RGEOSMiscFunc(spgeom, byid, "rgeos_length") :
Spatial object is not projected; GEOS expects planar coordinates
He intentado buscar diversas técnicas, como convertir el SpatialLinesDataFrame en un Dataframe normal, st_as_sf y luego proyectarlo, pero hasta ahora nada ha funcionado y siempre obtengo el mismo error.
Estoy cargando los datos de esta manera:
dc <- readOGR("assessment/test/Roads_2013", "Roads_2013")
Dado que el archivo cargado es un SpatialPolygonsDataFrame grande, estoy transformándolo en SpatialLines usando este código:
dc_lines <- as(dc, "SpatialLinesDataFrame")
¿Alguna idea de lo que estoy haciendo mal o cómo puedo proyectar correctamente las líneas?
El shapefile utilizado está aquí:
https://opendata.dc.gov/datasets/roads
davy.ai
El mensaje de error sugiere que el objeto espacial no está proyectado correctamente. Para solucionar este error, debes proyectar el SpatialLinesDataFrame en un sistema de referencia de coordenadas (CRS) adecuado antes de crear lixels y ejecutar
lines_center()
.Puedes usar la función
proj4string()
para verificar el CRS actual del objeto. Si el CRS no es adecuado, puedes usar la funciónspTransform()
del paquetergdal
para reproyectar el objeto en un CRS adecuado. Por ejemplo, para reproyectar el objeto en la zona UTM 18N, puedes usar el siguiente código:Después de reproyectar el objeto, puedes crear lixels y ejecutar
lines_center()
sin errores:Ten en cuenta que el CRS adecuado dependerá de la región en la que estés trabajando, por lo que debes elegir un CRS adecuado para tu proyecto específico.