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

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

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

Сообщение nickleb » 11 ноя 2017, 12:12

Здравствуйте. Какой R-package проявляет себя как самый быстрый для чтения NetCDF-файлов? Пользовался library("ncdf4") (читал в цикле все variables из нескольких тысяч уже скачанных из сети NetCDF-файлов и писал их в tibble) - и очень что-то медленно... У кого есть опыт ? Подскажите, пожалуйста.

Аватара пользователя
rhot
Гуру
Сообщения: 1682
Зарегистрирован: 25 янв 2011, 17:50
Статьи: 1
Репутация: 180
Ваше звание: доктор
Откуда: Архангельск

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

Сообщение rhot » 11 ноя 2017, 17:40

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

Может быть эта информация поможет https://stackoverflow.com/questions/199 ... rom-netcdf
___________(¯`·.¸(¯`·.¸ Scientia potentia est _/ {SILVA}:::{FOSS}:::{GIS} \_ Знание сила ¸.·´¯)¸.·´¯)___________

nickleb
Гуру
Сообщения: 835
Зарегистрирован: 22 май 2010, 20:20
Репутация: 92

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

Сообщение nickleb » 11 ноя 2017, 22:30

rhot писал(а):
11 ноя 2017, 17:40
Может быть эта информация поможет https://stackoverflow.com/questions/199 ... rom-netcdf
rhot, Спасибо!

gamm
Гуру
Сообщения: 2682
Зарегистрирован: 15 окт 2010, 08:33
Репутация: 592
Ваше звание: программист
Откуда: Казань

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

Сообщение gamm » 12 ноя 2017, 09:39

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

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

Или написать небольшую утилитку на С++/Питоне, которая будет разваливать NetCDF в набор двоичных файлов с созданием списка (что куда записалось), а потом читать бинарным способом в матрицы R, используя этот список.

nickleb
Гуру
Сообщения: 835
Зарегистрирован: 22 май 2010, 20:20
Репутация: 92

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

Сообщение nickleb » 12 ноя 2017, 11:15

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
Гуру
Сообщения: 835
Зарегистрирован: 22 май 2010, 20:20
Репутация: 92

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

Сообщение nickleb » 12 ноя 2017, 11:24

gamm писал(а):
12 ноя 2017, 09:39
...что читает и парсит весь файл сразу...
да-да, верно... списками - даже без as.vector(unlist(...)) и без структуризации в tibble's попробовать на первом этапе "чисто-чтива" netcdf'ов... спасибо, gamm!

gamm
Гуру
Сообщения: 2682
Зарегистрирован: 15 окт 2010, 08:33
Репутация: 592
Ваше звание: программист
Откуда: Казань

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

Сообщение gamm » 12 ноя 2017, 13:20

я бы для начала попробовал создать матрицу double, и писал туда. Если размер неизвестен, то можно (по мере заполнения) пересоздавать с увеличением размера, и перезаписывать начальную часть. Мы измеряли, всякие перестройки типа добавления строк и вставки в середину списка - страшно тормозные. Нужны эксперименты :mrgreen:

nickleb
Гуру
Сообщения: 835
Зарегистрирован: 22 май 2010, 20:20
Репутация: 92

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

Сообщение nickleb » 12 ноя 2017, 13:26

gamm писал(а):
12 ноя 2017, 13:20
я бы для начала попробовал создать матрицу double, и писал туда. Если размер неизвестен, то можно (по мере заполнения) пересоздавать с увеличением размера, и перезаписывать начальную часть. Мы измеряли, всякие перестройки типа добавления строк и вставки в середину списка - страшно тормозные. Нужны эксперименты
принял к сведению Ваш опыт и рекомендации! поэкспериментирую!

nplatonov
Новоприбывший
Сообщения: 11
Зарегистрирован: 07 фев 2012, 12:00
Репутация: 5

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

Сообщение nplatonov » 13 ноя 2017, 06:32

мой опыт, правда это было достаточно давно, когда tibble еще не так не назывались - для создания этой таблицы уходило больше времени, чем на создание data.frame

nickleb
Гуру
Сообщения: 835
Зарегистрирован: 22 май 2010, 20:20
Репутация: 92

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

Сообщение nickleb » 13 ноя 2017, 07:20

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

nickleb
Гуру
Сообщения: 835
Зарегистрирован: 22 май 2010, 20:20
Репутация: 92

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

Сообщение nickleb » 20 ноя 2017, 10:17

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

Ответить

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

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

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