Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在R中提取光栅轮廓会发出警告:“0”;结果的列数不是向量长度的倍数;_R_Raster - Fatal编程技术网

在R中提取光栅轮廓会发出警告:“0”;结果的列数不是向量长度的倍数;

在R中提取光栅轮廓会发出警告:“0”;结果的列数不是向量长度的倍数;,r,raster,R,Raster,我在沿直线提取光栅值时遇到问题。下面的代码说明了这一点。非常感谢您的帮助 require(raster) require(sp) r = raster(volcano) extent(r) = c(-2,1,50,54) crs(r) = CRS('+proj=longlat +datum=WGS84') plot(r, asp=T) pts = data.frame(name=c('A','B','C','D'), lon=c(-1.5,-0.5,0,0.5), lat=c(51,52,5

我在沿直线提取光栅值时遇到问题。下面的代码说明了这一点。非常感谢您的帮助

require(raster)
require(sp)

r = raster(volcano)
extent(r) = c(-2,1,50,54)
crs(r) = CRS('+proj=longlat +datum=WGS84')
plot(r, asp=T)

pts = data.frame(name=c('A','B','C','D'), lon=c(-1.5,-0.5,0,0.5), lat=c(51,52,53,53.8))
coordinates(pts) = ~ lon + lat
plot(pts, add=T)

path = list()
for(i in 2:4) path[[i-1]] = Line(pts[(i-1):i,])
path = SpatialLines(list(Lines(path, ID = 'id')), proj4string=CRS('+proj=longlat +datum=WGS84'))
plot(path, add=T)
生产

并使用
extract()
获取沿线的值:

topo_profile = extract(x=r, y=path, along=TRUE)[[1]]
plot(topo_profile, type='l')
给出以下警告:

Warning messages:
1: In rbind(vv, v) :
  number of columns of result is not a multiple of vector length (arg 1)
2: In rbind(vv, v) :
  number of columns of result is not a multiple of vector length (arg 1)
并生成看起来像是多段线一段的轮廓


你知道为什么extract不能在这里正常工作吗?

解决了-我的行创建有点非传统。此版本的
path
工作:

path = SpatialLines(list(Lines(Line(pts[,2:3]),'id')))