将栅格与 SpatialLinesDataFrame 合并

Merge Raster with SpatialLinesDataFrame

我需要加载栅格地图和 .shp 文件。

两者都通过以下方式加载到全局环境中

library(raster)
library(maptools)
library(maps)
topo <- raster("topo Europe.tif")
roads <- readShapeSpatial("roman_roads_v2008.shp")

现在我在全局环境中都有了。我可以独立绘制它们

plot(plot(topo, col=gray.colors(100), axes=F, box=F, legend=F))
plot(roads)

然而,即使我尝试像这样将它们绘制在一起,我也只能看到两者之一

plot(plot(topo, col=gray.colors(100), axes=F, box=F, legend=F))
plot(roads)

我尝试使用

合并
topo.crs <- CRS(projection(topo))
roadstopo <- spTransform(roads, topo.crs)

但我收到此错误消息。

Error in spTransform(xSP, CRSobj, ...) : No transformation possible from NA reference system

有什么方法可以合并它们或在另一个上绘制?

对象信息

# roads

class       : SpatialLinesDataFrame 
features    : 7154 
extent      : -1671176, 2800340, -587294.7, 3042248  (xmin, xmax, ymin, ymax)
coord. ref. : NA 
variables   : 7
names       : OBJECTID,      CLASS, CERTAINTY, PERIOD, HYPERLINK, SOURCE,   Shape_Leng 
min values  :        1, Major Road,        No,     NA,        NA,   150K,     22.07838 
max values  :     8900, Minor Road,       YES,     NA,        NA,    TIB, 362192.17666 



# Topo
class       : RasterLayer 
dimensions  : 4320, 6480, 27993600  (nrow, ncol, ncell)
resolution  : 0.008333333, 0.008333333  (x, y)
extent      : -13, 41, 29, 65  (xmin, xmax, ymin, ymax)
coord. ref. : +proj=longlat +ellps=WGS84 +no_defs 
data source : C:\Users\Mathew\OneDrive\Archaology\Dissertation\R work\topo_Europe.tif 
names       : topo_Europe 
values      : -422, 4536  (min, max)

现在

projection(roads)<- "+proj=longlat +ellps=WGS84 +no_defs"

对象信息

# roads

class       : SpatialLinesDataFrame 
features    : 7154 
extent      : -1671176, 2800340, -587294.7, 3042248  (xmin, xmax, ymin, ymax)
coord. ref. : +proj=longlat +ellps=WGS84 +no_defs 
variables   : 7
names       : OBJECTID,      CLASS, CERTAINTY, PERIOD, HYPERLINK, SOURCE,   Shape_Leng 
min values  :        1, Major Road,        No,     NA,        NA,   150K,     22.07838 
max values  :     8900, Minor Road,       YES,     NA,        NA,    TIB, 362192.17666 



# Topo
class       : RasterLayer 
dimensions  : 4320, 6480, 27993600  (nrow, ncol, ncell)
resolution  : 0.008333333, 0.008333333  (x, y)
extent      : -13, 41, 29, 65  (xmin, xmax, ymin, ymax)
coord. ref. : +proj=longlat +ellps=WGS84 +no_defs 
data source : C:\Users\Mathew\OneDrive\Archaology\Dissertation\R work\topo_Europe.tif 
names       : topo_Europe 
values      : -422, 4536  (min, max)

他们有相同的投影,但没有一起绘制。首先绘制其中一个然后添加另一个被处理但是没有任何东西是可见的。我的绘图方式有误吗?

plot(topo, col=gray.colors(100), axes=F, box=F, legend=F) with(roads, add=T)

正如 Val 所说,投影是错误的。更正并发布

roads <- shapefile("roman_roads_v2008.shp")
roadstrue <- spTransform(roads, crs(topo)) #Centers roads to topo
plot(topo, col=gray.colors(100), axes=F, box=F, legend=F, colNA="white")
plot(roadstrue, add= T)

导致这个情节