В настоящее время я работаю с распределенными сетками в численном моделировании: я использую вспомогательное дерево из ограничивающих рамок в качестве инструмента поиска. У меня есть много ограничительных рамок, каждая из которых имеет тег (целое число без знака: процесс, который «владеет» ячейкой).
На глобальном уровне мне нужно более «неточное» описание: таким образом я использую rtree.bounds (), а затем отправляю это окно с глобальным сообщением.
К сожалению, это не всегда работает, так как теги генерируются следующими способами:
- боксы с одинаковым тегом сгруппированы вместе: в этом случае это работает как шарм.
- поля с одинаковым тегом образуют два «соединенных» кластера: в этом случае дополнительное пустое пространство означает, что последующие вычисления сделают много бесполезной связи
Поскольку rtree состоит из ограничивающих прямоугольников, я пытаюсь получить доступ к структуре rtree, чтобы получить два или более (возможно, несколько) сырых ограничивающих прямоугольника (первый / второй слой rtree). Это возможно? Или есть быстрый алгоритм для разделения поля rtree.bounds ()?
В настоящее время я вырезаю ограничивающие рамки «вручную», но, поскольку они уже есть в дереве, я считаю, что это пустая трата вычислительной мощности.
Редактировать: Я нашел этот форум http://boost -geometry.203548.n3.nabble.com / Как я могу получить узлы-MBRs-of-R-Tree-td4026812. HTML , который кажется ответом на мой вопрос. Я постараюсь использовать его и, если решу, опубликую решение:)