Як об'єднати шари за допомогою геометрії або атрибутів

Summary

У ГІС, об’єднання є потужним механізмом для комбінування інформації з різних шарів на основі загального атрибуту або просторової взаємодії. Об’єднання дозволяє вам об’єднати дані атрибутів з одного шару (вихідного шару) з іншим шаром (цільовим шаром), використовуючи спільне поле або просторове розташування. Перше – це об’єднання даних за ключем (атрибут у таблиці). Використовуючи загальне поле, таке як унікальний ключ, ви можете пов’язати записи в одній таблиці із записами в іншій таблиці. Другий підхід - це об’єднання даних за розташуванням (просторове). Ми підтримуємо обидва підходи та пропонуємо вам можливість використовувати їх залежно від ваших потреб.

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

Зазвичай ви виконуєте об’єднання даних на основі значення поля, яке існує в обох таблицях. Назви полів не обов’язково повинні збігатися, але типи даних повинні бути однаковими - числа з числами, рядки з рядками і так далі. Ви можете виконати об’єднання даних за допомогою інструменту геообробки “Add Join”. При об’єднанні атрибутів об’єднані поля динамічно додаються до наявної таблиці. Властивості полів, такі як псевдоніми, видимість та форматування чисел, зберігаються при додаванні або видаленні об’єднання.

Capabilities to join by key field

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

Вказуючи метод для порівняння даних на основі ключового поля:

  • Ви можете визначити різні методи порівняння для ключового поля при об’єднанні даних. Наприклад, ви можете вибрати точну відповідність, порівнювати за шаблоном або в межах діапазону значень. Це дозволяє більш точно визначати взаємозв’язки між записами та надає контроль над процесом об’єднання даних.

Вказуючи список імен атрибутів для об’єднання:

  • При об’єднанні даних ви можете вказати конкретні атрибути, які слід об’єднати. Це дозволяє вам вибирати лише необхідні атрибути для об’єднання та керувати структурою результуючої таблиці.

Capabilities to join using geometry

  • Цей підхід дає змогу пов’язувати дані на основі їхнього просторового розташування. Ви можете визначити радіус пошуку, в межах якого буде здійснюватися пошук найближчих геометричних об’єктів для об’єднання. Це корисно, коли потрібно об’єднати дані на основі їх географічного положення.

Контроль радіуса пошуку для знаходження найближчих геометричних об’єктів:

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

Demo Project

Щоб краще зрозуміти функціональність нашої бібліотеки, розглянемо приклад її використання. Цей код ілюструє, як об’єднати векторні шари за атрибутами або геометрією.

Наведений код складається з двох методів JoinByIndex() та JoinByCoords(), які демонструють операції об’єднання даних із використанням класу LayerConstructor.

У методі JoinByIndex():

  • Створюються списки геометрій із пов’язаними атрибутами.

  • Ініціалізується об’єкт LayerConstructor.

  • Метод створює векторний шар і геометричний шар, використовуючи надані геометрії.

  • Геометричний шар об’єднується на основі унікального ідентифікатора (“Id”) за допомогою методу JoinLayersById().

  • Результуючий об’єднаний векторний шар повертається.

У методі JoinByCoords():

  • Створюються списки геометрій із пов’язаними атрибутами.

  • Ініціалізується об’єкт LayerConstructor.

  • Створюються геометричні шари, використовуючи надані геометрії.

  • Геометричні шари об’єднуються на основі відповідних координат за допомогою методу JoinLayersByCoords().

  • Результуючий об’єднаний векторний шар повертається.

Підсумовуючи, ці методи демонструють два різні підходи до об’єднання даних: один на основі унікального ідентифікатора, а інший – на основі відповідних координат. Клас LayerConstructor полегшує ці операції об’єднання даних.

Join Options for Index

