- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我遇到了 R 中覆盖函数的异常问题。我们正在尝试用另一层的值填充多云像素。我可以按如下方式使其与堆栈一起正常工作 -
library(raster)
r1 <- raster(ncols=36, nrows=18)
r1[] <- 1:ncell(r1)
r1b <- r1a <- r1
r1_stack <- stack(r1, r1a, r1b)
r2 <- setValues(r1, runif(ncell(r1)))
r2b <- r2a <- r2
r_stack <- stack(r2, r2a, r2b)
r_stack[r_stack < 0.5] <- NA
r3 <- cover(r_stack, r1_stack)
但后来我尝试用光栅堆栈做同样的事情,但我得到了错误:
Error in as.character(x) :
cannot coerce type 'closure' to vector of type 'character'
代码:
# get all tifs
LS5_032_032_2008_09_21 <- list.files("LT050340302008090301T1-SC20170526100900/",
pattern = glob2rx("*band*.tif$"), full.names = T)
# stack bands
cloudy_scene <- stack(LS5_032_032_2008_09_21)
# import cloud mask
cloud_mask <- raster('LT050340302008090301T1-SC20170526100900/LT05_L1TP_034030_20080903_20160905_01_T1_sr_cloud_qa.tif')
# mask data
masked_data <- mask(cloudy_scene, mask = cloud_mask, maskvalue=0, inverse=TRUE)
####### get cloud free data
# get files
LS5_2008_09_19 <- list.files("LT050340302008091901T1-SC20170526101124/",
pattern = glob2rx("*band*.tif$"), full.names = T)
# subset and stack cloud free bands
cloud_free_data <- stack(LS5_2008_09_19)
# use cover function to assign NA pixels to corresponding pixels in other scene
cover <- cover(masked_data, cloud_free_data)
TRACEBACK() 输出:
9: toupper(format)
8: .defaultExtension(format)
7: .getExtension(filename, filetype)
6: .local(x, filename, ...)
5: writeStart(outRaster, filename = filename, format = format, datatype = datatype,
overwrite = overwrite)
4: writeStart(outRaster, filename = filename, format = format, datatype = datatype,
overwrite = overwrite)
3: .local(x, y, ...)
2: cover(masked_data, cloud_free_data)
1: cover(masked_data, cloud_free_data)
更新:我尝试对数据重新采样 - 仍然无效
cloud_free_resam <- resample(cloud_free_data, masked_data)
cover <- cover(masked_data, cloud_free_resam)
错误:
Error in as.character(x) :
cannot coerce type 'closure' to vector of type 'character'
我也尝试裁剪两层 - 同样的错误
# find intersection boundary
crop_extent <- intersect(extent(cloud_free_data), extent(masked_data))
cloud_free_data <- crop(cloud_free_data, crop_extent)
masked_data <- crop(masked_data, crop_extent)
# use cover function to assign NA pixels to corresponding pixels in other scene
cover <- cover(masked_data, cloud_free_data)
获取数据:(警告:317mb 下载 - 解压为 ~1gb) https://ndownloader.figshare.com/files/8561230
有什么想法可能导致此特定数据集出现此错误吗?我敢肯定我们错过了一些非常基本的东西,但是……什么?提前谢谢你。
莉亚
最佳答案
这是一个错误。覆盖两个多层 Raster* 对象无法写入磁盘。这可以在简单的示例中通过设置
看出rasterOptions(todisk=TRUE)
我已经在 2-6.1 版本(即将发布)中修复了这个问题
关于r 栅格覆盖函数 - landsat 堆栈错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44295842/
我遇到了 R 中覆盖函数的异常问题。我们正在尝试用另一层的值填充多云像素。我可以按如下方式使其与堆栈一起正常工作 - library(raster) r1 <- raster(ncols=36, nr
我在 Google Earth Engine 中进行了一些操作,例如: // Load a cloudy Landsat scene and display it. var cloudy_scene
我正在尝试从 Landsat-8 图像的各个波段创建 RGB 合成图像。尝试过像 np.dstack 这样的选项,也是下面的格式 img[:,:,0] = b4 img[:,:,1] = b3 img
我有一个要素集,我需要从 Landsat 图像中提取 NDWI 的时间序列。 这是我用来提取时间序列的 javascript 功能代码:https://code.earthengine.google.
我正在写一篇关于冰川变化的论文。我对 Landsat 8 图像进行了监督分类,我想计算每个类别中有多少个像素。顺便我想做一个图表。 但是我卡住了,我的代码遇到了错误。我尝试使用带有指定参数的 ui.C
我需要获取多个 Landsat 图像的场景 ID。图像的元数据包含在 xml 文件中: Yhttp://earthexplorer.usgs.gov/browse/tm/
我有一堆 300 多张陆地卫星 NDVI 图像。我在 R 中使用 BFAST 包来识别断点。正如您从这张图片中看到的那样,中断通常非常明显: 请注意 NDVI 在 1988 年左右出现大幅下降,然后逐
我正在尝试编写一个 Python 代码,通过修改以下代码将 LANDSAT 卫星图像导入 Grass GIS:http://grass.osgeo.org/wiki/LANDSAT LANDSAT 切
我从 Automated Bulk Downloads of Landsat-8 Data Products in Python | Geology and Python 实现了 python 代码教
我正在尝试将 20 世纪 80 年代以来的所有 Landsat 传感器(L4-l8)组合到 Google Earth Engine 中,并计算 NDVI 指数的时间序列(去除云层后) 我尝试通过添加另
我是一名优秀的程序员,十分优秀!