Как захватить данные в рамках dataframe при использовании st_rasterize? - PullRequest
0 голосов
/ 17 февраля 2020

У меня есть многоугольник:

p1 <- rbind(c(-180,-20), c(-140,55), c(10, 0), c(-140,-60), c(-180,-20))
hole <- rbind(c(-150,-20), c(-100,-10), c(-110,20), c(-150,-20))
p1 <- list(p1, hole)

Я создаю simple feature объект многоугольника:

library(sf)
poly_sfc <- st_sfc(st_polygon(p1))

и теперь добавляю простой фрейм данных:

data <- data.frame(name = "Los Angeles", language = "English", weather ="sunny")
df <- st_sf(data, geometry = poly_sfc)

Я вижу, что он добавил данные к общему sfc.

Simple feature collection with 1 feature and 3 fields
geometry type:  POLYGON
dimension:      XY
bbox:           xmin: -180 ymin: -60 xmax: 10 ymax: 55
epsg (SRID):    NA
proj4string:    NA
         name language weather                       geometry
1 Los Angeles  English   sunny POLYGON ((-180 -20, -140 55...

Теперь я хотел бы растеризовать это, используя следующее:

library(star)
r <- st_rasterize(df, options = "ALL_TOUCHED=TRUE")

Однако, когда я смотрю на растр r, данные из df отбрасываются.

stars object with 2 dimensions and 1 attribute
attribute(s):
      ID        
 Min.   :1      
 1st Qu.:1      
 Median :1      
 Mean   :1      
 3rd Qu.:1      
 Max.   :1      
 NA's   :34597  
dimension(s):
  from  to offset     delta refsys point values    
x    1 328   -180  0.580682     NA    NA   NULL [x]
y    1 199     55 -0.580682     NA    NA   NULL [y]

Как я могу убедиться, что данные из df передаются в растр? Есть ли способ сделать это через st_rasterize ??

1 Ответ

0 голосов
/ 17 февраля 2020

так что вы начнете с df made. Итак, чтобы сделать растр:

library(raster)
r <- raster(ncol = 180, nrow = 180) # create a base of the raster
extent(r) <- extent(df) # extent the raster to your df
rp <- rasterize(df, r)

И вот результат

enter image description here

...