【问题标题】:Rasterize spatialpolygons in R giving raster with NA values栅格化 R 中的空间多边形,给出具有 NA 值的栅格
【发布时间】:2015-09-27 03:32:33
【问题描述】:

我在将此空间多边形数据框转换为栅格时遇到问题。当我进行转换时,栅格将 NA 作为其值。如下图:

 DL3
[1]
class       : SpatialPolygonsDataFrame 
features    : 126 
extent      : -15.04001, 46.1036, 3.759985, 31.71804  (xmin, xmax, ymin, ymax)
coord. ref. : +proj=longlat +datum=WGS84 +towgs84=0,0,0 +ellps=WGS84 
variables   : 1
names       :  LFRP 
min values  :    14 
max values  : 335.2 

这就是我如何栅格化它:

##TO CONVERT TO RASTER
FunR<-function(r){
ext<-raster(extent(r))
crs(ext)<-crs(r)
D<-rasterize(r,ext,field=1,update=T)
D}

DL4<-lapply(DL3,FunR)
DL4
[1]
class       : RasterLayer 
dimensions  : 45, 40, 1800  (nrow, ncol, ncell)
resolution  : 1.52859, 0.6212901  (x, y)
extent      : -15.04001, 46.1036, 3.759985, 31.71804  (xmin, xmax, ymin, ymax)
coord. ref. : +proj=longlat +datum=WGS84 +towgs84=0,0,0 +ellps=WGS84 
data source : in memory
names       : layer 
values      : NA, NA  (min, max)

我做错了什么?我需要一种方法来确保数据框中的值反映在栅格中。

【问题讨论】:

  • 使示例对可能想要帮助您的人更具重现性:并非所有 SO 用户的计算机上都有 xFRP!至少给出第一个命令正在读取的任何内容的精简版本..
  • 嗨,Shekeine,第一行粘贴错误“光栅化”代码在空间点数据帧中运行良好,但不适用于空间多边形数据帧。这是我的挑战。
  • 您应该提供其他 SO 用户可以用来重现您的问题的数据样本。下面的 RobertH 已经做到了这一点,但他的数据并没有重现您的问题:仅仅是因为它与您正在使用的数据不同。

标签: r polygon raster sp rasterize


【解决方案1】:

原理有效,如下图所示。

library(raster)
SPP <- shapefile(system.file("external/lux.shp", package="raster"))
r <- raster(SPP, ncol=40, nrow=45)    
SPP2 <- rasterize(SPP, r, "ID_1")

由于这对您不起作用,我假设您的多边形相对于栅格像元大小非常小,因此不会覆盖任何像元。您可以尝试使用更小的网格单元吗?如果多边形确实那么小,使用它们的质心 (coordinates(SPP)) 并将它们栅格化(作为点)可能更有意义。

【讨论】:

  • 您好罗伯特,感谢您的回复。我将发布完整的代码。它们的原始数据实际上是带有坐标和面积的点数据。请问有没有其他方法可以合并区域和点坐标然后写一个栅格?
  • 谢谢,@RobertH。根据您的建议,我创建了非常小的网格单元并且它起作用了: (r
  • 如果有点数据,可以直接对点进行栅格化。或者您可以先制作邻近多边形并栅格化它们:library(dismo); pols &lt;- voronoi(points)
猜你喜欢
  • 2016-12-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-01-20
  • 1970-01-01
  • 2020-11-12
  • 2019-11-15
相关资源
最近更新 更多