【问题标题】:R Assigning x or y coordinate to cells of a raster to perform calculationsR将x或y坐标分配给栅格的像元以执行计算
【发布时间】:2014-04-04 09:58:54
【问题描述】:

是否有任何解决方案可以使用 R 为光栅图像的所有单元分配 X 或 Y 坐标?

例如,假设我有一个包含 3x3 像元的栅格。左下坐标为 X=7,Y=15(以米为单位),X 和 Y 方向的分辨率均为 +10 m(X 向右增加,Y 向上)。然后,我想生成每个单元格都有 X 和 Y 值的光栅表面,比如​​这些:

X raster
7  17  27
7  17  27
7  17  27

Y surface
35  35  35
25  25  25
15  15  15

更新:this 是实际的光栅对象。

有什么办法吗?

我尝试了“raster”包,但找不到解决方案。

任何帮助将不胜感激。

【问题讨论】:

  • 你能帮我们dput(your_raster_object)吗?
  • 我只需使用您想要的值创建一个“姐妹矩阵”,然后在必要时转换为光栅对象。

标签: r spatial raster


【解决方案1】:

这是我在@Carl 提交的评论中找到的解决方案。

假设我的栅格名为d,具有以下特征:

class       : RasterLayer
dimensions  : 59, 67, 3953  (nrow, ncol, ncell)
resolution  : 90, 90  (x, y)
extent      : 482855.6, 488885.6, 4763517, 4768827  (xmin, xmax, ymin, ymax)
coord. ref. : +proj=tmerc +lat_0=0 +lon_0=-3 +k=1 +x_0=500000 +y_0=0 +datum=WGS84 +units=m +no_defs +ellps=WGS84 +towgs84=0,0,0
data source : in memory
names       : subset
values      : 328, 1120  (min, max)

我首先用 x 坐标值生成了一个矩阵:

xm<-matrix(xFromCell(d,c(1:3953)),nrow=59,byrow=TRUE)

然后用矩阵创建一个栅格:

x<-raster(xm,xmn=482855.6, xmx=488885.6,ymn=4763517,ymx=4768827)

最后,分配它的投影:

projection(x)<-"+proj=tmerc +lat_0=0 +lon_0=-3 +k=1 +x_0=500000 +y_0=0 +datum=WGS84 +units=m +no_defs +ellps=WGS84 +towgs84=0,0,0"

我还显示了光栅,看看结果是否OK...

plot(x)

...并阅读光栅描述

x
class       : RasterLayer
dimensions  : 59, 67, 3953  (nrow, ncol, ncell)
resolution  : 90, 90  (x, y)
extent      : 482855.6, 488885.6, 4763517, 4768827  (xmin, xmax, ymin, ymax)
coord. ref. : +proj=tmerc +lat_0=0 +lon_0=-3 +k=1 +x_0=500000 +y_0=0 +datum=WGS84 +units=m +no_defs +ellps=WGS84 +towgs84=0,0,0
data source : in memory
names       : layer
values      : 482900.6, 488840.6  (min, max)

我重复了这些步骤,但在第一步中使用了yFromCell

【讨论】:

    猜你喜欢
    • 2021-11-21
    • 1970-01-01
    • 1970-01-01
    • 2018-08-23
    • 1970-01-01
    • 2017-11-17
    • 2014-08-19
    • 2016-08-29
    相关资源
    最近更新 更多