Величезні хмарні лазерні дані в PostGIS - зберігання та обробка їх


14

Цікаво, як можна зберігати величезний набір даних про хмарно скановану точку хмари в PostGIS, враховуючи часовий аспект їх обробки. Я знаю, Pointв PostGIS існує об’єкт геометрії . Але наскільки я знаю, це зберігає кожну точку в новому тюпелі, що може зробити пошук будь-якої точки дуже повільним процесом, якщо їх збережено кілька мільйонів і більше.

Я знайшов документ із HSR Universtiy of Applied Sciences Rapperswill, який обговорював цю тему. Він пропонує три способи зберігання таких даних: Whole data in one tupel, Each point in one tupelабо Splitting Data into Blocksякі посилаються інфо-таблицями, тримаючи розширює кожен блок. Оскільки третій спосіб видається найбільш корисним для розміщення збережених точок, я цікавлюсь, чи вже хтось із цим пережив?

Папір можна знайти тут: http://wiki.hsr.ch/Datenbanken/files/pgsql_point_cloud.pdf

І останнє, але не менш важливе, я натрапив на проект на github, який, схоже, має справу з точковими хмарними манерами в PostgeSQL. На жаль, не так багато інформації про це в мережі. Тож те саме запитання тут: хтось уже з цим пережив? Чи він придатний для таких цілей?

Проект можна знайти тут: https://github.com/pramsey/pointcloud

Буду рада також почути про інші пропозиції, ідеї чи досвід, якщо такі є. Але я мушу визнати, що перевагу мають некомерційні рішення.


1
Чи можете ви дати чітке уявлення про те, що ви маєте на увазі під величезним, і яку інформацію з хмарної точки вам потрібно? Тобто тільки XYZ та інтенсивність, яка може, наприклад, зберігатися в заблокованому MultipointZM або також інших даних атрибутів, які, ймовірно, вимагають, щоб Point отримав унікальні значення для кожного окремого вимірювання точки?
Торсті

1
я зберігаю лідар у багатоточкових 10х10 метрів за класифікацією. Ми використовуємо лише наземні значення Z
симплекс

1
@AndreSilva Метою є створення даних даних доріг поверхні. Наразі ми перетворили точки в DEM-сітки та використовували PostGIS для зберігання їх як растрових блоків та SAGA для створення нарешті профілів із нього. Він працює для тестування, але це також означає втрату точності через розсіювання даних перед імпортуванням db. Також експорт сітки-сітки, вирізаних даними лініями профілю, дуже повільно йде в PostGIS (завдяки ST_Union). Було б добре, якби ви могли порекомендувати інструменти для подібних завдань.
knutella

1
@til_b: Ну, саме про це я говорив ... Гарна знахідка :)
knutella

1
Я задав собі те саме питання, і склав кілька фрагментів, щоб отримати робочий прототип. Поки що це чудово , без проблем зі масштабуванням від кількох мільйонів до сотень мільйонів балів з приблизно 20 атрибутами. При цьому багато пунктів, пошук точок всередині району займає кілька сотень мільйонів . Фільтрування за часовою міткою займає приблизно стільки ж часу (для мене точний час отримання). В цілому перф. Тими ж або кращими, ніж у "Трубопроводі управління даними LiDAR; від просторової бази даних до візуалізації веб-додатків", дані стискаються в БД (приблизно 1: 2

Відповіді:


5

У вашому запитанні багато. Коротка відповідь - так, цілком можливо зберегти величезні хмарні дані в PostGIS і використовувати їх для обробки. Ми створили таку повну систему, яка це робить.

Це відео трохи застаріло з його номерами, але у нас були ТБ мобільних / наземних та повітряних даних у постгігах, доступних через python для обробки в задньому кінці та з веб-переднім кінцем, що дозволяє переглядати та завантажувати дані в 3D. https://vimeo.com/39053196

Це дійсно зводиться до того, як ви вирішили зберігати дані в PostGIS і як ви будете мати доступ до них. Хорошим рішенням для повітряних даних може бути якимось чином передача даних у мережу та використання багатоточок для ефективності. Однак якщо ви працюєте з мобільними або наземними даними, де щільність точки може бути від 500-30000 + бали на метр у квадраті, такий підхід не працює. Тоді зводиться до перегляду вашого обладнання та кількості одночасних користувачів, яких ви очікуєте. Детальніше про це можна знайти в деяких наших роботах http://www.mendeley.com/profiles/conor-mc-elhinney/


Привіт, дякую за стільки детальної інформації. Ідеї ​​/ тести, запропоновані у ваших роботах, здаються справді корисними! Знадобиться певний час, щоб все проглянути, але, як я побачив під час першого читання, вони вже пропонують цілий обхідний шлях. Дякую за додавання! Також відео і ваш ПК-переглядач на базі браузера досить цікавий і, здається, працює дуже добре і плавно! На жаль, я отримав руки на короткий термін щодо інших речей. Я сподіваюсь, що незабаром продовжувати працювати з ПК.
knutella

У проекті Glimpse тут є дійсно прикольна демонстрація: цікаву ncg.nuim.ie/glimpse/auth/login.php
Kozuch

7

(Відповідь ґрунтується на моїх та інших коментарях вище; насправді її не перевіряли)

Зберігайте точки як MultiPointZM. Найкращий розмір сітки, ймовірно, залежатиме від шаблонів доступу, і вам потрібно зробити тестування на це. Звичайна сітка з просторовим індексом повинна робити запити досить швидкими. Якщо доступ до 3D важливий, то MultiPointZM може бути на основі 3D-блоку (1) замість двовимірної плоскої сітки, тоді (якщо у вас PostGIS> = 2.0) ви зможете використовувати &&& для швидких 3D-запитів.

Ви також можете зберігати шаблон сітки в окремій таблиці, що може бути корисним, наприклад, при оновленні даних та підтвердженні того, що блоки MultiPointZM залишаються в межах своєї межі після редагувань тощо.

Збереження часових міток або інших даних буде можливим лише для блоку за один раз, але деякі двійкові / категорії даних можуть бути збережені, розставляючи кожен блок за атрибутом, якщо не занадто багато категорій та / або атрибутів.

Якщо вам доведеться зберігати дані як окремий PointZM, то зовнішній ключ таблиці таблиці + індекс B-Tree зробить завантаження лише певних точок (можливо) набагато швидшим, ніж просто запитання в таблицю безпосередньо, навіть з просторовим покажчик.

(1) Якщо діапазон значень Z невеликий (зрештою, це дорога), це, мабуть, не має сенсу.


Я думаю, що ваше «резюме» досить добре підходить як висновок попередніх обговорених пропозицій. Як ви вже говорили, "правильний" спосіб завантаження таких даних повинен бути визначений у межах потреб та запропонованих рішень. Виявилося, це не неможливо завдяки стільки ідей. Це дало мені багато натхнення для моєї подальшої роботи над цим питанням. Дуже дякую!
knutella
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.