首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >as.polygons(SpatRaster,values=FALSE)似乎在不应该溶解细胞的时候溶解细胞。

as.polygons(SpatRaster,values=FALSE)似乎在不应该溶解细胞的时候溶解细胞。
EN

Stack Overflow用户
提问于 2022-05-24 22:44:25
回答 1查看 52关注 0票数 1

也许有些事我不明白。根据“帮助”页面,as.polygons()应用于SpatRaster,并具有values = FALSE不应溶解单元的选项。但是:

代码语言:javascript
复制
library(terra)
# terra 1.5.21

r <- rast(ncols=2, nrows=2, vals=1)

as.polygons(r)   # correctly gives a dissolved 1x1 polygon:
# class       : SpatVector 
# geometry    : polygons 
# dimensions  : 1, 1  (geometries, attributes)
# extent      : -180, 180, -90, 90  (xmin, xmax, ymin, ymax)
# coord. ref. : lon/lat WGS 84 
# names       : lyr.1
# type        : <int>
# values      :     1

as.polygons(r, values=FALSE)  # improperly (?) gives a dissolved 1x1 polygon:
# class       : SpatVector 
# geometry    : polygons 
# dimensions  : 1, 0  (geometries, attributes)
# extent      : -180, 180, -90, 90  (xmin, xmax, ymin, ymax)
# coord. ref. : lon/lat WGS 84 

然而,它应该给出一个未溶解的多边形,例如用dissolve=FALSE获得的多边形(但没有值):

代码语言:javascript
复制
as.polygons(r,dissolve=FALSE)
# class       : SpatVector 
# geometry    : polygons 
# dimensions  : 4, 1  (geometries, attributes)
# extent      : -180, 180, -90, 90  (xmin, xmax, ymin, ymax)
# coord. ref. : lon/lat WGS 84
EN

回答 1

Stack Overflow用户

发布于 2022-05-24 23:16:00

正如您注意到的,文档是不正确的。如果不希望细胞被溶解,则需要使用dissolve=FALSE

如果你不想溶解,也不想要这些值,你可以这样做。

代码语言:javascript
复制
library(terra)
r <- rast(ncols=2, nrows=2, vals=1)

p <- as.polygons(r, dissolve=FALSE, values=FALSE)
# or
p <- as.polygons(rast(r))
p
# class       : SpatVector 
# geometry    : polygons 
# dimensions  : 4, 0  (geometries, attributes)
# extent      : -180, 180, -90, 90  (xmin, xmax, ymin, ymax)
# coord. ref. : lon/lat WGS 84 

后者的工作方式,尽管默认的dissolve=TRUE,因为没有什么可以溶解,因为rast(r)没有值。如果你想要达到你能做到的程度

代码语言:javascript
复制
as.polygons(r, extent=TRUE)
# class       : SpatVector 
# geometry    : polygons 
# dimensions  : 1, 0  (geometries, attributes)
# extent      : -180, 180, -90, 90  (xmin, xmax, ymin, ymax)
# coord. ref. : lon/lat WGS 84 

这是一种更有效的方法,否则相当于溶解(聚集)所有单元。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72370206

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档