Какой R-package самый быстрый для чтения NetCDF-файлов?

Вопросы по статистическому пакету R. Не обязательно гео.
Ответить
nickleb
Гуру
Сообщения: 968
Зарегистрирован: 22 май 2010, 20:20
Репутация: 154

Какой R-package самый быстрый для чтения NetCDF-файлов?

Сообщение nickleb »

Здравствуйте. Какой R-package проявляет себя как самый быстрый для чтения NetCDF-файлов? Пользовался library("ncdf4") (читал в цикле все variables из нескольких тысяч уже скачанных из сети NetCDF-файлов и писал их в tibble) - и очень что-то медленно... У кого есть опыт ? Подскажите, пожалуйста.
Аватара пользователя
rhot
Гуру
Сообщения: 1727
Зарегистрирован: 25 янв 2011, 17:50
Репутация: 194
Ваше звание: доктор
Откуда: Архангельск

Re: Какой R-package самый быстрый для чтения NetCDF-файлов?

Сообщение rhot »

Не знаю других пакетов, кроме ncdf4 и RNetCDF.

Может быть эта информация поможет https://stackoverflow.com/questions/199 ... rom-netcdf
___________(¯`·.¸(¯`·.¸ Scientia potentia est _/ {SILVA}:::{FOSS}:::{GIS} \_ Знание сила ¸.·´¯)¸.·´¯)___________
nickleb
Гуру
Сообщения: 968
Зарегистрирован: 22 май 2010, 20:20
Репутация: 154

Re: Какой R-package самый быстрый для чтения NetCDF-файлов?

Сообщение nickleb »

rhot писал(а): 11 ноя 2017, 17:40Может быть эта информация поможет https://stackoverflow.com/questions/199 ... rom-netcdf
rhot, Спасибо!
gamm
Гуру
Сообщения: 4168
Зарегистрирован: 15 окт 2010, 08:33
Репутация: 1107
Ваше звание: программист
Откуда: Казань

Re: Какой R-package самый быстрый для чтения NetCDF-файлов?

Сообщение gamm »

nickleb писал(а): 11 ноя 2017, 12:12читал в цикле все variables
если вы в цикле читали по одной переменной, то это проблема - нужно найти что-то, что читает и парсит весь файл сразу, во что-то типа списка. И вторая проблема - R много времени тратит на создание внутренних структур (таблиц и т.д.).

Есть подозрение, что они вам не нужны (и даже вредны), и хватит нормальных матриц, которые можно быстро читать и писать бинарными операциями (я так читаю и пишу сетки SURFER 6 версии, с 7 мороки много). Т.е. если есть двоичное чтение из NetCDF, то лучше прямо его и использовать.

Или написать небольшую утилитку на С++/Питоне, которая будет разваливать NetCDF в набор двоичных файлов с созданием списка (что куда записалось), а потом читать бинарным способом в матрицы R, используя этот список.
nickleb
Гуру
Сообщения: 968
Зарегистрирован: 22 май 2010, 20:20
Репутация: 154

Re: Какой R-package самый быстрый для чтения NetCDF-файлов?

Сообщение nickleb »

gamm писал(а): 12 ноя 2017, 09:39если вы в цикле читали по одной переменной, то это проблема - нужно найти что-то, что читает и парсит весь файл сразу, во что-то типа списка. И вторая проблема - R много времени тратит на создание внутренних структур (таблиц и т.д.).

Есть подозрение, что они вам не нужны (и даже вредны), и хватит нормальных матриц, которые можно быстро читать и писать бинарными операциями (я так читаю и пишу сетки SURFER 6 версии, с 7 мороки много). Т.е. если есть двоичное чтение из NetCDF, то лучше прямо его и использовать.

