我想栅格化一个多边形,如果我定义了字段,它不会返回属性。例如,下面的多边形有 22 个多边形和 13 个唯一的 BASIN_ID。如果我基于类型因子/字符的 BASIN_ID 进行光栅化,它将为每个字符分配一个数字。但我怎样才能找出哪个数字指的是哪个多边形?
polyg
class : SpatialPolygonsDataFrame
features : 22
extent : -2207945, 2235431, -1667188, 1584226 (xmin, xmax, ymin, ymax)
coord. ref. : +proj=lcc +lat_1=30 +lat_2=60 +lat_0=40.0000076293945 +lon_0=-97 +x_0=0 +y_0=0 +a=6370000 +b=6370000 +units=m +no_defs
variables : 5
names : SITE_ID, STATE, RFC_NAME, RFC_CITY, BASIN_ID
min values : ALR, CA, Arkansas-Red Basin, Atlanta, ABRFC
max values : TUA, UT, West Gulf, Tulsa, WGRFC
这是用于光栅化的命令:
> rnew <- raster::rasterize(x = polyg,
+ y = r,
+ field = field)
我会得到:
> rnew
class : RasterLayer
dimensions : 3253, 4444, 14456332 (nrow, ncol, ncell)
resolution : 1000, 1000 (x, y)
extent : -2208000, 2236000, -1668001, 1584999 (xmin, xmax, ymin, ymax)
coord. ref. : +proj=lcc +lat_1=30 +lat_2=60 +lat_0=40.0000076293945 +lon_0=-97 +x_0=0 +y_0=0 +a=6370000 +b=6370000 +units=m +no_defs
data source : in memory
names : layer
values : 1, 13 (min, max)
我想我可以使用以下方法(不确定)找到对应关系,但我正在寻找 rasterize 中的一个选项,它可以为我做到这一点。
polyg@data$BASIN_ID as.numeric(polyg@data$BASIN_ID)
1 MBRFC 7
2 CBRFC 3
3 ABRFC 1
4 CNRFC 4
5 LMRFC 5
6 MARFC 6
7 NCRFC 8
8 NERFC 9
9 NWRFC 10
10 OHRFC 11
11 SERFC 12
12 WGRFC 13
13 WGRFC 13
14 WGRFC 13
15 WGRFC 13
16 WGRFC 13
17 WGRFC 13
18 WGRFC 13
19 WGRFC 13
20 WGRFC 13
21 WGRFC 13
22 WGRFC 13
谢谢,
levels(rfc[['BASIN_ID']])
[1] "ABRFC" "AKRFC" "CBRFC" "CNRFC" "LMRFC" "MARFC" "MBRFC" "NCRFC" "NERFC"
[10] "NWRFC" "OHRFC" "SERFC" "WGRFC"