我使用 terra 包从光栅文件中提取农药应用。在提取步骤中,似乎 terra 删除了一些行。在此示例中,有 19 个警告,其中显示:
无法计算最小值/最大值,采样中未找到有效像素。(GDAL 错误 1)
在提取步骤之后,我剩下的行更少了,而且似乎已经删除了一些行。
这一步使用栅格工作得很好(从这里使用栅格计算农药的平均施用量和总施用量,但数字没有加起来)但不幸的是,考虑到我需要处理的文件数量,它会减慢速度。
任何想法这个错误意味着什么以及如何解决它?
这是代码:
## Terra ----
data(wrld_simpl)
## Need to create a SparVector for terra
wrld_simpl = vect(wrld_simpl)
r <- terra::rast("https://raw.github.com/hansronald/Pesticide-data/master/APR_Soybean_Glyphosate_2015_L.tif")
## Remove
r <- terra::clamp(r, lower=0, values=FALSE)
# area is in ha (values in raster are kg / ha per year)
a <- terra::area(r, sum=FALSE, mask=TRUE) * 0.0001
## Get the total area that pesticide has been applied to
tot_area <- terra::extract(a, wrld_simpl, fun = sum, na.rm = TRUE)
## Calculate total application in each cell
rtot <- r * a
## Calculate total application in each country
tot_app <- terra::extract(rtot, wrld_simpl, fun = sum, na.rm = TRUE)
## Mean application rate in each country
mean_app <- terra::extract(r, wrld_simpl, fun = mean, na.rm = TRUE)
## Save data to corresponding country
world_data = data.frame(wrld_simpl$NAME, wrld_simpl$ISO3)
world_data = data.frame(world_data, mean_app, tot_app, tot_area)