Отображение 2D-пространства 3D-томов в 1D-пространство (файл) - PullRequest
1 голос
/ 12 марта 2012

У меня есть двумерный массив трехмерных объемов.Этот двумерный массив представляет вид сверху всех трехмерных томов.

Я хочу сохранить эти данные в файл таким образом, чтобы я мог очень быстро получить их.Моя проблема в том, что двумерный массив может изменить размер и форму;это не всегда красиво и прямо.Это имеет тенденцию оставлять неиспользуемые разделы и их довольно много.

Мой метод поиска в настоящее время использует двухмерное представление уровня громкости, чтобы найти тома, которые должны быть загружены, но у меня возникают трудности с получениемхорошая структура данных и техника хранения.Большинство методов, с которыми я сталкивался, требуют, чтобы 2D-изображение было одинаковой длины и ширины или зависело от длины или ширины.

Возможно, стоит отметить, что я хочу избежать неиспользуемого пространства вфайл и что я также хочу хорошую местность для сопоставленных точек.При отображении точек довольно распространено найти решение, которое работает, но создает странные отношения;{0, 0} не должен отображаться ни к чему, кроме {0} и {1, 0} должны быть достаточно близко к {0}, а не к чему-то вроде {34}.

Как бы вы поступили так вэффективное пространство и время?

Ответы [ 2 ]

0 голосов
/ 15 июня 2013

То есть вы говорите о том, чтобы просто сохранить 2-мерные срезы вашего модельного пространства, верно?

Если честно, я думаю, что самое простое и, вероятно, лучшее, что нужно сделать, это просто сохранить все. Это делает все очень просто, и вы также можете легко искать в определенном месте файла.

Затем сожмите поток файлов с помощью zlib или bz2 и т. Д. Если у вас много нулей, он будет сжиматься очень хорошо. Когда я начал это делать, он немного ускорил мой код HPC.

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

0 голосов
/ 11 апреля 2012

Я решил это некоторое время назад, реализовав несколько различных кривых заполнения пространства и используя их для отображения и преобразования данных верхнего измерения в файл одного измерения.Я обнаружил, что кривая Гильберта отлично работает.

...