将数千个PRISM.bil数据文件转换为.csv

将数千个PRISM.bil数据文件转换为.csv,r,dataframe,for-loop,raster,R,Dataframe,For Loop,Raster,任何帮助都将不胜感激,因为这是一个我一直试图解决的问题 我有13877天的气候数据,从1981年1月1日到2018年12月31日的每日降水数据。我需要的数据是“气候数据:降水量”,加上“时间周期:每日数据”。从那里,数据必须以*.bil的形式按年手动下载。数据是浮点数据,每个.bil文件都是尺寸为621 x 1405的光栅 我想使用R(或Python)将所有这些光栅文件转换并合并为一个*.csv文件。看起来很接近,但我无法使建议的代码正常工作 有了如此大量的数据,我正在寻找一个有效的解决方案,如

任何帮助都将不胜感激,因为这是一个我一直试图解决的问题

我有13877天的气候数据,从1981年1月1日到2018年12月31日的每日降水数据。我需要的数据是“气候数据:降水量”,加上“时间周期:每日数据”。从那里,数据必须以*.bil的形式按年手动下载。数据是浮点数据,每个.bil文件都是尺寸为621 x 1405的光栅

我想使用R(或Python)将所有这些光栅文件转换并合并为一个*.csv文件。看起来很接近,但我无法使建议的代码正常工作

有了如此大量的数据,我正在寻找一个有效的解决方案,如果可能的话。我最近的尝试如下:

#After setting working directory to the folder with all .bil files

library(prism)
library(raster)
library(sp)

type = "ppt"
ls_prism_data(name=TRUE) #lists PRISM files

j = 1
k = 18
final_df = NULL
filepre = paste("PRISM_", type , "_stable_4kmD2_", sep = "")
for (i in 1:771) {
  RS1 <- prism_stack(ls_prism_data()[j:k, 1])
  l = 18
  if (i = 771) {
    l = 17                # 770*18 + 17 = 13877
  }
  j = j + l
  k = k + l
  pr_df <- data.frame(rasterToPoints(RS1))
  long_pr_df <- pr_df %>% gather(Date, type, -x, -y)
  long_pr_df$Dates <- gsub(filepre, "", long_pr_df$Dates)
  long_pr_df$Dates <- gsub("_bil", "", long_pr_df$Dates)
  final_df <- rbind(final_df, long_pr_df)
}
#将工作目录设置为包含所有.bil文件的文件夹后
图书馆(棱镜)
图书馆(光栅)
图书馆(sp)
type=“ppt”
ls_prism_数据(name=TRUE)#列出prism文件
j=1
k=18
最终的_df=NULL
filepre=粘贴(“棱镜”,类型,“\u稳定的\u 4kmD2”,sep=”“)
(我在1:771中){

RS1为了了解您面临的障碍,我需要知道下载哪些bil格式的文件来填充目录,然后知道需要什么操作。您显然知道这些文件的格式,因此需要教育您的受众。顺便说一句,避免在循环中增加对象,例如
rbind
which内存不足。@42-很抱歉信息不完整,我试图简洁,但可能太多了。上面的PRISM超链接带您到下载页面。我需要的数据是“气候数据:”降水量,“时间周期:”每日数据从那里开始,数据必须按年手动下载,因此需要经历并选择一年,然后在.bil中下载该年的所有数据。我想将信息保存到一个单独的文件中,该文件按年组织,按点排列,列变量表示降水量,这样我就可以继续对其他气候变量进行此操作。