R 从光栅砖文件中提取所有单个图层
我已经把28层堆积在一块砖上R 从光栅砖文件中提取所有单个图层,r,stack,raster,layer,geotiff,R,Stack,Raster,Layer,Geotiff,我已经把28层堆积在一块砖上 brik class : RasterBrick dimensions : 720, 1440, 1036800, 28 (nrow, ncol, ncell, nlayers) resolution : 0.25, 0.25 (x, y) extent : -180, 180, -90, 90 (xmin, xmax, ymin, ymax) crs : +proj=longlat +datum=WGS84 +ellps=W
brik
class : RasterBrick
dimensions : 720, 1440, 1036800, 28 (nrow, ncol, ncell, nlayers)
resolution : 0.25, 0.25 (x, y)
extent : -180, 180, -90, 90 (xmin, xmax, ymin, ymax)
crs : +proj=longlat +datum=WGS84 +ellps=WGS84 +towgs84=0,0,0
source : C:/Users/Ujjal Baruah/AppData/Local/Temp/Rtmp0GaiPO/raster/r_tmp_2020-01-03_030159_46788_10398.grd
names : Data.Fiel//tNO2Trop.1, Data.Fiel//tNO2Trop.2, Data.Fiel//tNO2Trop.3, Data.Fiel//tNO2Trop.4, Data.Fiel//tNO2Trop.5, Data.Fiel//tNO2Trop.6, Data.Fiel//tNO2Trop.7, Data.Fiel//tNO2Trop.8, Data.Fiel//tNO2Trop.9, Data.Fiel//NO2Trop.10, Data.Fiel//NO2Trop.11, Data.Fiel//NO2Trop.12, Data.Fiel//NO2Trop.13, Data.Fiel//NO2Trop.14, Data.Fiel//NO2Trop.15, ...
现在,我想使用
writeRaster(brik, file.path('/output/filepath/', names(brik)), bylayer=TRUE, format('GTiff'))
不幸的是,我在geotiff中只得到一个文件而不是多个层
任何解决方案都将不胜感激。
感谢您,writeRaster在创建光栅文件之前似乎去除了点号。因此,它尝试将所有层写入
Data.Fiel//tNO2Trop.tif
> writeRaster(r, "./test.2", format="GTiff")
> dir(".")
[1] "test.tif"
(注意,由于某些原因,您的代码具有格式(“GTiff”)
用于格式=“GTiff”
。这是因为格式
是一个函数,并且返回字符串“GTiff”
,而writerater
在这里需要格式字符串)
我不知道为什么,也不知道这是有文档记录的还是一个bug。您可以使用破折号而不是点来解决此问题:
> writeRaster(r, "./test-2", format="GTiff")
> dir(".")
[1] "test-2.tif" "test.tif"
如果点对你很重要,那么做一个文件。然后重命名
编辑:如果将.tif
添加到文件名,则一切正常:
> writeRaster(s, names(s), bylayer=TRUE, format="GTiff")
Error in .getGDALtransient(x, filename = filename, options = options, :
filename exists; use overwrite=TRUE
第二层失败,因为点号被剥离:
> dir()
[1] "layer.tif"
将.tif
添加到名称中:
> writeRaster(s, paste0(names(s),".tif"), bylayer=TRUE, format="GTiff")
沙扎姆:
> dir()
[1] "layer.1.tif" "layer.2.tif" "layer.3.tif" "layer.tif"
谢谢你的帮助。。将.tif添加到名称中完成了此任务。。。我非常感谢你的帮助。