4

我想栅格化一个多边形,如果我定义了字段,它不会返回属性。例如,下面的多边形有 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"
4

0 回答 0