[英]time and geographical subset of netcdf raster stack or raster brick using R
[英]r convert raster stack or brick to an animation
我從http://luh.umd.edu/data.shtml下載了一些土地利用場景結果的 NetCDF 文件。 此位置的每個文件都有 11 種土地利用類型的值,年值從 2015 年到 2100 年。我想制作一個動畫 gif 或電影來顯示隨時間的變化。 這似乎應該很簡單,但我嘗試了各種路線,但都沒有奏效,所以我希望有一些真正有效的路線。 1. 一種方法涉及使用柵格 package 中的堆棧或磚塊函數創建土地利用變量之一的柵格堆棧或磚塊。 然后使用光柵動畫 function。 不幸的是,我收到以下錯誤消息“不支持 RasterLayer [堆棧、磚塊] 對象的動畫”。
包含我目前為此所做的努力的 R 腳本在這里。
嘗試raster::animate()
,跨包有幾個不兼容的動畫功能,這似乎是沖突。
我通常使用 plot 光柵切片的循環制作動畫,並使用動畫 package 捕獲它,例如使用saveHTML()
。
對於 ggplot2,請參閱 gganimate package,但由於需要擴展數據,它不能很好地擴展。
查看您的代碼,我可以使下面的代碼工作。
基本上,我正在制作一個包含所有年份數據的大型 dataframe。
mydf <- purrr::map_dfr(
as.list(ncin.brick),
~setNames(as.data.frame(as(., "SpatialPixelsDataFrame")), c('value', 'x', 'y')),
.id = 'year'
)
gg <- ggplot(
mydf,
aes(x = x, y = y, fill = value)
) +
geom_sf(data = borders, fill = "transparent", color = "black", inherit.aes = FALSE) +
geom_tile() +
scale_fill_viridis_c() +
ggthemes::theme_map()
gganim <- gg + transition_time(as.numeric(year)) #+ labs(title = "Year: {frame_time}")
gganim
下圖是結果(動畫很微妙)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.