Если ваши данные размещаются через регулярные промежутки времени, это можно сделать довольно легко (если я правильно понимаю вашу проблему). Сначала вам нужно определить, на каком интервале вы хотите ваши контуры. Затем создайте сетку, которую вы собираетесь использовать для хранения информации о контуре (я предполагаю, что это просто включение / выключение или повышение прав для этого типа данных на уровне контура), который должен быть на один интервал меньше, чем исходные данные.
Теперь уловка состоит в том, чтобы сместить 2 сетки на 1/2 интервала (на самом деле не будет отображаться в коде, подобном этому, но это концепция, с которой я здесь имею дело) и сравнить 4 координаты, окружающие текущий укажите в расчетной сетке данных контура. Если какая-либо из 4 точек находится в другом диапазоне интервалов, то для этого «пикселя» в сетке контура должно быть установлено значение «истина» (или значение пересекаемого диапазона контура).
При использовании этого метода возникнет проблема, когда интервал слишком мал, что приведет к наложению друг на друга нескольких контуров.