Я новый программист. Недавно мне дали 1850 файлов .nc, которые я подмножал до 480 файлов. У каждого имени файла есть номер, указывающий месяц. Все, что я хочу сделать, это:открыть несколько .nc, а затем написать несколько растровых
- открыть все .NC файлы
- написать все .NC файлы в растровом формате
- среднее всех растровых файлов в 12 файлов, по одному на каждый месяц.
Я знаю, что это не должно быть сложно, но у меня проблемы. До сих пор я не получил мимо шаг 2:
library(RNetCDF)
library(raster)
library(rgdal)
files=list.files(pattern='*.nc', full.names=TRUE)
for (i in seq_along(files)){
nc=open.nc(files[i])}
list(nc)
for(i in 1:length(nc)){
rnc<-raster(nc[i])
writeRaster(rnc, filename=names(rnc), bylayer=TRUE, format="GTiff")}
Как вы можете сказать, я еще новичок/студент R, я думаю, что у меня есть шаг 1 OK, для цикла на шаге 2 не похоже, работают. Как только я получу 1 и 2, я смогу работать на 3 (если вы все увидите простой ответ для шага 3, пожалуйста, поделитесь).
спасибо.
Ваша конечная цель - рассчитать среднемесячное значение вправо? Будет ли лучше/быстрее использовать пакеты «RNetCDF» или «ncdf4» для чтения всех значений точки сетки ([здесь] (http://lukemiller.org/index.php/tag/oisst/)), вычислить означают затем извлечение в таблицы с латами, длинными и средними значениями. После этого довольно просто создать растровые сетки из сгенерированных таблиц. – Tung
Да, все, что я хочу, это вычислять среднемесячные значения по всем 480 файлам. я посмотрел на ваш сценарий, но, к сожалению, мне было тяжело следовать за ним. есть ли простой способ сделать это, используя петли для открытия .nc, а затем либо цикл for для вычисления среднего значения на основе имени файла (например, пропустите шаг 2 и перейдите к шагу 3), либо цикл for для записи на растровый а затем усреднение? – gren
Они не мои. [Этот] (http://lukemiller.org/index.php/2011/03/extracting-sea-surface-temperatures-from-noaas-oisstv2/) немного легче следовать. Я попытаюсь начать с этого – Tung