Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/76.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.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 从光栅对象获取XYZ列表_R_Raster_R Raster - Fatal编程技术网

R 从光栅对象获取XYZ列表

R 从光栅对象获取XYZ列表,r,raster,r-raster,R,Raster,R Raster,我知道,为了从和XYZ列表中获取光栅(其中x和y是坐标的数字向量,z是数字矩阵),我可以直接使用函数光栅。但是如果我有一个光栅,我想得到一个XYZ列表呢?光栅软件包上是否已经开发了简单的功能 当然,我知道我可以建立一个列表来索引光栅对象上的不同级别,但我发现我必须进行一些反转才能实现它,所以我想知道是否有一种简单有效的方法 谢谢 有几种方法可以做到这一点,但对我来说这似乎是直截了当的: 基本上,您可以使用raster包中的函数xyFromCell获取单元格的坐标,然后将其绑定到所需的列表中 li

我知道,为了从和XYZ列表中获取光栅(其中x和y是坐标的数字向量,z是数字矩阵),我可以直接使用函数
光栅
。但是如果我有一个光栅,我想得到一个XYZ列表呢?光栅软件包上是否已经开发了简单的功能

当然,我知道我可以建立一个列表来索引光栅对象上的不同级别,但我发现我必须进行一些反转才能实现它,所以我想知道是否有一种简单有效的方法


谢谢

有几种方法可以做到这一点,但对我来说这似乎是直截了当的:

基本上,您可以使用
raster
包中的函数
xyFromCell
获取单元格的坐标,然后将其绑定到所需的列表中

library(raster)

# testraster
r <- raster()
r[] <- runif(ncell(r))

#coordinates
coords <- xyFromCell(r,1:ncell(r))

#create list
xyzlist <- list(x=coords[,'x'],y=coords[,'y'],z=as.matrix(r))

您可以考虑使用<代码> RestOptooIts < /C> >:

library(raster)
r <- raster()
values(r) <- 1:ncell(r)

xyz <- rasterToPoints(r)

head(xyz)
           x    y layer
#[1,] -179.5 89.5     1
#[2,] -178.5 89.5     2
#[3,] -177.5 89.5     3
#[4,] -176.5 89.5     4
#[5,] -175.5 89.5     5
#[6,] -174.5 89.5     6
库(光栅)

r我尝试了上述建议,但没有得到想要的答案。因此,这里有一个小的调整和测试,它的工作:

library(raster) 
xy <- xyFromCell(dem,1:ncell(dem))

lns <- contourLines(x=sort(unique(xy[,1])), y=sort(unique(xy[,2])), z=t(as.matrix(dem)))

plot(dem)
for (i in 1:length(lns)) lines(lns[[i]]$x, lns[[i]]$y)
库(光栅)

xy这应该可以工作:
df@LoBu,我说的是有一个3级的列表作为输出:输出(a列表)$x(数字向量,经度)$y(数字向量,经度)$z(长度(x)行和长度(y)列的数字矩阵)Hi。对不起,我不知道我是否理解正确:你想要纬度和经度作为向量,图像作为矩阵?欢迎来到StackOverflow。只有代码的答案往往会被标记为删除,因为它们是“低质量的”。请阅读回答问题的帮助部分,然后考虑给你的答案添加一些评论。
library(raster) 
xy <- xyFromCell(dem,1:ncell(dem))

lns <- contourLines(x=sort(unique(xy[,1])), y=sort(unique(xy[,2])), z=t(as.matrix(dem)))

plot(dem)
for (i in 1:length(lns)) lines(lns[[i]]$x, lns[[i]]$y)