【问题标题】:Raster to excel光栅到excel
【发布时间】:2021-05-18 16:56:46
【问题描述】:

我有 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) 如果您有自己的文件,请不要使用system.file。 (2) 我们无权访问您的本地文件bf.tif,(3) 不清楚r 是什么。

标签: r export-to-csv


【解决方案1】:

您可以尝试打包光栅。使用您的 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 像素,当然也可以更多):

【讨论】:

  • 先生,这第 3 行给出了错误,我尽了最大努力但没有解决它。-tpetzoldt
  • 感谢您的反馈。详细信息取决于光栅文件的种类和内容。 Tiff 文件可能非常不同,并且还有一个问题是如何将光栅强度(即颜色)转换为有用的比例。
  • 非常感谢您的热情回复。我已经编辑了我的问题。你能看一下代码吗,请告诉我其中有什么问题。 -tpetzoldt
  • 查看问题下方的 cmets。
猜你喜欢
  • 1970-01-01
  • 2023-03-29
  • 2019-04-22
  • 2020-12-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-01-05
  • 2023-03-17
相关资源
最近更新 更多