Клас JoinOptions надає набір опцій для конфігурації об’єднання шарів. Давайте заглибимося в кожну опцію:

  • JoinAttributeName: Ця опція дозволяє вам вказати назву атрибуту з об’єднаного шару, значення якого буде використано в порівнянні умови. Вона встановлює зв’язок між двома шарами на основі цього атрибуту.

  • TargetAttributeName: За допомогою цієї опції ви можете вказати назву атрибуту з основного шару, який буде порівнюватися з атрибутом з об’єднаного шару. Це допомагає визначити відповідні об’єкти між шарами.

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

  • ConditionComparer: Ця опція дозволяє вам визначити спеціальну логіку для порівняння значень атрибутів між об’єктами двох шарів. За замовчуванням використовується EqualityComparer.Default, який перевіряє на рівність. Однак ви можете надати власний спеціальний компаратор, який реалізує IEqualityComparer для більш спеціалізованих вимог порівняння.

  • JoinedAttributesPrefix: Ця опція дозволяє вам вказати префікс рядка для імен атрибутів об’єднаного шару. Значення за замовчуванням – “joined_”, що означає, що об’єднані атрибути будуть мати префікс “joined_” у результуючому об’єднаному шарі. Цей префікс допомагає розрізняти об’єднані атрибути від початкових атрибутів основного шару.

Клас JoinOptions забезпечує гнучкість і контроль над різними аспектами процесу об’єднання шарів. Ви можете вказати атрибути для об’єднання, налаштувати логіку порівняння та визначити префікс для результуючих об’єднаних атрибутів. Ці опції дозволяють адаптувати операцію об’єднання відповідно до ваших конкретних потреб і досягти змістовних висновків із об’єднаних шарів.

Join Options for Geometry

Клас JoinByGeometryOptions представляє параметри для об’єднання шарів на основі геометрії. Давайте дослідимо функціональність кожної опції:

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

  • ConditionComparer: Ця опція дозволяє вам визначити спеціальну логіку для порівняння значень атрибутів із особливостей двох шарів. За замовчуванням використовується EqualityComparer.Default, який перевіряє на рівність. Однак ви можете надати власний спеціальний компаратор, який реалізує IEqualityComparer для більш конкретних вимог порівняння.

  • JoinedAttributesPrefix: Ця опція дозволяє вам вказати префікс рядка для імен атрибутів об’єднаного шару. Значення за замовчуванням – “joined_”, що означає, що об’єднані атрибути будуть мати префікс “joined_” у результуючому об’єднаному шарі. Цей префікс допомагає розрізняти об’єднані атрибути від початкових атрибутів основного шару.

Клас JoinByGeometryOptions надає засоби для налаштування процесу об’єднання шарів на основі їх просторової взаємодії. Вказавши радіус пошуку, ви можете контролювати межі, в межах яких геометрії будуть зіставлені. Це дозволяє точно налаштувати операцію об’єднання на основі бажаної близькості між особливостями. Можливість надати спеціальний компаратор дає вам гнучкість у порівнянні значень атрибутів, а можливість префіксувати об’єднані атрибути допомагає розрізняти їх у результуючому об’єднаному шарі.

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

Summary

Механізм об’єднання даних у ГІС дозволяє комбінувати геометричні об’єкти з відповідними атрибутами з різних шарів. Це забезпечує можливість аналізувати та витягувати інформацію на основі просторових і атрибутивних взаємодій у даних. Доступні опції дають змогу налаштувати процес об’єднання відповідно до конкретних вимог і потреб аналізу в ГІС-даних.

Об’єднання даних полегшує різні завдання, зокрема:

  • Пошук об’єктів, які відповідають певним просторовим критеріям, таких як визначення всіх будівель у радіусі 500 метрів від певної точки.

  • Об’єднання географічних даних для створення більш повного та інформативного огляду ситуації.

  • Аналіз значень атрибутів об’єктів на основі певних просторових умов для виявлення тенденцій і закономірностей.

Опції об’єднання даних дозволяють точно налаштувати процес зіставлення об’єктів. Ці опції включають вибір атрибутів для об’єднання, визначення спеціальної логіки для порівняння значень атрибутів та додавання префікса до імен атрибутів об’єднаних даних. Ці опції забезпечують гнучкість і адаптивність процесу об’єднання, задовольняючи конкретні вимоги та цілі аналізу даних у ГІС.

Механізм об’єднання даних відіграє значну роль в інтеграції та аналізі географічних даних, що дає більш повне розуміння просторової та атрибутивної природи досліджуваних об’єктів.