使用SpatialLinesDataFrame合并Raster

时间:2018-03-16 08:12:52

标签: r maps spatial r-raster

我需要加载栅格地图和.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)

但我收到此错误消息。

  

spTransform(xSP,CRSobj,...)出错:     NA参考系统无法进行转换

有没有办法合并它们或在另一个上进行绘图?

对象信息

# 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)

1 个答案:

答案 0 :(得分:0)

如瓦尔所说,这一预测是错误的。更正并发布

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)

此图enter image description here