You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用terra包rasterize函数栅格化点要素分类值时被转为数值的问题求助

使用terra包rasterize函数栅格化点要素分类值时被转为数值的问题求助

我之前能正常把带分类属性的点要素栅格化,但现在代码跑出来的结果完全不对——原本的字符型分类值(比如'a'、'b')全都被转换成了数值(0、5这类),直接丢失了分类信息。下面是我整理的可复现代码,还有运行后的结果,麻烦帮忙排查下问题:

可复现代码

library(sf)
library(terra)
library(tibble)

points <- tibble::tribble(
  ~x,~y, ~cat,
  -34.125, -58.162,'a',         
  -34.225, -58.462,'b',         
  -34.325, -58.362,'c',         
  -34.425, -58.662,'d',         
  -34.525, -58.762,'e',         
  -34.625, -58.862,'f'
)
points <- st_as_sf(points, coords = c("x", "y"), crs = 4326)
polygons <- st_buffer(points, dist = 0.1) 

v1 <- vect(points)
v2 <- vect(polygons)
r <- rast(v1, res=0.1)

# 尝试栅格化点要素
rasterize(v1, r, 'cat')
# 尝试栅格化缓冲后的多边形
rasterize(v2, r, 'cat')

运行结果

不管是栅格化点还是缓冲多边形,得到的栅格结果都是这样的(分类信息被替换成了数值):

class       : SpatRaster 
dimensions  : 7, 5, 1  (nrow, ncol, nlyr)
resolution  : 0.1, 0.1  (x, y)
extent      : -34.625, -34.125, -58.862, -58.162  (xmin, xmax, ymin, ymax)
coord. ref. : lon/lat WGS 84 (EPSG:4326) 
source(s)   : memory
name        : cat 
min value   :   0 
max value   :   5

我想要的是栅格能保留原本的字符型分类('a'到'f'),而不是被转成数值,请问哪里出错了?

备注:内容来源于stack exchange,提问作者Florencia Grattarola

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.15 15:34:36