Какой R-package самый быстрый для чтения NetCDF-файлов?
-
- Гуру
- Сообщения: 964
- Зарегистрирован: 22 май 2010, 20:20
- Репутация: 154
Какой R-package самый быстрый для чтения NetCDF-файлов?
Здравствуйте. Какой R-package проявляет себя как самый быстрый для чтения NetCDF-файлов? Пользовался library("ncdf4") (читал в цикле все variables из нескольких тысяч уже скачанных из сети NetCDF-файлов и писал их в tibble) - и очень что-то медленно... У кого есть опыт ? Подскажите, пожалуйста.
- rhot
- Гуру
- Сообщения: 1727
- Зарегистрирован: 25 янв 2011, 17:50
- Репутация: 194
- Ваше звание: доктор
- Откуда: Архангельск
Re: Какой R-package самый быстрый для чтения NetCDF-файлов?
Не знаю других пакетов, кроме ncdf4 и RNetCDF.
Может быть эта информация поможет https://stackoverflow.com/questions/199 ... rom-netcdf
Может быть эта информация поможет https://stackoverflow.com/questions/199 ... rom-netcdf
___________(¯`·.¸(¯`·.¸ Scientia potentia est _/ {SILVA}:::{FOSS}:::{GIS} \_ Знание сила ¸.·´¯)¸.·´¯)___________
-
- Гуру
- Сообщения: 964
- Зарегистрирован: 22 май 2010, 20:20
- Репутация: 154
Re: Какой R-package самый быстрый для чтения NetCDF-файлов?
rhot, Спасибо!rhot писал(а): ↑11 ноя 2017, 17:40Может быть эта информация поможет https://stackoverflow.com/questions/199 ... rom-netcdf
-
- Гуру
- Сообщения: 4058
- Зарегистрирован: 15 окт 2010, 08:33
- Репутация: 1055
- Ваше звание: программист
- Откуда: Казань
Re: Какой R-package самый быстрый для чтения NetCDF-файлов?
если вы в цикле читали по одной переменной, то это проблема - нужно найти что-то, что читает и парсит весь файл сразу, во что-то типа списка. И вторая проблема - R много времени тратит на создание внутренних структур (таблиц и т.д.).
Есть подозрение, что они вам не нужны (и даже вредны), и хватит нормальных матриц, которые можно быстро читать и писать бинарными операциями (я так читаю и пишу сетки SURFER 6 версии, с 7 мороки много). Т.е. если есть двоичное чтение из NetCDF, то лучше прямо его и использовать.
Или написать небольшую утилитку на С++/Питоне, которая будет разваливать NetCDF в набор двоичных файлов с созданием списка (что куда записалось), а потом читать бинарным способом в матрицы R, используя этот список.
-
- Гуру
- Сообщения: 964
- Зарегистрирован: 22 май 2010, 20:20
- Репутация: 154
Re: Какой R-package самый быстрый для чтения NetCDF-файлов?
Уважаемый gamm, спасибо за дельные советы. netcdf эти с различным набором переменных, поэтому читаю все сначала с их атрибутами (name, missvalue, ...) и размером... да и значения списком сразу... пишу в tibble - этакие "улучшенные" data.frame's... одна строка tibble - это у меня столбцы информации о каждой переменной (и список её значений) одного netcdf... м.б., по Вашему совету и уже по своему желанию проверить попробую в матрицы писать (м.б., действительно, критично время add_row для tibble?), а затем уже их merge'ить/bind'ить... так-то работает у меня и в написанном варианте с tibble'ами, но медленно.... хотя, если на "парцайки" поделить 8-час. работы notebook'а, - то, на каждую ночь заряжая, за недели четыре можно и сделать...gamm писал(а): ↑12 ноя 2017, 09:39если вы в цикле читали по одной переменной, то это проблема - нужно найти что-то, что читает и парсит весь файл сразу, во что-то типа списка. И вторая проблема - R много времени тратит на создание внутренних структур (таблиц и т.д.).
Есть подозрение, что они вам не нужны (и даже вредны), и хватит нормальных матриц, которые можно быстро читать и писать бинарными операциями (я так читаю и пишу сетки SURFER 6 версии, с 7 мороки много). Т.е. если есть двоичное чтение из NetCDF, то лучше прямо его и использовать.
Или написать небольшую утилитку на С++/Питоне, которая будет разваливать NetCDF в набор двоичных файлов с созданием списка (что куда записалось), а потом читать бинарным способом в матрицы R, используя этот список.
-
- Гуру
- Сообщения: 964
- Зарегистрирован: 22 май 2010, 20:20
- Репутация: 154
-
- Гуру
- Сообщения: 4058
- Зарегистрирован: 15 окт 2010, 08:33
- Репутация: 1055
- Ваше звание: программист
- Откуда: Казань
Re: Какой R-package самый быстрый для чтения NetCDF-файлов?
я бы для начала попробовал создать матрицу double, и писал туда. Если размер неизвестен, то можно (по мере заполнения) пересоздавать с увеличением размера, и перезаписывать начальную часть. Мы измеряли, всякие перестройки типа добавления строк и вставки в середину списка - страшно тормозные. Нужны эксперименты
-
- Гуру
- Сообщения: 964
- Зарегистрирован: 22 май 2010, 20:20
- Репутация: 154
Re: Какой R-package самый быстрый для чтения NetCDF-файлов?
принял к сведению Ваш опыт и рекомендации! поэкспериментирую!gamm писал(а): ↑12 ноя 2017, 13:20я бы для начала попробовал создать матрицу double, и писал туда. Если размер неизвестен, то можно (по мере заполнения) пересоздавать с увеличением размера, и перезаписывать начальную часть. Мы измеряли, всякие перестройки типа добавления строк и вставки в середину списка - страшно тормозные. Нужны эксперименты
-
- Интересующийся
- Сообщения: 25
- Зарегистрирован: 07 фев 2012, 12:00
- Репутация: 20
Re: Какой R-package самый быстрый для чтения NetCDF-файлов?
мой опыт, правда это было достаточно давно, когда tibble еще не так не назывались - для создания этой таблицы уходило больше времени, чем на создание data.frame
-
- Гуру
- Сообщения: 964
- Зарегистрирован: 22 май 2010, 20:20
- Репутация: 154
-
- Гуру
- Сообщения: 964
- Зарегистрирован: 22 май 2010, 20:20
- Репутация: 154
Re: Какой R-package самый быстрый для чтения NetCDF-файлов?
... а с library("pbdNCDF4") кто-нибудь работал? если "да", - то как этот package по скорости чтения в сравнении с упомянутыми выше ncdf4 и RNetCDF ?
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 0 гостей