我有 30 年的温度和降水栅格数据(分别为 30 个栅格层用于临时和准备),我需要将每个栅格转换为 R 中的 csv 文件。我是 R 的新手,谁能告诉我如何我将 tiff 文件转换为 csv 或 excel 文件。
library(raster)
f <- system.file("D:/temp-data//data_range/bf.tif",
package="raster")
x <-as.data.frame(r)
x <- rasterToPoints(r)
write.csv(x,"data.csv")
在数据点的第 5 行中,它们给出了错误。任何人都可以重新喜欢它。
问候
答案 0 :(得分:0)
您可以尝试打包光栅。使用您的 tiff 文件而不是系统内置文件。
library(raster)
f <- system.file("external/test.grd", package="raster")
mat <- as(raster(f), "matrix")
write.csv(mat, file="data.csv")
编辑:这里是另一个示例,我们将矩阵编码为光栅图像,然后再编码为矩阵:
## create some data
x <- seq(-1, 1, length.out=50)
z <- (x^2 %o% x^2)
range(z) # values from zero to one
## save it as tiff, here I use grey color but other colors are also possible
tiff("raster_grey.tif", width=50, height=50)
par(mar=c(0,0,0,0)) # no margins
image(z, axes=FALSE, col=gray.colors(100, start=0, end=1))
dev.off()
## load the data and convert it to numbers
library(raster)
mat <- as(raster("raster_grey.tif"), "matrix")
View(mat)
write.csv(mat, file="data.csv")
我们当然需要映射 tiff 的哪些颜色(或灰度值)与哪些原始值匹配。另请注意,tiff 是多种格式,因此您可以首先检查您的 tiff 是否可以通过光栅读取,如果不能,则需要转换。
这里是光栅图像(50 x 50 像素,当然可以更大):