ПОТОКОВАЯ ЗАГРУЗКА
Потоковая загрузка рельефа — это то, как STREAM открывает съёмку, которая намного больше памяти вашей видеокарты, и держит её отзывчивой: рельеф нарезан на фиксированные тайлы нескольких уровней детализации, и в каждом кадре камера запрашивает только те тайлы, которые действительно видит. Остальное остаётся на диске. Поэтому DEM на гигабайты двигается без полосы загрузки, облако точек становится поверхностью, по которой можно мерить, а несколько DEM одного объекта ведут себя как одна — всё на вашей машине.
Большая DEM не помещается в GPU, и не должна. Потоковая загрузка держит весь набор данных на диске в тайловой многоуровневой форме и переносит в видеопамять только видимую часть: сначала грубые тайлы на весь вид, затем тонкие там, куда направлена камера.
STREAM делает это через двухуровневый растровый путь. Исходный GeoTIFF или BigTIFF один раз читается через GDAL и преобразуется в родную оптимизированную копию: детерминированная раскладка тайлов 512 × 512 с уровнями обзора, Float32 для высот и RGBA8 для ортофотопланов. Когда копия готова, рендерер читает тайлы прямо из неё, не возвращаясь к исходному файлу.
В итоге размер файла перестаёт быть пределом. Важно, на сколько вы смотрите, а это ограничено экраном.
У каждого тайла рельефа есть идентификатор: уровень, x и y. В каждом кадре состояние камеры формирует набор запросов: закреплённый грубый набор на весь вид и набор детализации там, где фокус. Тайлы вне этого набора не декодируются, не загружаются и не удерживаются.
При первом открытии STREAM строит родную оптимизированную копию — тайлы 512 × 512, уровни обзора, тайловый BigTIFF со сжатием ZSTD. Таблица тайлов фиксирует, что построено; кэш считается полным, только когда построен каждый тайл. С этого момента рендерер читает тайлы напрямую, и повторное открытие быстрое.
Декодирование тайлов идёт в рабочих потоках задачами с пятью уровнями приоритета — от фонового предсказания до критического — под лимитом задач в полёте. Устаревшие задачи отменяются по поколению, так что быстрый поворот камеры не оставляет очередь никому не нужных тайлов.
Порядок загрузки следует фокусу камеры и видимости. Если тонкий тайл ещё не готов, вместо него встаёт более грубый уровень, так что поверхность всегда замкнута; детализация проступает по мере прихода тайлов.
Когда память атласа заполнена, политика вытеснения предпочитает сбрасывать тайлы того же или более грубого уровня, чем входящий, учитывает расстояние до фокуса камеры и защищает страницы покрытия-подмены — освобождение памяти под детали никогда не открывает дыру в основе.
Когда видимо больше одной DEM, STREAM связывает стек в единую виртуальную мозаику: побеждает верхний валидный пиксель, NoData проваливается на слой ниже. Анализ, горизонтали, разрезы и гидрология читают ту же мозаику, что рисует рендерер, — а не только первый файл.
Файл LAS/LAZ сначала зондируется — число точек, классификация, RGB, границы — затем асинхронно растеризуется в тот же родной тайловый формат. Вы выбираете, какой будет поверхность: только точки земли, все точки или ортофотоплан из цветов точек.
Высоты и ортофотоплан отслеживаются как отдельные наборы разреженных страниц, у каждого своя резидентность, так что тяжёлый ортофотоплан никогда не лишает рельеф тайлов высот. Рендер — Vulkan на GPU, а на ноутбуке STREAM сам выбирает дискретную карту.
Добавьте DEM (GeoTIFF или BigTIFF). При самом первом открытии STREAM преобразует её в родной тайловый формат; карточка прогресса справа внизу показывает сборку, её можно отменить.
Панорамируйте и масштабируйте. Грубые тайлы сразу закрывают вид; тонкие подгружаются туда, куда направлена камера. Ждать загрузки всего файла не нужно.
Добавьте GeoTIFF ортофотоплана. Он идёт своим набором страниц в родном разрешении, независимо от тайлов высот.
Добавьте файл LAS/LAZ и выберите нужную поверхность: DEM по земле, DEM по всем точкам или ортофотоплан из цветов точек. Результат — потоковая поверхность, как и любая другая.
Загрузите DEM одного объекта. Видимые слои объединяются в одну виртуальную мозаику — показывается верхний валидный пиксель, NoData проваливается — и каждый анализ читает эту мозаику.
Родная копия остаётся с проектом. В следующий раз та же съёмка откроется за секунды, потому что преобразование уже сделано.
| Вариант | Какие точки берутся | Что вы получаете |
|---|---|---|
| DEM по земле | Точки класса 2 (земля), минимальная высота в каждой ячейке. | Поверхность голой земли для объёмов, уклонов и проектирования. |
| DEM по всем точкам | Все точки, максимальная высота в каждой ячейке. | Поверхность с растительностью и сооружениями — то, что показывает DSM. |
| Ортофотоплан | Цвет самой высокой точки в каждой ячейке, если облако несёт RGB. | Слой изображения, натянутый на рельеф и идущий своим набором страниц. |
Хранение большого набора данных рельефа на диске в тайловой многоуровневой форме и перенос в видеопамять в каждом кадре только видимых тайлов — грубых на весь вид, тонких там, куда направлена камера. Размер файла перестаёт быть пределом; предел — на сколько вы смотрите, а это ограничено экраном.
STREAM сделан для DEM гигабайтного масштаба. Поскольку резидентны только видимые тайлы, размер влияет на разовое преобразование при первом открытии, а не на отзывчивость рельефа потом.
При первом открытии STREAM преобразует источник в родную оптимизированную копию: тайлы 512 × 512, уровни обзора, сжатие. Эта сборка выполняется один раз и показывается отменяемой карточкой прогресса. Дальше рендерер читает тайлы прямо из родной копии, и повторное открытие занимает секунды.
Нет. Источник читается через GDAL; STREAM пишет рядом собственную оптимизированную копию и работает с ней. Ваш исходный файл не перезаписывается.
Да. Видимые DEM связываются в единую виртуальную мозаику — побеждает верхний валидный пиксель, NoData проваливается на слой ниже — и анализ читает ту же мозаику, что рисует рендерер. Это было реальным исправлением: раньше часть инструментов читала только первую DEM.
Оно зондируется — число точек, классификация, RGB, границы — затем асинхронно растеризуется в тот же родной тайловый формат. Поверхность выбираете вы: только точки земли (класс 2, минимальная высота), все точки (максимальная высота) или ортофотоплан из цветов точек.
Потому что грубый уровень подменяет тонкие тайлы, пока не придут тайлы вашего фокуса. Загрузки следуют фокусу камеры и видимости, декодирование идёт в рабочих потоках под лимитом задач в полёте, а устаревшие запросы от быстрого движения отменяются, а не ставятся в очередь.
STREAM рендерит через Vulkan на GPU. На ноутбуке с двумя картами он сам выбирает дискретную и записывает для приложения предпочтение высокой производительности; реально используемую карту видно в Справка ▸ Диагностика производительности.
Нет. Всё — преобразование, потоковая загрузка, рендер — выполняется на вашей машине. Ничего не отправляется, данные не покидают компьютер.
Первая валидная CRS растра становится CRS проекта. Растр с несовпадающей CRS всё равно импортируется, но не рисуется в рельефе, пока расхождение не устранено, — STREAM не угадывает преобразование молча.
Бесплатная бета для Windows x64. Работает полностью офлайн с GeoTIFF, LAS/LAZ и DXF.
Скачать STREAM бесплатно