Переваги функцій Multipart?


28

Багаточастинні точки, лінії та багатокутники реалізуються майже в кожному ГІС, але які переваги вони надають?

У реляційній базі даних атрибути, які поділяються різними ознаками, можуть бути збережені один раз, а ідентифікатори, використовувані для їх з'єднання для окремих записів геометрії. Так багатофункціональні функції є спадщиною плоского зберігання даних файлів?

alt текст

Відповіді:


35

Якщо ваше програмне забезпечення не підтримує багатопоточні функції, можливо, вам доведеться перейти до надзвичайних і складних довжин для виконання просторових операцій. Наприклад, перетин двох многокутників, як правило, може мати більше одного з'єднаного компонента. Як алгоритмічно, так і концептуально зручно припускати, що такий перетин повертає один об'єкт (багаточастковий багатокутник), а не довільну кількість багатокутників. (З тих же причин корисно підтримувати різні форми нульових і вироджених ознак - наприклад, багатокутники, що мають ступінь, але нульову площу, або навіть багатокутники з місцями розташування, але ні мірою, ні площею. Ці речі можуть виникати в результаті геометричних операцій; їх підтримка виключає багато метушливих постових обробок і може запобігти зникненню корисної інформації.)

З точки зору реляційної бази даних, багаточастинні функції дозволяють нормалізувати: коли атрибут невіддільний від колекції багатокутників, ви хочете представити цю колекцію як єдиний об'єкт. Хорошим прикладом може бути особливість, яка представляє майже будь-яку країну світу, яка має берегову лінію, оскільки країна, ймовірно, включає деякі острови. Ви дійсно хочете змусити ваші RDBMS зробити одну копію атрибутів країни для кожного маленького острова? Швидше за все, ні. Ви навіть не хочете (або потребуєте) підтримувати декілька копій покажчика на атрибути.

Як би ви представляли мережу або гіллясте дерево, як не як узгоджена багатополілінія?

З точки зору математики або алгоритмічних структур даних, дозволяти багатофункціональну функцію - це спрощення, а не ускладнення. Для того, щоб підтримувати багатозначно пов'язані багатокутники (кільця та багатокутники з "дірками"), вам вже потрібен апарат для представлення багатокутних багатокутників.

Нарешті, "векторні" об'єкти та їх типове "представлення спагетті" мають своє походження в теорії спрощених комплексів . (Лише завдяки цьому дещо перерваному зв'язку з теорією топології термін "топологія" перетворився на ГІС, який інакше не використовує по суті нічого з цієї теорії.) Ця теорія вимагає і отримує користь від багатоповерхових особливостей. Насправді наявність лише одного компонента не є частиною визначення спрощеного комплексу, а, скоріше, виявляється особливою властивістю, якою користуються деякі з них (як виявлено рангом їх нульової групи гомології).). Як така, "окрема частина" не є визначальною властивістю, а є лише топологічною якістю в тому ж сенсі, що наявність кільця або "дірки" в полігоні - це топологічна якість (пов'язана з рангом першої групи гомології) .


1
Дуже приємна відповідь. Я не на 100% переконаний у використанні багаточастинних функцій для нормалізації бази даних - кожен полігон все ще має унікальні властивості, такі як площа та довжина, а на запит типу "скільки території Греції складається з островів" стає важко відповісти без надання кожному атрибуту багатокутника.
geographika

2
@geographika Ваш - хороший приклад того, чому потрібно гнучкість у представленні сутностей (просторових чи ні) з базами даних. Щоб розтягнути його далі, можна також стверджувати, що окремі багатокутники потрібно "підірвати" у їх зовнішнє та внутрішнє кільце, щоб відповісти на запитання на кшталт "скільки території Греції складається з озер?" Будь-яка задана структура бази даних спростить певні запити та інші; частина хорошого дизайну бази даних, отже, повинна включати врахування цільового використання бази даних. Хороша (просторова) СУБД забезпечить механізми перетворення між різними структурами.
whuber

2
+1 Відмінна відповідь. Можливо, варто обговорити недоліки продуктивності функцій багаточастин. Візьміть полілінійний клас класів автомобільних доріг США, де функції шосе розбиті на державних кордонах. Створіть другий клас класів, розчинивши назву шосе, в результаті чого I-10 охоплює континент. Тепер порівняйте продуктивність інструменту Identify. Якщо стратегія просторової індексації ESRI не зміниться, вона буде повільніше на багатокласному класові функцій, оскільки є набагато більше MBR, які перекривають один одного. Кожна координата кожної функції, MBR якої перекриває точку, вивчається.
Кірк Куйкендалл

@ Кірк Добре. Ваші приклади вказують на недоліки в технології ESRI більше, ніж вони висвітлюють проблеми в принципі. Ідентифікація функції за допомогою досить ефективної, але простої структури просторових даних, наприклад, квадрату, повинна мати продуктивність O (log (N)) (після початкового кешування збереженої структури даних). Розщеплення кожної з N ознак (імовірно великих) на середню кількість K штук (припускається помірний або малий порівняно з N) збільшує log (N) до log (N) + log (K), що - враховуючи припущення - практично непомітний.
whuber

1
@Dandy Дякую за те, що підкреслив відмінність між геометрією багатоскладових і простою колекцією творів. Я не думаю, що всі типи функцій, що складаються з різних частин, обов'язково «обмежують» свої компоненти; це, ймовірно, залежить від реалізації - що вказує на те, що поняття "багатоскладова" містить деякі тонкі зміни.
whuber

12

Уявіть, що об’єднайте дані про населення до таблиці багатокутних полігонів, що представляють країни. Залежно від того, як ви зробите приєднання, будь-який острів отримав би повне населення цієї країни, або лише один багатокутник набору отримав би повне населення. Не представляючи країну як багатокутний багатокутник, ви повинні або розподілити населення (без потреби складний і неточний), або зібрати багатокутники разом перед тим, як приєднатися, і в цьому випадку ви, по суті, знову закінчите багатокутний багатокутник.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.