r - 如何从光栅化的“SpatialPolygonsDataFrame”中获取单元格尺寸?
问题描述
我SpatialPolygonsDataFrame
在 R 中有课程,我想对其进行栅格化。我使用下面的代码栅格化多边形:
> p <- shapefile('MadaGranary')
> p
class : SpatialPolygonsDataFrame
features : 1
extent : 100.1269, 100.5313, 5.793798, 6.446769 (xmin, xmax, ymin, ymax)
crs : +proj=longlat +datum=WGS84 +no_defs
variables : 1
names : id
value : 1
> crs(p) <- NULL
> # Define RasterLayer object
> r.raster <- raster(extent(p), res = 100)
> #rasterize
> p.r <- rasterize(p, r.raster)
> print(p.r)
class : RasterLayer
dimensions : 1, 1, 1 (nrow, ncol, ncell)
resolution : 100, 100 (x, y)
extent : 100.1269, 200.1269, -93.55323, 6.446769 (xmin, xmax, ymin, ymax)
crs : +proj=longlat +datum=WGS84 +no_defs
source : memory
names : layer
values : NA, NA (min, max)
attributes :
ID id
1 1
不幸的是,这段代码已将单元格尺寸分配给dimensions : 1, 1, 1 (nrow, ncol, ncell)
,而获取 的实际值对我来说非常重要ncols and nrows
。
当 I 时print p.r
,我需要dimensions : (nrow, ncol, ncell)
在控制台中获取 的值,以便能够保存所有属性,以便以后使用它进行其他分析。
注意:resolution
我需要得到的输出应该是ncols and nrow
新栅格中表示的真实值,但不仅仅是dimensions : 1, 1, 1 (nrow, ncol, ncell)
我的代码中显示的那样。
有人可以帮忙吗??
解决方案
如果你想设置nrow
然后ncol
你这样做(而不是设置分辨率,它表示每个单元格的大小)。这是一个例子:
library(raster)
#Loading required package: sp
e <- extent(0,1,0,1)
r <- raster(e, nrow=100, ncol=100)
r
#class : RasterLayer
#dimensions : 100, 100, 10000 (nrow, ncol, ncell)
#resolution : 0.01, 0.01 (x, y)
#extent : 0, 1, 0, 1 (xmin, xmax, ymin, ymax)
#crs : NA
推荐阅读
- python - 提高非常大文件读取行的 for 循环速度
- c# - foreach 在遍历所有列表之前结束
- c# - 获取自定义 ContentType 以在 VSIX 扩展中注册自动完成
- python - Python-for循环中的最后一项不能添加到字典中
- php - PHP 错误修复 - 条件无法正常工作
- c# - 从任意线程调用 StateHasChanged() 是否安全?
- animation - 补间动画和动画控制器的区别
- sql - SQL 数组中缺少结果
- angular - 如何从菜单组件中导出数据,以便在相应的html组件中使用
- excel - 向其他工作表添加单元格引用的公式的 VBA 代码出现问题