Преобразование тысяч файлов данных PRISM .bil в .csv - PullRequest
0 голосов
/ 20 сентября 2019

Любая помощь будет принята с благодарностью, поскольку эту проблему я уже давно пытаюсь решить.

У меня есть климатические данные за 13877 дней из ПРИЗМА , данные по суточным осадкам с 01.01.1981 по 31.12.2008.Мне нужны данные «климатические данные: осадки» с «временным периодом: суточные данные».Оттуда данные должны загружаться вручную по годам как * .bil.Данные с плавающей запятой, каждый файл .bil является растром с размером 621 x 1405.

Я хотел бы преобразовать и объединить все эти растровые файлы в один файл * .csv, используя R (или Python)., Этот пост показался близким, но я не смог заставить предложенный код работать должным образом.

При таком большом количестве данных я ищу эффективное решение, если это возможно.Моя последняя попытка была следующей:

#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)
}

Я думал о том, чтобы преобразовать данные в «пакеты».К сожалению, это приводит к фатальной ошибке, которая приводит к прерыванию R.

В конечном счете, я хотел бы получить информацию в один файл, упорядоченный по годам, по точкам с переменной столбца, обозначающей количество осадков, чтобы я мог продолжить это для другихклиматические переменные.

Мне не нужно исправление вышеприведенного кода как такового, я просто ищу средство для достижения цели.Заранее спасибо за помощь!

...