【问题标题】:Visualising MODIS Vegetation layers for a specific country (using R-package MODISttsp)可视化特定国家的 MODIS 植被层(使用 R-package MODISttsp)
【发布时间】:2021-02-14 23:54:33
【问题描述】:

我正在尝试下载肯尼亚(以及其他类似国家)的 NDVI 数据并将其可视化。

为此,我使用 osmdata 检索了肯尼亚的边界框,并在从 MODIStsp 下载 NDVI 数据时使用了它

library(osmdata)
library(MODIStsp)

kenya_bb <- osmdata::getbb("Kenya")

MODIStsp(gui             = FALSE,
         out_folder      = "Data",
         out_folder_mod  = "Data",
         selprod         = "Vegetation_Indexes_16Days_1Km (M*D13A2)",
         bbox            =  kenya_bb,
         bandsel         = "NDVI",
         user            = "mstp_test" ,
         password        = "MSTP_test_01",
         start_date      = "2020.06.01", 
         end_date        = "2020.06.15", 
         verbose         = FALSE)

然后我只是将下载的数据可视化,但它似乎没有裁剪出肯尼亚

library(raster)
library(here)
library(ggplot2)

NDVI_raster <- raster(here::here("Data/VI_16Days_1Km_v6/NDVI/MOD13A2_NDVI_2020_161.tif"))

NDVI_df <- as.data.frame(NDVI_raster, xy = TRUE, na.rm = TRUE)
rownames(NDVI_df) <- c()

ggplot(data = NDVI_df,
       aes(x=x,y=y)) +
  geom_raster(aes(fill = MOD13A2_NDVI_2020_161))

感谢任何关于如何裁剪单个国家/地区的想法

【问题讨论】:

  • 你解决了吗?我有类似的问题,我不知道为什么

标签: r geospatial r-raster r-modis


【解决方案1】:

这种行为的原因是参数spatmeth 的默认值是"tiles",因此使用参数start_xend_xstart_yend_y 指定的值(并且,如果未明确指定,它们的默认值)被使用。

来自函数文档:

bbox numeric(4) 在 out_proj 坐标系中输出边界框(xmin、ymin、xmax、ymax)。 如果 spatmeth == "tiles" 则忽略,默认值:NULL

spatmeth 字符 ["tiles" | "bbox" | "file"],表示如何检索处理范围。如果是“tiles”,则使用指定的tiles(start_x ....)。如果是“文件”,则从 spafile 中指定的空间文件中检索范围。如果是“bbox”,则使用指定的边界框,默认:“tiles”

要使用kenya_bb 范围,您必须:

  1. spatmeth = "tiles";
  2. bbox = kenya_bb 更正为bbox = as.vector(kenya_bb)

此外,最近修复了一个影响此案例的错误。 您还应该从 GitHub 重新安装包:

remotes::install_github("ropensci/MODIStsp")

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-10-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-08
    • 2016-03-19
    • 1970-01-01
    相关资源
    最近更新 更多