如何在栅格化时保持属性,字段与光栅化中使用的数字之间的对应关系

时间:2016-02-18 16:17:21

标签: r raster rasterize

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

enter image description here

我想我可以使用以下(不确定)找到对应关系,但我正在寻找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"

0 个答案:

没有答案