Или написать небольшую утилитку на С++/Питоне, которая будет разваливать NetCDF в набор двоичных файлов с созданием списка (что куда записалось), а потом читать бинарным способом в матрицы R, используя этот список.
Уважаемый gamm, спасибо за дельные советы. netcdf эти с различным набором переменных, поэтому читаю все сначала с их атрибутами (name, missvalue, ...) и размером... да и значения списком сразу... пишу в tibble - этакие "улучшенные" data.frame's... одна строка tibble - это у меня столбцы информации о каждой переменной (и список её значений) одного netcdf... м.б., по Вашему совету и уже по своему желанию проверить попробую в матрицы писать (м.б., действительно, критично время add_row для tibble?), а затем уже их merge'ить/bind'ить... так-то работает у меня и в написанном варианте с tibble'ами, но медленно.... хотя, если на "парцайки" поделить 8-час. работы notebook'а, - то, на каждую ночь заряжая, за недели четыре можно и сделать...
nickleb
Гуру
Сообщения: 968
Зарегистрирован: 22 май 2010, 20:20
Репутация: 154

Re: Какой R-package самый быстрый для чтения NetCDF-файлов?

Сообщение nickleb »

gamm писал(а): 12 ноя 2017, 09:39...что читает и парсит весь файл сразу...
да-да, верно... списками - даже без as.vector(unlist(...)) и без структуризации в tibble's попробовать на первом этапе "чисто-чтива" netcdf'ов... спасибо, gamm!
gamm
Гуру
Сообщения: 4168
Зарегистрирован: 15 окт 2010, 08:33
Репутация: 1107
Ваше звание: программист
Откуда: Казань

Re: Какой R-package самый быстрый для чтения NetCDF-файлов?

Сообщение gamm »

я бы для начала попробовал создать матрицу double, и писал туда. Если размер неизвестен, то можно (по мере заполнения) пересоздавать с увеличением размера, и перезаписывать начальную часть. Мы измеряли, всякие перестройки типа добавления строк и вставки в середину списка - страшно тормозные. Нужны эксперименты :mrgreen:
nickleb
Гуру
Сообщения: 968
Зарегистрирован: 22 май 2010, 20:20
Репутация: 154

Re: Какой R-package самый быстрый для чтения NetCDF-файлов?

Сообщение nickleb »

gamm писал(а): 12 ноя 2017, 13:20я бы для начала попробовал создать матрицу double, и писал туда. Если размер неизвестен, то можно (по мере заполнения) пересоздавать с увеличением размера, и перезаписывать начальную часть. Мы измеряли, всякие перестройки типа добавления строк и вставки в середину списка - страшно тормозные. Нужны эксперименты
принял к сведению Ваш опыт и рекомендации! поэкспериментирую!
nplatonov
Интересующийся
Сообщения: 25
Зарегистрирован: 07 фев 2012, 12:00
Репутация: 20

Re: Какой R-package самый быстрый для чтения NetCDF-файлов?

Сообщение nplatonov »

мой опыт, правда это было достаточно давно, когда tibble еще не так не назывались - для создания этой таблицы уходило больше времени, чем на создание data.frame
nickleb
Гуру
Сообщения: 968
Зарегистрирован: 22 май 2010, 20:20
Репутация: 154

Re: Какой R-package самый быстрый для чтения NetCDF-файлов?

Сообщение nickleb »

nplatonov писал(а): 13 ноя 2017, 06:32мой опыт, правда это было достаточно давно, когда tibble еще не так не назывались - для создания этой таблицы уходило больше времени, чем на создание data.frame
интересно... спасибо!
nickleb
Гуру
Сообщения: 968
Зарегистрирован: 22 май 2010, 20:20
Репутация: 154

Re: Какой R-package самый быстрый для чтения NetCDF-файлов?

Сообщение nickleb »

... а с library("pbdNCDF4") кто-нибудь работал? если "да", - то как этот package по скорости чтения в сравнении с упомянутыми выше ncdf4 и RNetCDF ?
Ответить

Вернуться в «R»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость