光栅化

时间:2021-05-18 16:56:46

标签: r export-to-csv

我有 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 行中,它们给出了错误。任何人都可以重新喜欢它。

问候

1 个答案:

答案 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 像素,当然可以更大):

raster image