Отображение огромных объемов данных

В настоящее время мы используем ZedGraph, чтобы нарисовать линейную диаграмму некоторых данных. Входные данные поступают из файла произвольного размера, поэтому мы заранее не знаем, какое максимальное количество точек данных. Однако, открыв файл и прочитав заголовок, мы можем узнать, сколько точек данных находится в файле.

Формат файла по существу [время (двойное), значение (двойное)]. Однако записи на оси времени неоднородны. Может не быть никаких точек между, скажем, t = 0 секунд и t = 10 секунд, но может быть 100 000 входов между t = 10 секунд и t = 11 секунд и т. Д.

В качестве примера, наш файл тестового набора данных составляет ~ 2,6 ГБ и имеет 324 млн точек. Мы хотели бы показать пользователю весь график и позволить ему перемещаться по графику. Однако загрузка 324 миллионов точек в ZedGraph не только невозможна (мы на 32-битной машине), но и бесполезна, поскольку нет смысла иметь столько точек на экране. и выберите каждые N других образцов и загрузите их в ZedGraph. Однако, поскольку данные неоднородны, мы должны быть более разумными в выборе образцов для отображения, и мы не можем придумать какой-либо интеллектуальный алгоритм, который бы не считал весь файл.

Я прошу прощения, так как вопрос не имеет четкой специфики, но я надеюсь, что смогу объяснить природу и масштаб нашей проблемы.

Мы работаем на 32-битной Windows, .NET 4.0.

16
задан Peter Mortensen 8 May 2011 в 07:34
поделиться