подготовка больших наборов данных для анализа

361
hatmatrix

У меня есть программа на Фортране, которая имитирует много выходных текстовых файлов ascii. Они достаточно велики, чтобы загрузить весь отдельный файл в общие программы анализа данных (Matlab, R, SciPy).

Я думаю, что обычным делом в сообществе научных вычислительных машин является извлечение подмножества этих данных с использованием Fortran, C, Perl или Python и сохранение их в отдельном текстовом файле или netCDF (а в последнее время и HDF5) для использования. по другой программе. Однако такие программы, как R, очень хорошо подходят для извлечения данных из базы данных SQL, и в этом случае выходные данные -> SQLDB -> R кажутся хорошим решением (и, вероятно, SciPy также).

У кого-нибудь есть мнение по этому поводу? Прежде всего, создание отдельного промежуточного файла является односторонним (кажется избыточным использованием дискового пространства), но неизбежным? Кроме того - я не видел, чтобы базы данных SQL широко использовались в научном компьютерном сообществе, но SQLite кажется таким же удобным для передачи данных между программами, как HDF5, или есть недостатки? Спасибо за ваши комментарии.

0

1 ответ на вопрос

1
Spacedman

Зависит от того, как вы собираетесь собирать свои большие данные. Если ваши данные представляют собой N-мерную таблицу, то netCDF будет хорошей идеей (особенно если это трехмерные данные), если вы берете срезы в трех измерениях. Это не так хорошо для запросов, как получить все значения Z1, где Z2 больше, чем Z3. Тогда вы, вероятно, захотите реляционную базу данных и убедиться, что вы правильно определили некоторые индексы. SQLite - хороший переносной способ сделать это, и есть интерфейсы, по крайней мере, для R и Python.